mysql用binlog檔案進行資料恢複

來源:互聯網
上載者:User

標籤:database   master   資料恢複   events   create   

MySQL備份一般採取全備份加記錄備份的方式,比如每天執行一次全備份,每小時執行一次二進位記錄備份。這樣在MySQL Server故障後可以使用全備份和記錄備份將資料恢複到最後一個二進位記錄備份前的任意位置或時間。用來進行全備和日誌備的工具各種各樣,各有其特色,在這裡不做描述。本文主要講解一下在回複完全備份後,如何應用備份的二進位日誌來將資料恢複到指定的位置或時間點。

這裡有個十分重要的工具——mysqlbinlog,專門用來查看二進位日誌。我們以一些列子來說明問題:

先看看如何在MySQL Server中直接查看有哪些二進位記錄檔及檔案中包含哪些事件。

首先,查看正在使用的binlog日誌

mysql> show master status;

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/04/wKioL1YwpxiRC_9lAADTt39O-Lw805.jpg" title="1.png" alt="wKioL1YwpxiRC_9lAADTt39O-Lw805.jpg" />

mysql> show binlog events in "mysql-bin.000002";

這條命令查看記錄在binlog日誌中執行的sql命令。

例如:先建立一個資料庫,在庫中建一個表,表中添加資料。

mysql> create database user_test;

Query OK, 1 row affected (0.00 sec)

 

mysql> use user_test;

Database changed

 

mysql> create table test(id char(3),name varchar(20),age varchar(3));

Query OK, 0 rows affected (0.36 sec)

 

mysql> insert into test values(1,‘wangdi‘,27);

Query OK, 1 row affected (0.01 sec)

mysql> select * from test;

+------+--------+------+

| id   | name   | age  |

+------+--------+------+

| 1    | wangdi | 27   |

+------+--------+------+

1 row in set (0.00 sec)

這時刪除資料庫:

mysql> drop database user_test;

Query OK, 1 row affected (0.08 sec)

 

資料庫刪除之後,想要恢複查看binlog中的資訊

mysql> show binlog events in "mysql-bin.000002";

找到檔案中的sql語句,執行即可。

 

也可以應用mysqlbinlog工具

[[email protected] data]# /usr/local/mysql/bin/mysqlbinlog --start-position=4797 --stop-position=5425 /usr/local/mysql/data/mysql-bin.000002 |mysql -uroot -p

4797 是我建立資料庫的節點,執行完命令後恢複資料庫,但是這裡只是恢複一個庫,裡面的表資料沒有

[[email protected] data]# /usr/local/mysql/bin/mysqlbinlog --start-position=4954  --stop-position=5425 /usr/local/mysql/data/mysql-bin.000002 |mysql -uroot -p

4954 是我建立表的節點,執行完命令後恢複表結構,但是表裡的資料沒有

[[email protected] data]# /usr/local/mysql/bin/mysqlbinlog --start-position=5224  --stop-position=5425 /usr/local/mysql/data/mysql-bin.000002 |mysql -uroot -p

5224 是插入資料的語句,這樣被刪除的資料庫就恢複了。

 

重新查看一下:

mysql> select * from test;

+------+--------+------+

| id   | name   | age  |

+------+--------+------+

| 1    | wangdi | 27   |

+------+--------+------+

 


mysql用binlog檔案進行資料恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.