gcahce事物不夠,藉助binlog追上

##gcahce事物不夠,藉助binlog追上node

宕機節點以單機集羣啓動,既本身做爲一個集羣啓動,不過UUID要和舊的集羣保持一致:mysql

修復grastate.dat 文件的方式這裏略,直接經過wsrep_recovery便可
修復grastate.dat文件後,取其中的seqno(假設爲737),而後藉助seqno找到其餘節點binlong的start-position:
[root@pxc_node0_172.16.11.127 ~]# mysqlbinlog -vv /data/database/pxc3306/pxc-3306-bin.0000015 | grep -A5 "Xid = 737"
# 180420 20:17:16 server id 127  end_log_pos 2221492     Xid = 737     # 就是這個
COMMIT/*!*/;
# at 105205941                                                                                         # 從這裏開始導
# 180424 14:41:01 server id 127  end_log_pos 105206002   GTID    last_committed=44702    sequence_number=44710   rbr_only=yes
導出binlog:
[root@pxc_node0_172.16.11.127 ~]# mysqlbinlog  -vv  --skip-gtids=true --start-position=105205941 /data/database/pxc3306/pxc-3306-bin.0000015  > binlog.sql

這裏須要藉助--skip-gtids=true參數使解析出來的文件中就不包含「SET @@SESSION.GTID_NEXT=」,不然可能會binlog導入失效。sql

註釋掉配置文件中去掉下面的配置:
wsrep_cluster_address=gcomm://30.0.0.227,30.0.0.226,30.0.0.225
grastate.dat文件作以下修改:
safe_to_bootstrap: 1
啓動:
[root@pxc_node2_172.16.11.137 ~]#/usr/bin/mysqld_safe --defaults-file=/etc/pxc3306.cnf   --wsrep-cluster-address="gcomm://"  &

這時候是非主模式:shell

ERROR 1047 (08S01): WSREP has not yet prepared node for application use
解決非主模式:
(root@localhost) [(none)]> SET GLOBAL wsrep_provider_options='pc.bootstrap=true';
導入binlog:
(root@localhost) [(none)]> source /data/backup/binlog.sql  ;

這裏除了要導入binlog.sql ,還須要導入mysql-bin.0000015以後的binlog,讓故障節點儘量追近集羣bootstrap

關閉該實例
從新配置grastate.dat
[root@pxc_node2_172.16.11.137 ~]# vim /data/database/pxc3306/grastate.dat 
# GALERA saved state
version: 2.1
uuid:    bf26341f-43cb-11e8-a863-62c0eb4d9e79
seqno:   737
safe_to_bootstrap: 0
從新配置配置文件:
wsrep_cluster_address=gcomm://30.0.0.227,30.0.0.226,30.0.0.225
重啓加入集羣便可

或者指定一個donor --wsrep_sst_donor=xxxvim

相關文章
相關標籤/搜索