恢復MySQL slave上的某幾張表的方法

恢復slave上的某幾張表的方法mysql

摘錄自《MySQL管理之道》Page126sql


有時候,slave上只是幾張表有些問題,若是從master上dump一份進行恢復的話,對於體積很大的數據庫,則要花費很長的時間,長時間的持鎖還容易影響到業務。數據庫


下面介紹一種方法,恢復test_DB下的3張表tb一、tb二、tb3,操做以下:bash



一、在slave上先中止複製ide

> stop slave;


二、在主庫上導出3張須要恢復的表,並記錄下同步的binlog和POS點。spa

# mysqldump -uroot -proot -q --single-trasaction --master-data=2 test_DB tb1 tb2 tb3 > /root/tb123.sql


三、查看/root/tb123.sql 找到記錄的binlog和POS點線程

# more /root/tb123.sql 例如 「master_LOG_FILE='mnysql-bin.000010',master_LOG_POS=10020;」


四、作change master to操做:ip

> start slave until master_LOG_FILE='mysql-bin.000010',master_LOG_POS=10020;
直到sql_thread線程爲NO,這期間的同步報錯一概跳過便可,能夠用以下命令跳過:
> stop slave; set global slave_skip_counter=1; start slave;



五、把/root/tb123.sql複製到slave機器上,並在slave機器上導入/root/tb123.sql同步

# mysql -uroot -proot test_DB < /root/tb123.sql


六、導入完畢,便可開啓slave同步。it

> start slave;

操做完成,在slave上執行show slave status\G查看便可。

相關文章
相關標籤/搜索