MySQL 使用 binary log 回復 某段時間區間 的資料

MySQL 若想要回復某段區間的資料, 除了備份的資料外, binary log(bin-log) 也是另外一條路.

bin-log 是 DB 的所有 新增、刪除、修改 的 SQL 語法紀錄(主要是給 replication 用)

bin-log 啟用

  1. vim /etc/mysql/my.cnf

    [mysqld]
    log-bin = /var/lib/mysql/mysql-bin.*

  2. /etc/init.d/mysql restart

查看 bin-log 內容

  • 看 bin-log 的內容: mysqlbinlog mysql-bin.000001 > /tmp/binlog-dump.sql

回復某段時間區間的資料

此段語法會將 2006/01/01 ~ 2007/12/24 的 SQL 語法都 dump 出來(前題當然是這段時間的 bin-log 沒有被砍掉過)

mysqlbinlog --start-date="2006-01-01 00:00:00" --stop-date="2007-12-24 00:00:00" /var/lib/mysql/mysql-bin.* > /tmp/mysql_restore.sql

通常使用是在 完整備份時間 + 區間資料還原, 以將資料回復~ 🙂

相關網頁文件

當 MySQL 掛掉時, 在 log 有時後會看到類似的資訊, 可由此知道 MySQL 的記憶體使用的算法.

key_buffer_size=0
read_buffer_size=258048
max_used_connections=0
max_threads=151
threads_connected=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 116190 K bytes of memory


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

MySQL 使用 binary log 回復 某段時間區間 的資料 有 1 則回應

  1. Frank Hsieh 說道:

    A good article!

發表迴響