星期三, 四月 15, 2009

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

延伸閱讀

相關標籤

Add this page to del.icio.us

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~