MYSQL複製

配置複製
1.配置server-id和log-bin
2.主庫中添加用於複製的用戶
 GRANT REPLICATION SLAVE,reload,super ON *.*
 TO 'repl'@'%.vm.dba.com' IDENTIFIED BY 'slavepass'
3.在從庫上設置用於複製的選項
server-id
master-host
master-user
master-password
--read-only 該選項讓從服務器只允許來自從服務器線程或具有SUPER權限的用戶的更新。可以確保從服務器不接受來自客戶的更新。
--replicate-do-db=db_name     告訴從服務器限制默認數據庫(由USE所選擇)爲db_name的語句的複製。
--replicate-wild-do-table=db_name.% 跨數據庫進行更新
--replicate-do-table=db_name.tbl_name 告訴從服務器線程限制對指定表的複製。
--replicate-ignore-db=db_name  告訴從服務器不要複製默認數據庫(由USE所選擇)爲db_name的語句。
--replicate-ignore-table=db_name.tbl_name 告訴從服務器線程不要複製更新指定表的任何語句(即使該語句可能更新其它的表)。
--replicate-wild-do-table=db_name.tbl_name 告訴從服務器線程限制複製更新的表匹配指定的數據庫和表名模式的語句。
--replicate-wild-ignore-table=db_name.tbl_name 告訴從服務器線程不要複製表匹配給出的通配符模式的語句。
--replicate-rewrite-db=from_name->to_name 告訴從服務器如果默認數據庫(由USE所選擇)爲主服務器上的from_name,則翻譯爲to_name。
--skip-slave-start 告訴從服務器當服務器啓動時不啓動從服務器線程。使用START SLAVE語句在以後啓動線程。
--slave-skip-errors=[err_code1,err_code2,... | all] 該選項告訴從服務器SQL線程當語句返回任何選項值中所列的錯誤時繼續複製。

4.從主庫同步數據到從庫
    4.1 load data from master;
    4.2 備份還原方式
 4.2.1 啓動從服務器。如果前面已經複製了,用--skip-slave-start選項啓動從服務器,以便它不立即嘗試連接主服務器。
 4.2.2 如果使用mysqldump備份主服務器的數據,將轉儲文件裝載到從服務器。
       cmd> mysql -u root -p < dump_file.sql
 4.2.3 設置連接參數
       mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;
 4.2.4 啓動從服務器線程:
       mysql> START SLAVE;
5.重啓從庫服務
5.測試
主庫:create database replTest;
 show databases;
從庫:show databases;


監控複製
mysql>  SHOW PROCESSLIST/G;

查看同步的點
1. mysql> show master status;
2. 從庫 relay-log.info
如果丟失了中繼日誌但仍然有relay-log.info文件,你可以通過檢查該文件來確定SQL線程已經執行的主服務器中二進制日誌的程度。然後可以用Master_Log_File和Master_LOG_POS選項執行CHANGE MASTER TO來告訴從服務器重新從該點讀取二進制日誌。當然,要求二進制日誌仍然在主服務器上。

發佈了25 篇原創文章 · 獲贊 6 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章