使用Innobackupex快速搭建(修複)MySQL主從架構
MySQL的主從搭建大家有很多種方式,傳統的mysqldump方式是很多人的選擇之一。但對於較大的資料庫則該方式並非理想的選擇。使用Xtrabackup可以快速輕鬆的構建或修複mysql主從架構。本文描述了使用innobackupex快速來搭建或修複主從架構。供大家參考。
1、基於主庫做一個完整備份
# mkdir -p /log/bakforslave
# innobackupex --user=root -password=*** --socket=/tmp/mysql.sock \
--defaults-file=/etc/my.cnf /log/bakforslave --parallel=3 --safe-slave-backup --no-timestamp
2、複製資料庫到備機
# tar -czvf bakforslave.tar.gz ./bakforslave/
# scp bakforslave.tar.gz robin@172.16.10.51:~
# scp /etc/my.cnf robin@172.16.10.51:~/mymaster.cnf
3、在備機上恢複
###備機解壓打包的備份檔案
# mv /home/robin/bakforslave.tar.gz /data
# cd /data
# tar -xvf bakforslave.tar.gz
### prepare 備份
# innobackupex --user=root -password=*** --socket=/tmp/mysql.sock --defaults-file=/home/robin/mymaster.cnf \
--apply-log --use-memory=4GB /data/bakforslave
###如果是修複從庫,從庫為啟動狀態應先停止從庫,再做如下操作,否則可以跳過
# service mysqld stop
###還原備份的資料檔案
# mv mysqldata mysqldatabk
# mv bakforslave mysqldata
# chown -R mysql:mysql mysqldata
###如果是新搭建的從庫,此時可以修改主庫的my.cnf為原生my.cnf,
###如果為修複,則可以直接使用原有的設定檔或根據需要修改。
# cp /home/robin/mymaster.cnf /etc/my.cnf
# vi /etc/my.cnf ###此處應修改使用一個不同的server_id,同時可以根據需要修改相關路徑及連接埠配置等。
# service mysqld start ###修改完畢後可以啟動mysqld
4、主庫授權用於複製的使用者
mysql> grant replication slave,replication client on *.* to repl2@'172.16.10.%' identified by '***';
### 驗證shell 提示符下登陸到主庫
# mysql -urepl2 -p -h172.16.10.88
5、啟動slave
# more /data/mysqldata/xtrabackup_binlog_info
mysql-bin.000136 73752825
mysql> CHANGE MASTER TO
MASTER_HOST='172.16.10.88', --Author: Leshami
MASTER_USER='repl2', --Blog : www.bkjia.com
MASTER_PASSWORD='***',
MASTER_LOG_FILE='mysql-bin.000136',
MASTER_LOG_POS=73752825;
mysql> start slave;
6、驗證結果
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.10.88
Master_User: repl2
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000136
Read_Master_Log_Pos: 96592981
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 72113
Relay_Master_Log_File: mysql-bin.000136
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,bs_com,bs_sysmsg,bs_bak
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 73824655
Relay_Log_Space: 22840613
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 3815
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: afd6bca4-6636-11e3-9d60-74867ae1c47c
Master_Info_File: /data/mysqldata/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: updating
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
--------------------------------------分割線 --------------------------------------
Ubuntu下Nginx做負載實現高效能WEB伺服器5---MySQL主主同步
生產環境MySQL主主同步主鍵衝突處理
MySQL主從失敗 錯誤Got fatal error 1236
MySQL主從複製,單台伺服器上實施
搭建MySQLProxy 伺服器實現讀寫分離+主從同步
MySQL 5.5 主從雙向同步
MySQL 5.5主從同步排錯
MySQL主從複製非同步半同步執行個體
--------------------------------------分割線 --------------------------------------
本文永久更新連結地址: