全網數據實時備份方案[inotify,sersync]

環境搭建

0.環境安裝   gcc  yum install gcc -yhtml

1.安裝inotify(源碼軟件包)mysql

   文件下載: https://files.cnblogs.com/files/ftl1012/inotify-tools-3.14.tar.gzsql

1.  cd /opt/tools/inotify-tools-3.14/

2.  ./configure  --prefix=/opt/tools/inotify-tools-3.14/

3. yum install -y gcc

4.  make && make install

5.  ln -s /opt/tools/inotify-tools-3.14/  /opt/tools/inotify-tools

6.  ls -l /opt/tools/inotify-tools

2.inotify重要工具mongodb

    1.查看目錄shell

          cd /opt/tools/inotify-tools/bin     -->lib是動態連接的庫文件服務器

image

   2.inotifywait:在被監控的文件或者目錄上等待特定文件系統事件(delete,open,close等)的發生,而後處於阻塞狀態,適合shell腳本使用多線程

     inotifywatch:收集被監視文件系統使用度統計數據,指文件系統事件發生的次數統計併發

3.inotifywait命令經常使用參數詳解 oracle

-r|--recursive  Watch directories recursively.

    -m|--monitor  Keep listening for events forever.  Without this option, inotifywait will exit after one event is received.

    -t|--timeout <seconds>

    -q|--quiet       Print less (only print events).

    -qq             Print nothing (not even events)

    --fromfile <file> Read files to watch from <file> or `-' for stdin

    -e|--event <event1> 

access| modify| attrib| open| close| create| delete|unmount

4.inotify實戰(實時同步,最好加上--delete)less

  1.手動調用(inotify)

/opt/tools/inotify-tools/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f' -e create,close_write,delete,  /data_inotify |while read line; do echo $line >>/var/log/inotify.log;done &

image

  2.腳本實現(rsync+inotify+nfs)實時監控備份NFS

#!/bin/sh
inotifywait=/opt/tools/inotify-tools/bin/inotifywait
    #count=1
    $inotifywait -mrq --format '%w%f' -e create,close_write,delete /NFS |while read line
    do
    cd / &&                                             
    #echo ".................Starting  rsync  $line......................."
    rsync -az /NFS rsync_backup@192.168.25.141::backup --password-file=/etc/rsync.password
    done


  3.配合NFS實現監控

/opt/tools/inotify-tools/bin/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f' -e create,delete  /NFS_141 |while read line; do echo $line >>/var/log/inotify.log;done &

4.寫入環境變量中,能夠直接使用

cp  /opt/tools/inotify-tools/bin/inotifywait inotifywait

image

6.關鍵參數說明

cd /proc/sys/fs/inotify/     -->有3個重要的目錄,對inotify機制有必定的限制

max_queued_events:inotify能夠監聽的文件數量

max_user_instances:設置每一個用戶可運行的inotify進程數量

max_user_watches:設置inotify實例事件隊列可容納的事件數量

10k -100k的文件的併發是 200左右


  7.inotify優缺點

優勢:配合rsync實現實時數據同步

缺點:大於200K的時候有延遲,可使用sersync解決

調用rsync同步時單進程的

8.sersync功能:

1.配置文件    2.真正的守護進程 socket  3.能夠對失敗的文件定時重傳(定時任務)

4.第三方HTTP接口 5.默認多線程 

9.高併發數據實時同步方案小結:

1.inotify(sersync)+rsync  -->文件級別

2.drdb           -->文件系統級別

3.第三方軟件的同步功能    mysql級別,oracle,mongodb

4.程序雙寫                -->一個文件,從前臺分別寫入2個或者多個服務器

5.業務邏輯解決

相關文章
相關標籤/搜索