前言
最近發很多資料庫設定的文章,好像快要變成記錄機器設定的部落格了 XD,
當下遇到問題,解決之後紀錄起來,感覺寫在這邊會比較完整,之後找紀錄也知道可以統一來這邊巡巡~ 也是快速紀錄的一篇。
[問題] 因為 master 磁碟滿了所以 master/slave 連線也斷掉了,
[解決] => 本文重點
- slave 資料要同步回來
- slave 重新連線 master
[其他補充]
master 因為 bin-log 檔案太多導致磁碟滿了,原先設定 bin-log 10 天清除,改成 3 天清除
也可以加開磁碟空間。
正文
dump sql 檔案
1
sudo mysqldump mysql -uroot -p > database.sql
master server 停機
1
sudo service mysqld stop
用 ssh ui 介面下載 master database.sql 到本機
slave ssh ui 介面上傳 database.sql (會到:~位置)
slave server 停止 replica
1
shell mysql> stop slave
slave db 匯入 dump sql 檔案
1
/home/path: $sudo mysqldump mysql -uroot -p < database.sql
master server 重新啟動
為了看 bin-log 目前位置:1
sudo service mysqld restart
master server 看 master 狀態
1
show master status; 這指令應該看過無數次
取得目前 bin-log 位置跟檔名。
9.slave server 重新設定
1
2
3
重新設定追蹤的 master bin-log 位置/檔名
reset slave;
CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000002', MASTER_LOG_POS=343;
- slave server 重啟 slave
1
2`start slave;`
`show slave status\G;` 這指令應該看過無數次
已重新連線完成,到 db 裡面查看,數字同步完成
補充:
原本要用 scp 遠端複製兩台 gcp instance,但 gcp 的設定卡很久一直沒有找到解法
scp error: permission denied.
gcloud error: request had insufficient authentication scopes.
最後決定直接先用 UI 介面直接先下載到本機…又 UI upload 到另一台 remote server…
資料來源
[NOT WORK]将文件传输到 Linux 虚拟机
How to re-sync the Mysql DB if Master and slave have different database incase of Mysql replication?
How to Start, Stop, and Restart MySQL Server
How to Transfer a MySQL Database between Two Servers using SCP
mysql 锁库与解锁 FLUSH TABLES WITH READ LOCK 和 UNLOCK TABLES