gitlab主備同步 gitlab主備同步

2021-10-12 15:39:21 字數 2321 閱讀 7678

主: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...