有點要注意 如果你誤刪了表 想通過這個恢複 必須恢複日誌裡面有建立表的日誌 不然的話是無法回複的 就是必須是從你開始建立表的時候就已經記錄日誌了 恢複到哪個位置 就按照哪個位置來計算mysql 5.0不支援增量備份增量備份定義 mysql資料庫會以二進位形式 自動把使用者對mysql資料庫的操作 記錄到檔案 當使用者希望恢複的時候可以使用備份檔案 進行回複 增量備份會記錄 (dml 語句 建表語句 不會記錄select語句) 記錄的 (a 動作陳述式本身 b 操作的時間 c 操作的位置 position)執行個體 配置 my.ini檔案 或者 my.conf 啟用二進位備份 log-bin=e:/mysqldb/logbin.log 先設定mysql日誌存放位置 配置好後 再啟動模樣上去了 就會在備份目錄多了2個檔案 logbin.index 這個是索引檔案 有哪些增量備份 logbin.000001 存放使用者對資料庫操作的檔案 如果你想看看 這個 裡面是什麼東西 我們可以使用 mysql的bin目錄下面的一個工具查看 就是 mysqlbinlog.exe 這個東西看 首先用cmd進入 mysql的 bin目錄下面 然後執行 mysqlbinlog e:/mysqldb/logbin.000001 mysql 對於你的每一次操作 都會記錄一次時間 同時 給你分配一個位置 (pos)換句話說 以後我們恢複 可以根據時間點來恢複 或者根據位置來恢複比如說 我們把一個表個drop 了 那麼我們只要把表恢複到 drop之前就好了 時間點恢複 我們可以畫個流程圖 logbin.000001 insert ...... 3 2013-07-23 17:57:00 update ..... 4 2013-07-23 17:59:00 insert ...... 100 2013-07-23 19:57:00
drop ... 101 2013-07-23 20:57:00 恢複的話可以這麼寫 mysqlbinlog --stop-datatime="2013-07-23 20:50:00" e:/mysqldb/logbin.000001 上面這句的意思是 一直恢複到 2013-07-23 20:50:00 停止 mysqlbinlog --start-datatime="2013-07-23 20:50:00" e:/mysqldb/logbin.000001 上面這句的意思是 從2013-07-23 20:50:00 開始恢複按照位置來恢複 mysqlbinlog --stop-position="100" e:/mysqldb/logbin.000001 | 上面這個語句意思是 恢複到100的位置真實性恢複按照位置恢複mysqlbinlog --stop-position=4590 e:/mysqldb/logbin.000001
| mysql -uroot -p按照時間恢複mysqlbinlog --stop-datetime="2013-07-24
18:17:19" e:/mysqldb/logbin.000001 | mysql -uroot -p可以控制從什麼時候開始 到什麼是結束mysqlbinlog --start-position=4 --stop-position=106
yueliangd
ao_binglog.000001 > c:\\test1.txt在工作中 可以每周一做一個全備份 就是 mysqldump 然後 啟用我們的增量備份 把到期時間設為 大於等於7天如果資料庫崩潰了 就可以通過時間和位置來恢複
如何關閉 mysql 自動記錄日誌
找到log-bin=mysql-bin,前面添加#即可。
個別版本需要關閉
binlog_format=mixed前面添加#,否則會出現mysql無法啟動。