標籤:mysql 庫 資料 備份
1. 啟用 主庫的 log_bin 日誌,設定日誌格式 binlog_format=MIXED,或者 binlog_format=ROW,
啟用主庫的 server-id
#主庫上加
#只記錄 ka_app 庫的同步處理記錄
binlog_do_db=ka_app
#不記錄下列庫的同步處理記錄
binlog_ignore_db=mysql
binlog_ignore_db=performance_schema
binlog_ignore_db=information_schema
binlog_ignore_db=ka_tdf
binlog_ignore_db=ka_model
binlog_ignore_db=test
重啟主庫,/etc/init.d/mysql restart
2. 關閉備份機器的的二進位 log_bin,注釋,設定 server-id,設定從庫的唯讀屬性 read_only=ON,
開啟從伺服器中繼日誌 relay-log=mysql-relay,開啟從伺服器中繼索引 relay-log-index=mysql-relay.index
#從庫上加
#只同步 ka_app 的所有表日誌
replicate_wild_do_table=ka_app.%
#不同步下面庫的所有表日誌
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=performance_schema.%
replicate-wild-ignore-table=information_schema.%
replicate-wild-ignore-table=ka_tdf.%
replicate-wild-ignore-table=ka_model.%
replicate-wild-ignore-table=test.%
重啟從庫 /etc/init.d/mysql restart
3. 主庫上建立複製賬戶(根據自己需要建立)
mysql>grant replication slave on *.* to ‘repl‘@‘169.254.10.11‘ identified by ‘repl‘;
mysql>flush privileges;
4. 匯入匯出資料
主庫鎖定匯出
mysql>flush tables with read lock;
mysqldump -uroot -pmysql --host=169.254.10.12 --flush-logs --databases stock-app --master-data=1 > backup-source.sql
從庫還原
mysql -uroot -p123456 < backup-source.sql
5. 啟用同步
主庫查看當前日誌位置
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 360 | | |
+------------------+----------+--------------+------------------+
從庫指定從指定位置開始同步
mysql>change master to master_host=‘169.254.10.12‘,master_port=3306,master_user=‘repl‘,master_password=‘repl‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=360;
mysql>slave start;
6. 主庫解除鎖定
mysql>unlock tables;
7. 查看主從同步的狀態
主庫
mysql>show master status;
從庫
mysql>show slave status;
mysql主從同步配置步驟