CentOS下利用mysqlbinlog恢複MySQL資料庫

來源:互聯網
上載者:User

標籤:根據   sql語句   roo   手冊   日誌   檔案的   事務   show   開發   

如果不小心對資料庫進行誤操作,而又沒有及時備份怎麼辦?這恐怕是廣大的coder經常遇到的一類問題。
我今天就因為不小心刪除了某個資料庫,但最後的備份是1個禮拜前的,唯一能解決的辦法就是通過mysqlbinlog來恢複了。解決方案如下:

如果MySQL伺服器啟用了二進位日誌,你可以使用mysqlbinlog工具來恢複從指定的時間點開始(例如,從你最後一次備份)直到現在或另一個指定的時間點的資料。
關於啟用二進位日誌的資訊,參見5.11.3節,“二進位日誌”。對於mysqlbinlog的詳細資料,參見mysql手冊8.6節,“mysqlbinlog:用於處理二進位記錄檔的工具 + 生產力”。
要想從二進位日誌恢複資料,你需要知道當前二進位記錄檔的路徑和檔案名稱。
一般可以從設定檔(一般情況,Linux下為my.cnf ,windows系統下為my.ini,取決於你的系統)中找到路徑。如果未包含在選項檔案中,當伺服器啟動時,可以在命令列中以選項的形式給出。
啟用二進位日誌的選項為–log-bin。
要想確定當前的二進位記錄檔的檔案名稱,輸入下面的MySQL語句:
SHOW BINLOG EVENTS \G;
或者還可以從命令列輸入下面的內容:
mysql –user=root -pmypasswd -e ‘SHOW BINLOG EVENTS \G’ 將密碼mypasswd替換為你的MySQL伺服器的root密碼。

比如得到的記錄檔名為:
mysql-bin.000001 1. 指定恢復 對於MySQL5.1.54,可以在mysqlbinlog語句中通過–start-date和–stop-date選項指定DATETIME格式的起止時間。

舉例說明,比如在今天下午14:02(今天是2012年3月15日),不小心執行SQL語句刪除了一個資料表,但發現沒有最新的備份(當然,這隻是開發環境,並不是正式的生產環境,正式環境還得定時做資料備份)。要想恢複表和資料,可以通過mysqlbinlog恢複指定時間的備份,輸入:
mysqlbinlog –stop-date=”2012-03-15 14:02:00″ /data1/log/mysql/mysql-bin.000001  | mysql -u root -pmypasswd
該命令將恢複截止到在–stop-date選項中以DATETIME格式給出的日期和時間的所有資料。

如果你沒有檢測到輸入的錯誤的SQL語句,可能你想要恢複後面發生的資料庫活動。
根據這些,你可以用起使日期和時間再次運行mysqlbinlog:
mysqlbinlog –start-date=”2012-03-15 00:01:00″ /data1/log/mysql/mysql-bin.000001  | mysql -u root -pmypasswd

在該行中,從今天淩晨0:01登入的SQL語句將運行,組合執行前夜的轉儲檔案和mysqlbinlog的兩行可以將所有資料恢複到今天淩晨0:01前一秒鐘。
你應檢查日誌以確保時間確切。下一節介紹如何?。

2. 指定時間段恢複 通過mysqlbinlog –start-date 和–stop-date恢複指定時間段的資料庫活動記錄,如下:
mysqlbinlog –start-date=”2012-03-09 02:00:00″ –stop-date=”2012-03-15 14:00:00″ /data1/log/mysql/mysql-bin.000001 > /tmp/mysql_restore_030915.sql
通過這種方式,就能擷取最後一個備份的檔案時間2012-03-09 02:00:00到今天刪除資料庫之前2012-03-15 14:02這段時間的資料庫活動事務操作

CentOS下利用mysqlbinlog恢複MySQL資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.