利用XtraBackup對MGR集群進行擴容

2022-02-24 06:11:25 字數 1241 閱讀 8047

#!/bin/bash

lsn_dir=/root/script/full

dest_dir=/tmp/full

# 刪除原先的備份資訊

rm -rf $/*

ssh root@node_new "rm -rf $"

# 利用流式備份完成全量備份

xtrabackup --backup \

--user=bkpuser \

--password=p@ssw0rd! \

--socket=/usr/local/mysql/mysql.sock \

--extra-lsndir=$ \

--stream=xbstream \

--compress | ssh root@node-new "xbstream -x -c /tmp/full"

這個指令碼執行完成之後,備份集就會在目標節點的/tmp/full目錄下了。此時新節點上的datadir應該是空的,保證備份能夠正常恢復。

此時執行這些命令進行還原:

# 備份是壓縮的,要用qpress解壓,確認qpress在本機的/usr/bin目錄下

innobackupex --decompress /tmp/full

# 準備備份集

# 複製備份集到資料目錄

xtrabackup --copy-back --target-dir=/tmp/full

# 啟動mysql

chown -r mysql.mysql /usr/local/mysql/data

systemctl start mysqld

備份集中有乙個檔案叫做xtrabackup_info,裡面有乙個專案叫做binlog_pos,注意這項,記錄下裡面的gtid。

正常啟動mysql之後,就可以開始進行一些配置:

set sql_log_bin=0;

reset master;

set global gtid_purged='剛才記錄下的gtid';

start group_replication;

方法比較簡單,總結下來最重要的一點就是要獲得一致性備份,利用這個一致性備份快速的部署一台節點。

在有的資料上還會提及要在新節點上執行change master語句,其實是不需要的,因為我們之前的步驟中已經手動指定了gtid_purged,只需要在這個gtid之後開啟複製即可。

如何優雅地新增mgr節點

facebook對xtrabackup的優化整理

1 adding xtrabackup files 2 integrate xtrabackup into tree 將xtrabackup和主幹 合併,相關改動加入 define xtrabackup保護 3 facebook changes to xtrabackup 主要還是一些編譯相關的修改...

對pg buffercache 的利用實驗

先看有沒有髒資料 postgres select isdirty from pg buffercache where isdirty t isdirty 0 rows 此時尚未有髒資料。進一步確認 postgres select count from pg buffercache where isd...

SQLSERVER對索引的利用

寫sql語句的時候很多時候會用到filter篩選掉一些記錄,sql對篩選條件簡稱 sarg search argument sarg 1 where amount 4000 and amount 6000 上面這句就是篩選條件 當然這裡不是說sqlserver的where子句,是說sqlserver...