chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

丟數(shù)據(jù)比丟錢還讓人頭疼,你遇到過嗎?

ZLG致遠(yuǎn)電子 ? 2025-04-18 11:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


在產(chǎn)品運(yùn)行過程中,數(shù)據(jù)丟失是常見的問題,尤其在頻繁寫入數(shù)據(jù)的場景中。本文將分析數(shù)據(jù)丟失的原因,并從硬件、系統(tǒng)和軟件優(yōu)化等方面提供解決思路,幫助提升數(shù)據(jù)安全性和系統(tǒng)穩(wěn)定性。


4128be3c-1c06-11f0-9434-92fbcf53809c.jpg ?丟數(shù)據(jù)情形

丟數(shù)據(jù)的問題一般發(fā)生在產(chǎn)品運(yùn)行現(xiàn)場有頻繁數(shù)據(jù)寫入的情形,特別是在使用了數(shù)據(jù)庫的時候。一般有以下表現(xiàn):

輕微表現(xiàn):數(shù)據(jù)庫最新記錄的數(shù)據(jù)項(xiàng)無故丟失;

比較嚴(yán)重情況:較多記錄項(xiàng)數(shù)據(jù)丟失;

嚴(yán)重情形:文件名丟失或者亂碼;

非常嚴(yán)重情形:系統(tǒng)文件丟失,或者整個/opt分區(qū)無數(shù)據(jù)。


4128be3c-1c06-11f0-9434-92fbcf53809c.jpg ?丟數(shù)據(jù)原因及解決思路

丟數(shù)據(jù)的表現(xiàn)非常復(fù)雜,還有更多其它表現(xiàn)。究其原因,不外乎硬件方面、驅(qū)動層面以及應(yīng)用程序設(shè)計等幾個方面。

像硬件部分,電源是重中之重,驅(qū)動層面的話,穩(wěn)健可靠的驅(qū)動程序是至關(guān)重要的。但僅僅做好這兩方面,如果應(yīng)用軟件沒進(jìn)行系統(tǒng)優(yōu)化或者數(shù)據(jù)處理優(yōu)化,同樣也會帶來丟數(shù)據(jù)的風(fēng)險。下面分別從這幾方面來做一些闡述。

1. 基本思路:硬件設(shè)計+系統(tǒng)設(shè)計+軟件優(yōu)化

穩(wěn)定可靠的電源,掉電檢測電路,后備電源,系統(tǒng)設(shè)計的掉電檢測設(shè)計,應(yīng)用程序?qū)Φ綦姷捻憫?yīng),以及平時的數(shù)據(jù)冗余備份等措施。

首先,電源穩(wěn)定是產(chǎn)品穩(wěn)定的基礎(chǔ)。如果沒穩(wěn)定的電源,談產(chǎn)品的可靠性和穩(wěn)定性都是空中樓閣,無從談起。所以,務(wù)必設(shè)計穩(wěn)定可靠的電源,包括電源的功率、對紋波的抑制等。穩(wěn)定的電源解決的是產(chǎn)品正常工作時候的供電問題,這樣能避免很多隱蔽性很強(qiáng)的問題。

如果現(xiàn)場電源異常斷電無法克服,就可以考慮增加備用電源,同時增加主電源的掉電檢測電路,系統(tǒng)檢測到電源掉電后,進(jìn)行數(shù)據(jù)方面的處理,確保已經(jīng)寫入緩存的數(shù)據(jù)能及時寫入到磁盤中,保證數(shù)據(jù)的完整性。這需要硬件、系統(tǒng)驅(qū)動以及應(yīng)用程序幾方面配合才能達(dá)到目的。

如果運(yùn)行時產(chǎn)生的數(shù)據(jù)非常關(guān)鍵,特別是涉及到支付的數(shù)據(jù),建議對數(shù)據(jù)進(jìn)行冗余備份保護(hù)。如果本地存儲空間允許,可以在本地進(jìn)行雙備份;如果系統(tǒng)聯(lián)網(wǎng),可以通過網(wǎng)絡(luò)方式將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器進(jìn)行實(shí)時備份,這種方式非常安全;當(dāng)然如果有云存儲功能,將數(shù)據(jù)實(shí)時存放云端也是非常安全的。如果進(jìn)行了實(shí)時數(shù)據(jù)遠(yuǎn)程備份,那異常掉電對數(shù)據(jù)的影響就非常小了。

2. 解決現(xiàn)場丟數(shù)據(jù)的問題,需要從硬件、驅(qū)動、應(yīng)用設(shè)計多方面入手才能妥善解決

2.1 選擇合適的文件系統(tǒng)

不同的存儲介質(zhì)需要適配不同的文件系統(tǒng),在嵌入式設(shè)備中常用的存儲器是NAND Flash和eMMC。

適合NAND Flash的文件系統(tǒng)是UBIFS和YAFFS2。UBIFS和YAFFS2的不同之處在于它們的存儲方式、性能、垃圾回收機(jī)制和應(yīng)用場景:

2.1.1 存儲方式

UBIFS是基于塊存儲的,而YAFFS2是基于頁存儲的。YAFFS2將文件數(shù)據(jù)劃分為固定大小的頁,可以更好地適應(yīng)NAND Flash的物理特性,減少存儲空間的浪費(fèi),提高了存儲空間的利用率。而塊的大小通常比頁大,這意味著UBIFS可以更有效地管理存儲空間。與YAFFS2相比,UBIFS使用的塊更大,從而減少了存儲空間的浪費(fèi)和碎片化的可能性。另一方面,UBIFS的塊存儲機(jī)制可以適應(yīng)不同大小和容量的閃存設(shè)備,并能根據(jù)實(shí)際需求進(jìn)行動態(tài)調(diào)整,具備更好的可擴(kuò)展性和靈活性。

2.1.2 性能方面

UBIFS支持write-back,其寫入的數(shù)據(jù)會被cache,直到有必要寫入時才寫到flash,可以大大地降低分散小區(qū)塊數(shù)量并提高I/O效率。YAFFS2則是實(shí)時寫入,這會影響一部分I/O性能,但由于頁是YAFFS2最小的存儲單位,所以YAFFS2可以迅速定位到特定的頁,并只讀取或?qū)懭胨璧臄?shù)據(jù),而不需要處理整個文件。這種局部性的訪問方式可以減少不必要的讀取和寫入操作。

2.13 垃圾回收機(jī)制方面

UBIFS是基于日志型的垃圾回收,日志的垃圾回收機(jī)制提供了一種原子性和一致性的保證。所有的文件更新操作首先會被記錄到日志區(qū)域,而不是直接寫入到主存儲區(qū)域。只有當(dāng)這些更新操作被成功記錄到日志后,才會進(jìn)行實(shí)際的數(shù)據(jù)更新。這種方式確保了在更新操作過程中出現(xiàn)意外中斷或系統(tǒng)崩潰時,文件系統(tǒng)能夠恢復(fù)到一致的狀態(tài)。

其次,日志型的垃圾回收機(jī)制實(shí)際的數(shù)據(jù)更新是異步進(jìn)行的,即不會每次都同步到flash,因此寫操作的延遲被顯著降低,同時也減少了閃存擦除的次數(shù)。這種設(shè)計使得UBIFS在面對大量的寫操作時能夠保持較高的性能。

YAFFS2使用段式的垃圾回收。當(dāng)文件系統(tǒng)中的數(shù)據(jù)被修改或刪除時,會標(biāo)記相應(yīng)的段為無效或可回收。段式回收的過程包括掃描這些無效的段,并將其中的數(shù)據(jù)進(jìn)行擦除和回收,以便重新利用這些存儲空間。

段式回收的好處是可以批量處理無效數(shù)據(jù),提高垃圾回收的效率。相對于基于頁的回收機(jī)制,段式回收減少了對閃存的頻繁擦除操作,從而延長了閃存的使用壽命。此外,由于回收操作是在段的級別上進(jìn)行的,它能夠更有效地管理存儲空間,減少了存儲碎片化的可能性。

2.1.4 在應(yīng)用場景上

UBIFS更適合大容量存儲系統(tǒng),而YAFFS2更適用于中小容量的NAND Flash存儲設(shè)備。

適合eMMC的文件系統(tǒng)是FAT32和Ext4。其差異主要體現(xiàn)在兼容性、性能、安全性和磁盤空間利用這幾個方面:

兼容性方面:FAT32是一個較老的文件系統(tǒng),但它具有廣泛的兼容性,被大多數(shù)操作系統(tǒng)支持。而Ext4是Linux下的一個文件系統(tǒng),不支持Windows。

性能方面:FAT32不支持單個大于4GB的文件,一旦超過容量限制,系統(tǒng)就會提示磁盤空間不足。另外,F(xiàn)AT32不支持軟鏈接文件,所有在FAT32中的軟鏈接文件都會失效,這些方面在一定程度上影響了其性能。而相比之下,EXT4則沒有上述問題,有更好的性能表現(xiàn)。

安全性方面:FAT32不支持磁盤配額,安全性能較低。而EXT4可以進(jìn)行加密、修改、運(yùn)行、讀取目錄及寫入權(quán)限的設(shè)置,提高了文件系統(tǒng)的安全性。

磁盤空間利用方面:FAT32的磁盤利用率相對較低,尤其是在分區(qū)大小較大時,其簇的大小也會變得相對較大,從而降低了磁盤空間的利用率。而EXT4則能夠更有效地利用磁盤空間,提高了存儲效率。

選擇哪個文件系統(tǒng)取決于具體的應(yīng)用場景和需求。

對于NAND Flash,如果存儲器容量較大且能保證設(shè)備長期運(yùn)行的情況下,UBIFS是個很好的選擇。如果設(shè)備需要經(jīng)常讀寫文件,且存在偶發(fā)性斷電,則YAFFS2更合適。

對于eMMC來說,如果需要廣泛的兼容性和簡單的操作,F(xiàn)AT32可能是一個不錯的選擇。然而,在需要更高的性能、安全性和穩(wěn)定性時,EXT4可能更適合。

2.2 系統(tǒng)掛載方式

在Linux系統(tǒng)下必須先掛載對應(yīng)設(shè)備,然后才能被訪問,掛載方式有很多,包括同步掛載(sync)、異步掛載(async)、只讀掛載(ro)、讀寫掛載(rw)等,不同的掛載方式會直接影響系統(tǒng)的功能與性能:

async方式掛載中,所有涉及文件系統(tǒng)I/O的操作都是異步處理,即數(shù)據(jù)不會同步寫入到磁盤,而是寫入到緩沖區(qū)中,這種設(shè)置會提高系統(tǒng)的性能,但同時也會降低數(shù)據(jù)的安全性,一般在生產(chǎn)環(huán)境下不推薦使用。除非對性能要求很高,對數(shù)據(jù)可靠性要求不高的場景。

sync 與async相反,即有I/O操作時,都會同步處理I/O,把數(shù)據(jù)同步寫入硬盤,此參數(shù)會犧牲一部分I/O性能,但是換來的是系統(tǒng)突發(fā)宕機(jī)后數(shù)據(jù)的安全性。

ro為只讀掛載,可以有效保護(hù)分區(qū)中的內(nèi)容,防止分區(qū)中的文件被刪除和修改。

rw為讀寫掛載,可以修改分區(qū)內(nèi)容。

Linux在使用mount命令掛載時,如果不指定掛載參數(shù),其默認(rèn)的掛載方式為異步可讀寫方式,如果需要使用其它掛載方式,可以通過“-o”參數(shù)指定,例如:

[root@user~]# mount-o ro/dev/mmcblk0p2/mnt //只讀掛載

如果修改掛載方式,可以使用“-o remount”來指定,多個掛載參數(shù)可以用“,”隔開:

[root@user~]# mount-o remount,rw/dev/mmcblk0p2/mnt //重新掛載為可讀寫方式

如果需要修改系統(tǒng)的自動掛載方式,可以通過在/etc/fstab文件下添加對分區(qū)的掛載描述,fstab文件內(nèi)容如下:

[root@user:~]# cat /etc/fstab#stock fstab - you probably want to override this with a machine specific one/dev/root / auto defaults 1 1proc /proc proc defaults 0 0devpts /dev/pts devpts mode=0620,gid=5 0 0usbdevfs /proc/bus/usb usbdevfs noauto 0 0tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0tmpfs /var/volatile tmpfs defaults,size=50M 0 0tmpfs /media/ram tmpfs defaults,size=16M 0 0

其中,第4列為對應(yīng)分區(qū)的掛載方式(類似于mount -o),可以通過修改該列來實(shí)現(xiàn)不同掛載方式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317647
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91892
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    在使用WI-FI6模塊PTR7002時遇到過哪些通信問題?歡迎分享解決方案!

    在使用WI-FI6模塊PTR7002時遇到過哪些通信問題?歡迎分享解決方案!
    發(fā)表于 05-09 14:25

    這些CAD問題遇到過嗎?CAD常見問題匯總解答!

    常規(guī)的倒圓角制圖外,還可以用于繪制平行線相切半圓,這傳統(tǒng)的先畫相切圓、再剪切的制圖方法快10倍。怎么樣這些CAD入門學(xué)習(xí)過程中常見的問題是不是也遇到過?各位小伙伴在以后學(xué)習(xí)CAD制圖時如果
    發(fā)表于 03-05 15:44

    使用openocd下載程序時報錯有人遇到過

    clion下使用openocd燒寫程序報錯在Mac下使用clion開發(fā)STM32,在使用openocd下載程序時報錯,出現(xiàn)了如下提示,請問有人遇到過嗎?在網(wǎng)上找了好多天,都沒找到解決方案。
    發(fā)表于 01-10 08:28

    是否遇到過某個MCU串口不夠的情況

    是否遇到過某個MCU串口不夠的情況?這時我們可以考慮用GPIO去模擬,如何具體實(shí)現(xiàn)呢?首選我們需要了解串口的傳輸協(xié)議,UART使用異步模式工作,不需要時鐘信號,其一般格式為:起始位+數(shù)...
    發(fā)表于 02-10 06:45

    都知道RK3288編譯遇到過哪些問題嗎

    都知道RK3288編譯遇到過哪些問題嗎?
    發(fā)表于 03-04 07:22

    OK3399開發(fā)板有線連接不穩(wěn)定有人遇到過

    OK3399開發(fā)板有線連接不穩(wěn)定,ping包37%~50%左右,有人遇到過嗎?
    發(fā)表于 06-02 10:34

    用J_link下載程序是遇到的問題,有哪個大佬遇到過,怎么解決的?

    用J_link下載程序是遇到的問題,有哪個大佬遇到過,怎么解決的?
    發(fā)表于 02-24 18:31

    網(wǎng)絡(luò)數(shù)據(jù)包的原因及攝像機(jī)包的原因

    不少人在使用網(wǎng)絡(luò)和監(jiān)控攝像系統(tǒng)的時候都有遇到過數(shù)據(jù)包的情況,數(shù)據(jù)包的原因是多種多樣的,以下就為大家介紹一下網(wǎng)絡(luò)數(shù)據(jù)
    的頭像 發(fā)表于 01-11 09:27 ?1.4w次閱讀

    電瓶修復(fù)—電池負(fù)極閉孔遇到過沒?

    最近啊不管是私信還是在網(wǎng)上很多朋友都問到負(fù)極閉孔這個詞,還問我電池負(fù)極閉孔遇到過沒?那么今天就來講一下我很久之前遇到的這方面問題。 電瓶修復(fù) 負(fù)極閉孔這是我親身經(jīng)歷的事情:十年前,我到泉州一個工廠
    的頭像 發(fā)表于 03-16 10:49 ?2336次閱讀

    PCB設(shè)計遇到過孔stub如何解決

    N年的寶貴經(jīng)驗(yàn)告訴我們,PCB設(shè)計遇到過孔stub時,最好辦法就是器件在表層走線靠下層,器件在底層走線就靠上層,這樣能把stub降到最低。但是,有沒有一種種情況,你們覺得無論走哪一層都覺得
    的頭像 發(fā)表于 03-29 11:16 ?1w次閱讀

    基于STM32單片機(jī)模塊練習(xí)——在使用MPU6050時遇到的令人頭疼的問題

    在使用MPU6050時遇到的令人頭疼的問題1.整個程序在一開始運(yùn)行就卡死在啟動文件首先看一下,Target設(shè)置選項(xiàng)下的Use MicroLIB選項(xiàng)是不是選上勾了。如果這個設(shè)置也解決不了問題,那么
    發(fā)表于 11-23 18:21 ?1次下載
    基于STM32單片機(jī)模塊練習(xí)——在使用MPU6050時<b class='flag-5'>遇到</b>的令<b class='flag-5'>人頭疼</b>的問題

    這17種焊接陷阱,遇到過多少?

    良好的焊接是保證電路穩(wěn)定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點(diǎn)冷卻過程中焊錫移動,造成焊接表面起霧、結(jié)晶、粗糙
    的頭像 發(fā)表于 04-14 09:39 ?1161次閱讀
    這17種焊接陷阱,<b class='flag-5'>你</b><b class='flag-5'>遇到過</b>多少?

    這17種焊接陷阱,遇到過多少?

    良好的焊接是保證電路穩(wěn)定持久工作的前提。下面給出了常見到的焊接缺陷??纯茨?b class='flag-5'>遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點(diǎn)冷卻過程中焊錫移動,造成焊接表面起霧、結(jié)晶、粗糙
    的頭像 發(fā)表于 04-14 09:37 ?1179次閱讀
    這17種焊接陷阱,<b class='flag-5'>你</b><b class='flag-5'>遇到過</b>多少?

    【廣凌房產(chǎn)】高校公用房管理中的這些問題,遇到過嗎?

    高校公用房屬于國有資產(chǎn)的一部分,但管理過程中遇到各種困難,以下這些問題遇到過嗎?
    的頭像 發(fā)表于 05-30 11:15 ?734次閱讀
    【廣凌房產(chǎn)】高校公用房管理中的這些問題,<b class='flag-5'>你</b><b class='flag-5'>遇到過</b>嗎?

    【電路設(shè)計】這17種焊接陷阱,遇到過多少?

    良好的焊接是保證電路穩(wěn)定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動的焊接——在焊接點(diǎn)冷卻過程中焊錫移動,造成焊接表面起霧、結(jié)晶、粗糙
    的頭像 發(fā)表于 05-24 09:27 ?1135次閱讀
    【電路設(shè)計】這17種焊接陷阱,<b class='flag-5'>你</b><b class='flag-5'>遇到過</b>多少?