實時復制是企業(yè)數(shù)據(jù)備份最重要的方式,主要用于用戶提交的數(shù)據(jù)的備份,對于用戶提交到服務(wù)器上的普通文件(圖片、壓縮包、視頻、文檔等),可采用 inotify/sersync+rsync實時備份方式;對于數(shù)據(jù)文件還有較復雜的分布式存儲工具自身可以實現(xiàn)將數(shù)據(jù)同時備份成多份,例如: FastDFS、 GlusterFS等;對于提交到數(shù)據(jù)庫中的數(shù)據(jù),可使用數(shù)據(jù)庫的主從復制(例如: MySQL、 Oracle)方式備份,這是軟件自帶的實時復制備份方式。有的企業(yè)會采用更多思路實現(xiàn)數(shù)據(jù)同時變?yōu)槎喾?例如:程序業(yè)務(wù)邏輯在數(shù)據(jù)提交時,同時提交到兩個服務(wù)器。
模擬實時復制的部署準備
![](/d/20211016/3c8f95ef0faac1fec892744f22acc4df.gif)
實時復制軟件介紹
常用軟件:inotify-tools、sersync(推薦)
![](/d/20211016/5927eeeb4330ba394917e22077298b6c.gif)
實時復制inotify機制介紹
linux內(nèi)核從2.6.13起加入了Inotify支持,它是一種異步的系統(tǒng)事件監(jiān)控機制,通過inotify可以監(jiān)控文件系統(tǒng)中添加、刪除、修改、移動等各種事件,利用這個內(nèi)核接口,第三方軟件(如inotify-tools、sersync)可以監(jiān)控文件系統(tǒng)下各文件的變化情況,進而做出實時響應(yīng)。
注:sersync軟件是在inotify基礎(chǔ)上進行開發(fā)的,功能更加強大,支持配置文件配置,定時重試復制,過濾機制,提供接口做CDN數(shù)據(jù)更新,支持多線程操作。
優(yōu)缺點
inotify優(yōu)點:監(jiān)控文件系統(tǒng)事件變化,通過復制工具實現(xiàn)實時數(shù)據(jù)復制。支持多線程實時復制。
inotify缺點:實測并發(fā)如果大于200個文件(10-100k),復制會有延遲。
解決思路:前臺爭取時間,如我們注冊賬號或上傳數(shù)據(jù)點擊提交后,頁面顯示幾秒后返回原頁面。
inotify+rsync項目實踐
1.確保rsync服務(wù)可用,可在nfs01服務(wù)器上推拉數(shù)據(jù)到backup服務(wù)器上。
![](/d/20211016/cfa1280f04c2fdb4aea552c0d640f276.gif)
2.檢查系統(tǒng)支持情況
①內(nèi)核版本必須大于2.6.13 ②必須有以下三個文件
![](/d/20211016/0a24dad88e865086be65dc863a0ccb87.gif)
![](/d/20211016/dd108e930b5fd7ce185002726756bd39.gif)
3.測試inotify-tools軟件
[root@nfs01 ~]# yum install inotify-tools -y
![](/d/20211016/10f7730de2ad551c49c44214ac2b2144.gif)
開兩個窗口測試:
![](/d/20211016/935e60b977059887455cf5cda6dfc637.gif)
編寫腳本:
![](/d/20211016/df1ae00075a9c7d1f1ffcbb451f3e3f5.gif)
![](/d/20211016/7dbe7314e9d6713c06d2c1819d4e2d18.gif)
注:打開另一nfs01窗口,創(chuàng)建、修改、刪除文件,并在backup服務(wù)器中查看是否實時同步。
4.測試sersync軟件
![](/d/20211016/0a5aa395e90553843d23b5ab79e6ba32.gif)
上傳軟件包
![](/d/20211016/b7f6a7faec310bb46318b0c666d66dc7.gif)
解壓
tar -xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /application/sersync/
![](/d/20211016/13297ae77ff9721132682949aa90a8fc.gif)
sersync的配置文件是一個xml文件,先備份一下 cp confxml.xml{,.ori}
修改配置文件(輸入 :set nu 可顯示行號):
![](/d/20211016/c4eac165287a9e3a2eaed0c4a4ede8e9.gif)
執(zhí)行
![](/d/20211016/1930dba1d9331fa1206ef8e4bcd202cb.gif)
因為sersync不是yum安裝的,無法使用systemctl命令開啟、關(guān)閉、自啟
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。