MysqlDBA高級運維學習之路-初步增量恢復mysql數據庫

1.開啟MySQL日志

(1)配置my.cnf配置文件

創新互聯公司是一家專業提供宣威企業網站建設,專注與網站制作、成都網站建設、H5場景定制、小程序制作等業務。10年已為宣威眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

先把my.cnf配置文件中的log-bin參數打開,并將log-bin的設為mysqlbin_linzhongniao,這樣在mysql數據庫中更新數據時就會記錄到這個日志文件中。這樣有一個缺點會導致日志文件很大,但是并沒關系,系統可以自動分割我們還可以手動分割。查看mysql日志文件用mysqlbinlog

[root@linzhongniao ~]# grep "log-bin" /data/3306/my.cnf
log-bin = /data/3306/mysqlbin_linzhongniao

(2)配置完my.cnf重啟mysql

[root@linzhongniao ~]# /data/3306/mysql restart
Restarting MySQL...
Stoping MySQL....
Starting MySQL......

(3)重啟之后就可以在mysql的數據文件下看見mysql日志文件。

它記錄了對數據有更改操作的語句,之前如果有就不用配置log-bin。

[root@linzhongniao ~]# ls /data/3306/mysqlbin_linzhongniao.*
/data/3306/mysqlbin_linzhongniao.000001  /data/3306/mysqlbin_linzhongniao.index
/data/3306/mysqlbin_linzhongniao.000002

2.模擬增量恢復不停止數據庫方法

(1)查看表數據

mysql> use linzhongniao;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select database();
+--------------+
| database()   |
+--------------+
| linzhongniao |
+--------------+
1 row in set (0.00 sec)

mysql> show tables;
+------------------------+
| Tables_in_linzhongniao |
+------------------------+
| test   |
+------------------------+
1 row in set (0.01 sec)

mysql> select * from test;
+----+-------------+
| id | name|
+----+-------------+
|  1 | linzhogniao |
|  2 | wwn1314 |
|  3 | lisi|
|  4 | woshishei   |
|  5 | xiaozhang   |
+----+-------------+
5 rows in set (0.00 sec)

(2)將id為1的值改為nishishei

mysql> update test set name='nishishei' where id='1'; 
Query OK, 1 row affected (0.10 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from test;  
+----+-----------+
| id | name  |
+----+-----------+
|  1 | nishishei |
|  2 | wwn1314   |
|  3 | lisi  |
|  4 | woshishei |
|  5 | xiaozhang |
+----+-----------+
5 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

(3)然后退出mysql用mysqlbinlog查看一下mysqlbin_linzhongniao.000002日志文件

[root@linzhongniao ~]# mysqlbinlog /data/3306/mysqlbin_linzhongniao.000002
# at 183
#181018 20:24:08 server id 1  end_log_pos 299   Query   thread_id=1 exec_time=0 error_code=0
use `linzhongniao`/*!*/;
SET TIMESTAMP=1539865448/*!*/;
update test set name='nishishei' where id='1'
/*!*/;

update test set name='nishishei' where id='1這條語句,在恢復的時候要把這條語句刪掉,再把數據導進去。因為恢復數據的時候還會往里寫數據導致數據缺失,所以先把之前的日志文件備份出來。恢復數據,好的方法就是停庫,不能停止數據庫可以進行手動切割日志文件這樣就會生成一個新的日志文件來存儲數據

(4)備份有誤操作的日志文件

[root@linzhongniao data]# cp mysqlbin_linzhongniao.000002 /opt/ 

(5)切割日志文件

[root@linzhongniao ~]# mysqladmin -uroot -p123456 -S /data/3306/mysql.sock flush-log[root@linzhongniao ~]# ll /data/3306/mysqlbin_linzhongniao.00000*
 -rw-rw----. 1 mysql mysql 126 Oct 18 20:15 /data/3306/mysqlbin_linzhongniao.000001
 -rw-rw----. 1 mysql mysql 468 Oct 18 20:41 /data/3306/mysqlbin_linzhongniao.000002
 -rw-rw----. 1 mysql mysql 107 Oct 18 20:41 /data/3306/mysqlbin_linzhongniao.000003

我們看切割完了就出現了mysqlbin_linzhongniao.000003,切割完之后寫入數據就往mysqlbin_linzhongniao.000003里面寫了,現在我們要處理的就是將mysqlbin_linzhongniao.000002日志文件記錄的數據重新導入到數據庫中

(6)生成bin.sql文件

在工作中bin-log日志文件中記錄了多個庫的數據,有多個表和庫,在恢復數據的時候只對有誤操作的庫和表進行操作即可。因為在恢復數據的時候有多個庫和表會導致主鍵重復而不能插入數據,所以在做恢復的時候要指定庫和表。備份指定庫用mysqlbinlog的-d參數。

[root@linzhongniao ~]# mysqlbinlog -d linzhongniao /opt/mysqlbin_linzhongniao.000002 >bin.sql

編輯bin.sql可以發現在什么時候操作數據庫導致數據丟失,我們找到update這條語句,將update這條語句刪掉。

[root@linzhongniao ~]# grep -i "update" bin.sql 
update test set name='nishishei' where id='1'

(7)開始增量恢復

[root@linzhongniao data]# mysql -uroot -p123456 -S /data/3306/mysql.sock linzhongniao <bin.sql
[root@linzhongniao data]# mysql -uroot -p123456 -e "select * from linzhongniao.test";
 +----+-------------+
| id | name|
 +----+-------------+
|  1 | linzhogniao |
|  2 | wwn1314 |
|  3 | lisi|
|  4 | woshishei   |
|  5 | xiaozhang   |
 +----+-------------+
5 rows in set (0.00 sec)

網站欄目:MysqlDBA高級運維學習之路-初步增量恢復mysql數據庫
當前鏈接:http://m.kartarina.com/article16/jeopgg.html

成都網站建設公司_創新互聯,為您提供網站營銷企業網站制作面包屑導航響應式網站網站設計公司做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 亚洲精品无码高潮喷水在线| 亚洲的天堂av无码| 无遮掩无码h成人av动漫| 无码专区人妻系列日韩精品少妇 | 高清无码中文字幕在线观看视频| 无码人妻久久一区二区三区免费丨| 亚洲AV无码一区二区三区在线观看 | 国产丰满乱子伦无码专区| 无码少妇一区二区三区浪潮AV| 在线观看成人无码中文av天堂| 久久影院午夜理论片无码| 成人无码区免费A片视频WWW| 亚洲中文字幕无码久久精品1| 亚洲AV无码专区国产乱码不卡| 国产亚洲精品a在线无码| 日韩aⅴ人妻无码一区二区| 精品无码久久久久久午夜| 亚洲一区二区三区AV无码| 日韩AV无码一区二区三区不卡| 精品多人p群无码| 中文字幕无码日韩专区| 亚洲av无码乱码在线观看野外 | 久久久人妻精品无码一区| 久久久久亚洲AV无码去区首 | AV无码久久久久不卡网站下载 | 无码人妻精品一区二区三区99仓本| 免费无码黄网站在线观看| 99精品一区二区三区无码吞精| 国产精品无码无卡在线播放| 无码人妻少妇伦在线电影| 精品无码黑人又粗又大又长| 爆乳无码AV一区二区三区| 亚洲av中文无码乱人伦在线观看| 久久无码专区国产精品发布| 无码人妻精品一区二区三18禁| 亚洲爆乳无码一区二区三区| 一本一道AV无码中文字幕| 国产成人麻豆亚洲综合无码精品 | 中字无码av电影在线观看网站 | 国产精品成人一区无码| av色欲无码人妻中文字幕|