mysql 二進位制時間 mysql 二進位制日誌

2021-10-22 02:46:38 字數 1997 閱讀 2424

如果mysql伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 (例如,從你最後一次備份)直到現在或另乙個指定的時間點的資料。「mysqlbinlog:用於處理二進位制日誌檔案的實用工具」。

要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般可以從選項檔案(即my.cnf or

my.ini,取決於你的系統)中找到路徑。如果未包含在選項檔案中,當

伺服器啟動時,可以在命令列中以選項的形式給出。啟用二進位制日誌的選項為——

log-bin。要想確定當前的二進位制日誌檔案的檔名,輸入下面的mysql語句:

show binlog events \g

你還可以從命令列輸入下面的內容:

mysql ——user=root -pmy_pwd -e 'show binlog events

\g'將密碼my_pwd替換為伺服器的root密碼。

1. 指定恢復時間

對於mysql

4.1.4,可以在mysqlbinlog語句中通過——start-date和——stop-date選項指定datetime格式的起止時間。舉例說明,假設在今天上午10:00(今天是2023年4月20日),執行sql語句來刪除乙個大表。要想恢復表和資料,你可以恢復前晚上的備份,並輸入:

mysqlbinlog ——stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456 \

| mysql -u root -pmypwd

該命令將恢復截止到在——stop-date選項中以datetime格式給出的日期和時間的所有資料。如果你沒有檢測到幾個小時後輸入的錯誤的sql語句,可能你想要恢復後面發生的活動。根據這些,你可以用起使日期和時間再次執行mysqlbinlog:

mysqlbinlog ——start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456 \

| mysql -u root -pmypwd \

在該行中,從上午10:01登入的sql語句將執行。組合執行前夜的轉儲檔案和mysqlbinlog的兩行可以將所有資料恢復到上午10:00前一秒鐘。你應檢查日誌以確保時間確切。下一節介紹如何實現。

2. 指定恢復位置

也可以不指定日期和時間,而使用mysqlbinlog的選項——start-position和——stop-position來指定日誌位置。它們的作用與起止日選項相同,不同的是給出了從日誌起的位置號。使用日誌位置是更準確的恢復方法,特別是當由於破壞性sql語句同時發生許多事務的時候。要想確定位置號,可以執行mysqlbinlog尋找執行了不期望的事務的時間範圍,但應將結果重新指向文字檔案以便進行檢查。操作方法為:

mysqlbinlog ——start-date="2005-04-20 9:55:00" ——stop-date="2005-04-20

10:05:00" \

/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

該命令將在/tmp目錄建立小的文字檔案,將顯示執行了錯誤的sql語句時的sql語句。你可以用文字編輯器開啟該檔案,尋找你不要想重複的語句。如果二進位制日誌中的位置號用於停止和繼續恢復操作,應進行注釋。用log_pos加乙個數字來標記位置。使用位置號恢復了以前的備份檔案後,你應從命令列輸入下面內容:

mysqlbinlog ——stop-position="368312" /var/log/mysql/bin.123456 \

mysql -u root -pmypwd

mysqlbinlog ——start-position="368315"

/var/log/mysql/bin.123456 \

| mysql -u root -pmypwd \

上面的第1行將恢復到停止位置為止的所有事務。下一行將恢復從給定的起始位置直到二進位制日誌結束的所有事務。因為mysqlbinlog的輸出包括每個sql語句記錄之前的set

timestamp語句,恢復的資料和相關mysql日誌將反應事務執行的原時間。

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...

mysql二進位制恢復 mysql二進位制日誌恢復

二進位制日誌匯出 1.按時間節點匯出 no defaults 用來對mysql5.5之前mysqlbinlog命令報錯 mysqlbinlog no defaults start date 2017 08 08 15 04 04 stop date 2017 08 08 15 12 00 progr...

mysql二進位制方式 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 複製 如下 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示...