Mysql主從同步備份戰略分享。本站提示廣大學習愛好者:(Mysql主從同步備份戰略分享)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql主從同步備份戰略分享正文
情況:
主從辦事器上的MySQL數據庫版本同為5.1.34
主機IP:192.168.0.1
從機IP:192.168.0.2
一.
MySQL主辦事器設置裝備擺設
1.編纂設置裝備擺設文件/etc/my.cnf
# 確保有以下行
server-id = 1
log-bin=mysql-bin
binlog-do-db=mysql #須要備份的數據庫名,假如備份多個數據庫,反復設置這個選項便可
binlog-ignore-db=mysql #不須要備份的數據庫名,假如備份多個數據庫,反復設置這個選項便可
log-slave-updates #這個參數必定要加上,不然不會給更新的記載些到二進制文件裡
slave-skip-errors #是跳錯誤誤,持續履行復制操作
2.樹立用戶
mysql> grant replication slave on *.* to [email protected] identified by ‘111111′;
# grant replication slave on *.* to ‘用戶名'@'主機' identified by ‘暗碼';
# 可在Slave上做銜接測試: mysql -h 192.168.0.1 -u test -p
3.鎖主庫表
mysql> FLUSH TABLES WITH READ LOCK;
4.顯示主庫信息
記載File和Position,從庫設置將會用到
=====================
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
5.另開一個終端,打包主庫
cd /usr/local/mysql #mysql庫目次
tar zcvf var.tar.gz var
============================
二.MySQL從辦事器設置裝備擺設
1、傳輸拿到主庫數據包、解包
# cd /usr/local/mysql
# scp 192.168.0.1:/usr/local/mysql/var.tar.gz .
# tar zxvf var.tar.gz
2、檢查修正var文件夾權限
# chown -R mysql:mysql var
3.編纂 /etc/my.cnf
server-id=2
log-bin=mysql-bin
master-host=192.168.0.1
master-user=slave
master-password=111111
master-port=3306
replicate-do-db=test #須要備份的數據庫名
replicate-ignore-db=mysql #疏忽的數據庫
master-connect-retry=60 #假如從辦事器發明主辦事器斷失落,從新銜接的時光差(秒)
log-slave-updates #這個參數必定要加上,不然不會給更新的記載些到二進制文件裡
slave-skip-errors #是跳錯誤誤,持續履行復制操作
4、驗證銜接MASTER
# mysql -h192.168.0.1 -uslave -ppassword
mysql> show grants for [email protected];
5、在SLAVE上設置同步
設置銜接MASTER MASTER_LOG_FILE為主庫的File,MASTER_LOG_POS為主庫的Position
============================
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='slave',MASTER_PASSWORD='111111',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
6、啟動SLAVE辦事
mysql> slave start;
7、檢查SLAVE狀況
mysql> SHOW SLAVE STATUS\G;
個中 Slave_IO_Running 和 Slave_SQL_Running 兩列的值都為 "Yes",注解 Slave 的 I/O 和 SQL 線程都在正常運轉。
8、解鎖主庫表
mysql> UNLOCK TABLES;
到此主從庫搭建勝利。可以在主庫上拔出數據測試同步能否正常。
--------------------------
附:一些毛病信息的處置,主從辦事器上的敕令,及狀況信息。
在從辦事器上應用show slave status\G
Slave_IO_Running,為No,
則解釋IO_THREAD沒有啟動,請履行start slave io_thread
Slave_SQL_Running為No
則復制失足,檢查Last_error字段消除毛病後履行start slave sql_thread
檢查Slave_IO_State字段空 //復制沒有啟動
Connecting to master//沒有銜接上master
Waiting for master to send event//曾經連上
主辦事器上的相干敕令:
show master status
show slave hosts
show logs
show binlog events
purge logs to 'log_name'
purge logs before 'date'
reset master(老版本flush master)
set sql_log_bin=
從辦事器上的相干敕令:
slave start
slave stop
SLAVE STOP IO_THREAD //此線程把master段的日記寫到當地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此線程把寫到當地的日記運用於數據庫
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //靜態轉變master信息
PURGE MASTER [before 'date'] 刪除master端已同步過的日記
6.3.1 Master 同步線程狀況
以以下出了master的 Binlog Dump 線程 State 字段中最多見的幾種狀況。假如在master上沒有 Binlog Dump 線程,那末同步就沒有在運轉。
也就是說,沒有slave銜接下去。
Sending binlog event to slave
事宜是由二進制日記組成,一個事宜平日由更新語句加上其他信息。線程讀取到一個事宜並正發送到slave上。
Finished reading one binlog; switching to next binlog
讀取完了一個二進制日記,正切換到下一個。
Has sent all binlog