mysql熱備
1 查看mysql版本,保證主庫低於等於從庫
2 主庫配置:
A 需要開啟支援日誌功能:log-bin=mysql-bin
B 提供server-id:server-id=1
C 重啟mysql,進入後,分配複製從庫的帳號
GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'backip' IDENTIFIED BY 'repuser';
D show master status;能看到二進位記錄檔目前的Position
E mysqldump --all-databases --single-transaction --master-data > all
把資料庫內容備份出來,加上master-data參數是為了在備份出來的檔案中看到當前備份的資料對應哪個記錄檔的哪個position
3 配置從伺服器
A server-id=2 //設定資料庫 id 預設主伺服器是1可以隨便設定但是如果有多台從伺服器則不能重複。
master-host=masterip //主伺服器的IP地址或者網域名稱
master-port=3306 //主要資料庫的連接埠號碼
master-user=repuser //同步資料庫的使用者
master-password=repuser //同步資料庫的密碼
master-connect-retry=60 //如果從伺服器發現主伺服器斷掉,重新串連的時間差
B 啟動從伺服器,並先停止slave:slave stop;
C 匯入主庫資料
D mysql> CHANGE MASTER TO
-> MASTER_HOST='masterip', //主伺服器的IP地址
-> MASTER_USER='repuser', //同步資料庫的使用者
-> MASTER_PASSWORD='repuser', //同步資料庫的密碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主伺服器二進位日誌的檔案名稱
-> MASTER_LOG_POS=recorded_log_position; //記錄檔的開始位置
其中記錄檔名和開始位置,可以從all這個檔案的頭幾行查到
E slave start;結束
查詢mysql動作記錄
1 show binary logs;可以看到每個binlog中的position
2 mysqlbinlog binlog_file --no-defaults --start-datetime='2009-12-15 00:00:00' |more