主:10.10.10.75
備:10.10.10.16
方案思路:mysql主從同步+gitlab檔案目錄同步(inotify+rsync)
一,配置mysql主從同步(mysql版本:5.5.43)
修改75的mysql配置檔案
vim /etc/mysql/my.cnf
server-id=1
binlog_do-db=gitlab庫
重啟mysql
修改16備機的mysql配置檔案
vim /etc/mysql/my.cnf
server-id=2
replicate-do-db = gitlab庫
重啟mysql
主從同步已配置完畢,自己可以測試下。
二,配置檔案同步
需要同步以下倆檔案
/home/git/gitlab-satellites
/home/git/repositories
1,在75主伺服器安裝inotify實時監控檔案變化情況
tar -xf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/data/inotify
make;make install
使用inotify時,要特別注意核心中關於它的兩個配置。首先/proc/sys/fs/inotify/max_user_instances 規定了每個使用者所能建立的inotify例項的上限;其次/proc/sys/fs/inotify/max_user_watches規定了每個inotify例項最多能關聯幾個監控(watch)。我們要設定乙個較大的值(只需echo即可)
echo 9999999 >/proc/sys/fs/inotify/max_user_watches
2,在16備機安裝rsync服務。75也需要裝rsync客戶端,linux大多數都預設安裝了rsync客戶端。
tar -xf rsync-3.1.1.tar.gz
cd rsync-3.1.1
./configure --prefix=/data/rsync
make;make install
在/etc下面新建乙個rsync配置檔案,同時建乙個rsync使用者認證檔案。
touch /etc/rsyncd.conf
touch /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsyncd.secrets
增加配置內容
vim /ect/rsyncd.conf
vim /etc/rsyncd.secrets
設定rsync賬號和密碼(git:123456)
啟動rsync服務
/data/rsync/bin/rsync --daemon
3,在主75編寫同步指令碼,將自動把更新的目錄檔案同步到備機16伺服器上面。
在75要建乙個rsync密碼認證檔案(只存放密碼),以保證免密碼傳輸:
touchu /etc/git_rsync
chmod 600 /etc/git_rsync
vim /etc/git_rsync
新增密碼123456
接下來編寫同步指令碼了
vim /home/mengruiwen/script/repositories.sh
#!/bin/bash
set -x
/data/tools/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %h:%m' --format '%t %w%f%e' -e modify,delete,create,move,attrib /home/git/repositories | while read files
dorsync -rlptgod --password-file=/etc/git_rsync /home/git/repositories [email protected]::repositories
done
將主75 /home/git/repositories自動同步到備機16 /home/git/repositories
當然/home/git/gitlab-satellites目錄也需要做同步(指令碼跟repositories的一樣,就省略不寫了)
將同步指令碼加到定時任務裡
接下來我們執行指令碼,可以測試下。
接下來登陸gitlab看看**同步資訊。
主75的資訊:
備16的資訊:
主備資訊一致,**也一致。
至此,我們的gitlab主從同步已順利完成。
MySQL是如何實現主備同步
主備同步,也叫主從複製,是mysql提供的一種高可用的解決方案,保證主備資料一致性的解決方案。在生產環境中,會有很多不可控因素,例如資料庫服務掛了。為了保證應用的高可用,資料庫也必須要是高可用的。因此在生產環境中,都會採用主備同步。在應用的規模不大的情況下,一般會採用一主一備。除了上面提到的資料庫服...
gitlab實現主備切換集群 晨 技術總匯
歷史 gitlab ce是不支援分布式架構方案的,所以all in one的服務down後,服務無法迅速恢復 rsync postgresql備份的方式實現快速切換server ip實現偽高可用 主機列表192.168.102.7 gitlab master192.168.102.7 gitlab ...
cacti 資料庫主備同步指令碼
usr local cacti cacti.sql bin bash user cactiuser password cactiuser database cacti mail babyfenei qq.com 告警通知郵箱 backup dir var www sqlbackup caname c...