共計 1845 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 Mysql 如何恢復 slave 上某幾張表的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
主庫一直模擬插入數據
[root@node1 ~]# vi tt.sh
#!/bin/bash
for ((i=1;i =1000;i++))
do
mysql -uroot -pESBecs00 -e insert into test1 values($i, chen$i) hd
mysql -uroot -pESBecs00 -e insert into test2 values($i, chen$i) hd
sleep 0.5
done
1. 關閉 slave 復制進程
mysql stop slave;
Query OK, 0 rows affected (0.00 sec)
2. 主庫備份需要恢復的表
[root@node1 ~]# mysqldump -uroot -pESBecs00 –master-data=2 hd test2 test2.sql
[root@node1 ~]# more test2.sql
— MySQL dump 10.13 Distrib 5.5.50, for Linux (i686)
—
— Host: localhost Database: hd
— ——————————————————
— Server version 5.5.50-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE= +00:00 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE= NO_AUTO_VALUE_ON_ZERO */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
—
— Position to start replication or point-in-time recovery from
—
— CHANGE MASTER TO MASTER_LOG_FILE= on.000001 , MASTER_LOG_POS=38848; – 一定要開啟 master-data 幾下備份點信息
—
— Table structure for table `test2`
—
3. 恢復從庫到指定的點
mysql start slave until master_log_file= on.000001 ,master_log_pos=38848;
Query OK, 0 rows affected, 1 warning (0.00 sec)
—— 這一步主要是為了同步斷開 slave 到備份完表這一段時間內其它表產生的數據
直到 slq-thread 為 no,這期間的錯誤一律跳過即可,可用如下命令
stop slave;set global sql_slave_skip_counter=1;start slave;
4 在 slave 機器上導入備份文件
[root@node2 ~]# mysql -uroot -pESBecs00 hd test2.sq
5 開啟同步即可
(root@127.0.0.1) [gggg] select * from test1
| 406 | chen406 |
+—–+———+
406 rows in set (0.00 sec) — 數量一致,數據未丟失
感謝各位的閱讀!關于“Mysql 如何恢復 slave 上某幾張表”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!