91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

發布時間:2021-12-30 09:11:17 來源:億速云 閱讀:98 作者:柒染 欄目:大數據

這篇文章給大家介紹怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

今天正文

其實MHA是真沒有什么好說的,一個成熟的不能在成熟的 MYSQL 高可用的方案。但一般來說大部分企業部署 MHA 都是配以傳統的復制方式,而MYSQL 從5.6 開始已經進入了 GTID 的世界,而MHA 從0.56 也支持了GTID,雖然那個日本人早就不在給大家升級MHA 的版本了,但貌似最近一個白人小哥在繼續升級MHA 目前的最新版本是 0.58 。到目前為止沒有任何一款數據庫有 MYSQL的高可用的方案多(I am sorry ,其實 PG 的方案也不少)。

所以怎么將MYSQL的 MHA 的方案升級到 GTID 的方式就可以說說了,其中有一點就是,為什么要多了一個 binlog server 的設置。

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

我們從上面Yoshinori 的BLOG 中截取了一段

在binlog部分,您可以定義mysqlbinlog流媒體服務器。當MHA執行基于GTID的故障轉移時,MHA檢查binlog服務器,如果binlog服務器記錄的BINLOG在其他從屬服務器之前,MHA在恢復之前將來自binlog服務器的差異binlog事件應用到新主服務器。當MHA執行基于非gtid(傳統)的故障轉移時,MHA將忽略binlog服務器,更多細節可以在文檔中找到。

并且其中還提到了支持自定義的mysql binlog location, 在使用GTID 的MYSQL復制中,并且使用了auto_postion=1 的情況下MHA 將不能使用老的模式來獲得差異的日志,而這里使用BINLOG SERVER 可以有效的提高增強MYSQL 主從切換中,可以讓新主從 BINLOG SERVER 中獲得差異的日志,并且補齊。

從MYSQL  5.6開始 MYSQL  提供了 BINLOG SEVER 的概念,通過BINLOG SERVER 來備份BINLOG 日志,并且根據相關的原理這樣的備份的BINLOG 日志基本上是實時的。

首先從MHA 0.56 添加了 master_binlog_dir 這個參數,這個參數是防止MYSQL 死機后無法獲得BINLOG 的具體的位置而設定的。(當然如果LINUX 系統同死機了,那這個設置也是無效的)

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

在啟動了 GTID 的復制方式后,并且添加了BINLOG SERVER 選項后,嘗試終止MASTER ,可以看到 MHA 已經自動判斷出 MYSQL 使用 GTID的方式進行的復制。

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

并且在信息中已經有相關 GTID 的位置信息

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

切換是成功的,那如何建立一個BINLOG SERVER 其實對MYSQL 數量眾多的情況下,是有必要建立一個 BINLOG SERVER 來保存MYSQL 服務器的BINLOG 數據。(你也可以指定master 和其他slave 的 binlog 目錄作為binlog server)

可以在一臺定義好的MYSQL SERVER 中設置

nohup mysqlbinlog -R --raw --host='192.168.198.201' --port=3306 --user='repl' --password='1234.com' --stop-never --stop-never-slave-server-id=1202 mysql-bin.000001 --result-file=/data/binlog_backup/ &

其中 mysql-bin.000001 是告知傳送BINLOG 是從哪個 BINLOG 開始的

R   --read-from-remote-server :表示從遠程機器上讀取 binlog,要確保遠程 mysql 存儲,需要提供--host, --user, --password 參數;  使用該選項時,mysqlbinlog 會偽裝成一個 slave,連接讀取,請求指定的 binlog file,主庫獲取接收到這個請求之后就創建一個 binlog dump 線程推送 binlog 給 mysqlbinlog server。
--raw: 以 binlog 格式存儲日志,方便后期使用;
--host:  遠程庫的主機 IP 或者主機名;
--port:  遠端庫的端口號;
--user:  遠程庫上用于復制的賬號;
--password:  遠端庫上復制賬號的密碼;
--stop-never:  一直連接到遠程的 server 上讀取 binlog 日志,直接到遠程的 server 關閉后才會退出。或是被 pkill 掉;
--stop-never-slave-server-id:  如果需要啟動多個 binlog server ,需要給 binlog server 指定 server-id 。

--result-file:   指定存儲到本地的目錄,注意后綴需要加上/

在執行完命令后,可以很快的將源端的BINLOG 復制到目的機,但需要注意的是,如果源端進行  purge 操作的時候,目的端的日志是不會減少的,所以還需要自己考慮如何定時清理不在使用的BINLOG  文件。

怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置

同時如果怕MASTER 主機重啟動之類的事情可以寫一個腳本定時運行

以下為從網上找的一段 SHELL 程序 

# cat > binlog_cp.sh << EOF
#!/bin/bash
BACKUP_BIN=/usr/local/mysql/bin/mysqlbinlog
LOCAL_BACKUP_DIR=/data/mysql/mysql3306/logs/
BACKUP_LOG=/tmp/backup.log
REMOTE_HOST=192.168.199.230
REMOTE_PORT=3306
REMOTE_USER=repl
REMOTE_PASS=unixfbi
FIRST_BINLOG=mysql-bin.000001
SLAVE_SERVER_ID=2313306
# wait for 10s
SLEEP_SECONDS=10
cd ${LOCAL_BACKUP_DIR}

while :
do
 if [ `ls -A "${LOCAL_BACKUP_DIR}" |wc -l` -eq 0 ];then
    LAST_FILE=${FIRST_BINLOG}
 else
    LAST_FILE=`ls -l ${LOCAL_BACKUP_DIR} |tail -n 1 |awk '{print $NF}'`
 fi
 ${BACKUP_BIN} --raw -R --stop-never --host=${REMOTE_HOST} --port=${REMOTE_PORT} --user=${REMOTE_USER} --password=${REMOTE_PASS}  --stop-never --stop-never-slave-server-id=${SLAVE_SERVER_ID} ${LAST_FILE} --result-file=${LOCAL_BACKUP_DIR}
 echo "`date +"%Y/%m/%d %H:%M:%S"` mysqlbinlog is stoped,return code: $?" | tee -a ${BACKUP_LOG}
 echo "${SLEEP_SECONDS}s will continue !" | tee -a ${BACKUP_LOG}  
 sleep ${SLEEP_SECONDS}
done
EOF

通過這個程序來不斷的判斷master 服務器是否OK ,如果連接斷掉后,會在MASTER 啟動后,再次進行連接將日志拉取。

關于怎么將MYSQL的 MHA 的方案升級到GTID以及binlog server設置就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜川市| 灵武市| 深水埗区| 弥勒县| 吉木乃县| 浦北县| 绍兴市| 永登县| 宁河县| 浏阳市| 安顺市| 逊克县| 江北区| 淳化县| 和田县| 安庆市| 聊城市| 拉萨市| 会宁县| 北宁市| 同江市| 额济纳旗| 广饶县| 郑州市| 孙吴县| 苏尼特右旗| 文山县| 内黄县| 杭锦旗| 伽师县| 弋阳县| 库车县| 宿迁市| 皋兰县| 凭祥市| 如东县| 谢通门县| 东明县| 贵定县| 垣曲县| 吴川市|