#!/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...