亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysqlbinlog工具基于日志恢復的示例分析

發布時間:2021-11-06 09:45:50 來源:億速云 閱讀:174 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關mysqlbinlog工具基于日志恢復的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。



1)RESET MASTER
在上面查看日志存放的文件夾中,二進制日志命名的格式是以mysql-bin.*,*代表日志的序號,序號是遞增的,其中還有mysql-bin.index是日志的索引文件,記錄了日志的最大序號
我們執行RESET MASTER命名刪除全部日志

mysqlbinlog工具基于日志恢復的示例分析

查看刪除后的日志

mysqlbinlog工具基于日志恢復的示例分析

可以看到,以前的日志全部被清空,新的日志從00001開始

2)PURGE MASTER LOGS TO & PURGE MASTER LOGS BEFORE
執行PURGE MASTER LOGS TO 'mysql-bin.******'命令,是將'******'編號之前的所有日志進行刪除
執行PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh:mm:ss'命令,是將在'yyyy-mm-dd hh:mm:ss'時間之前的所有日志進行刪除

3)-EXPIRE_LOGS_DAYS
此參數是設置日志的過期天數,過期的日志將會被自動刪除,這有利于減少我們管理日志的工作量,需要修改my.cnf

mysqlbinlog工具基于日志恢復的示例分析
這里我們設定保存日志為3天,3天之后過期的日志將被自動刪除

恢復
 bin-log是記錄著mysql所有事件的操作,當mysql發生災難性錯誤時,可以通過bin-log做完整恢復,基于時間點的恢復,和基于位置的恢復


完整恢復,假定我們每天凌晨2點都會使用mysqldump備份數據庫,但在第二天早上9點由于數據庫出現了故障,數據無法訪問,需要恢復數據,先使用昨天凌晨備份的文件進行恢復到凌晨2點的狀態,在使用mysqlbinlog恢復自mysqldump備份以來的binlog
mysql localhost mysql-bin.000001 | mysql -uroot -p
這樣數據庫就可以完全的恢復到崩潰前的完全狀態

基于時間點的恢復
,由于誤操作,比如說刪除了一張表,這時使用上面講的完全恢復是沒有用的,因為日志里面還存在誤操作的語句,,我們需要的是恢復到誤操作前的狀態,然后跳過誤操作的語句,再恢復后面操作的語句,假定我們刪除了一張表的誤操作發生在10:00這個時間點,我們可以使用下面的語句用備份和binlog將數據恢復到故障前

mysqlbinlog --stop-date='2010-09-04 9:59:59' /var/log/mysql-bin.000001 | mysql -uroot -p


然后跳過誤操作的時間點,繼續執行后面的binlog

mysqlbinlog --start-date='2010-09-04 10:01:00' /var/log/mysql-bin.000001 | mysql -uroot -p


其中--stop-date='2010-09-04 9:59:59' 和 --start-date='2010-09-04 10:01:00' 其中的時間是你誤操作的時間點,當然了,這個時間點你需要你自己計算的,而且這個時間點還可以涉及到的不只是誤操作,還可以有正確的操作也被跳過去了。

基于位置恢復,由于上面提到的,使用基于時間點的恢復可能出現,在一個時間點里面可能存在誤操作和其他正確的操作,所以我們需要一種更為精確的恢復方式
使用mysqlbinlog查看二進制,可看到

mysqlbinlog工具基于日志恢復的示例分析

其中drop tables test1這個誤操作的end_log_pos為8879917,幾下這個id,得出它前后操作的id分別為8879916,8879918
我們將進行位置恢復操作

mysqlbinlog --stop-position='8879916' /var/log/mysql-bin.000001 | mysql -uroot -p

mysqlbinlog --start-position='8879918' /var/log/mysql-bin.000001 | mysql -uroot -p

服務器生成的二進制日志文件寫成二進制格式。要想檢查這些文本格式的文件,應使用mysqlbinlog實用工具。
應這樣調用mysqlbinlog
shell> mysqlbinlog [options] log-files例如,要想顯示二進制日志binlog.000003的內容,使用下面的命令:
shell> mysqlbinlog binlog.0000003輸出包括在binlog.000003中包含的所有語句,以及其它信息例如每個語句花費的時間、客戶發出的線程ID、發出線程時的時間戳等等。
通常情況,可以使用mysqlbinlog直接讀取二進制日志文件并將它們用于本地MySQL服務器。也可以使用–read-from-remote-server選項從遠程服務器讀取二進制日志。
當讀取遠程二進制日志時,可以通過連接參數選項來指示如何連接服務器,但它們經常被忽略掉,除非你還指定了–read-from-remote-server選項。這些選項是–host、–password、–port、–protocol、–socket和–user。
還可以使用mysqlbinlog來讀取在復制過程中從服務器所寫的中繼日志文件。中繼日志格式與二進制日志文件相同。

mysqlbinlog支持下面的選項:
·
—help,-?
顯示幫助消息并退出。
·
—database=db_name,-d db_name
只列出該數據庫的條目(只用本地日志)。
·
–force-read,-f
使用該選項,如果mysqlbinlog讀它不能識別的二進制日志事件,它會打印警告,忽略該事件并繼續。沒有該選項,如果mysqlbinlog讀到此類事件則停止。
·
–hexdump,-H
在注釋中顯示日志的十六進制轉儲。該輸出可以幫助復制過程中的調試。在MySQL 5.1.2中添加了該選項。
·
–host=host_name,-h host_name
獲取給定主機上的MySQL服務器的二進制日志。
·
–local-load=path,-l pat
為指定目錄中的LOAD DATA INFILE預處理本地臨時文件。
·
–offset=N,-o N
跳過前N個條目。
·
–password[=password],-p[password]
當連接服務器時使用的密碼。如果使用短選項形式(-p),選項和 密碼之間不能有空格。如果在命令行中–password或-p選項后面沒有 密碼值,則提示輸入一個密碼。
·
–port=port_num,-P port_num
用于連接遠程服務器的TCP/IP端口號。
·
–position=N,-j N
不贊成使用,應使用–start-position。
·
–protocol={TCP | SOCKET | PIPE | -position

使用的連接協議。
·
–read-from-remote-server,-R
從MySQL服務器讀二進制日志。如果未給出該選項,任何連接參數選項將被忽略。這些選項是–host、–password、–port、–protocol、–socket和–user。
·
–result-file=name, -r name
將輸出指向給定的文件。
·
–short-form,-s
只顯示日志中包含的語句,不顯示其它信息。
·
–socket=path,-S path
用于連接的套接字文件。
·
–start-datetime=datetime
從二進制日志中第1個日期時間等于或晚于datetime參量的事件開始讀取。datetime值相對于運行mysqlbinlog的機器上的本地時區。該值格式應符合DATETIME或TIMESTAMP數據類型。例如:
shell> mysqlbinlog –start-datetime=”2004-12-25 11:25:56″ binlog.000003該選項可以幫助點對點恢復。
·
–stop-datetime=datetime
從二進制日志中第1個日期時間等于或晚于datetime參量的事件起停止讀。關于datetime值的描述參見–start-datetime選項。該選項可以幫助及時恢復。
·
–start-position=N
從二進制日志中第1個位置等于N參量時的事件開始讀。
·
–stop-position=N
從二進制日志中第1個位置等于和大于N參量時的事件起停止讀。
·
–to-last-logs,-t
在MySQL服務器中請求的二進制日志的結尾處不停止,而是繼續打印直到最后一個二進制日志的結尾。如果將輸出發送給同一臺MySQL服務器,會導致無限循環。該選項要求–read-from-remote-server。
·
–disable-logs-bin,-D
禁用二進制日志。如果使用–to-last-logs選項將輸出發送給同一臺MySQL服務器,可以避免無限循環。該選項在崩潰恢復時也很有用,可以避免復制已經記錄的語句。注釋:該選項要求有SUPER權限。
·
–user=user_name,-u user_name
連接遠程服務器時使用的MySQL用戶名。
·
–version,-V
顯示版本信息并退出。

關于“mysqlbinlog工具基于日志恢復的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翁源县| 高安市| 桦川县| 宁南县| 新密市| 怀安县| 始兴县| 隆德县| 安吉县| 保山市| 峨山| 灌阳县| 彭山县| 隆林| 克什克腾旗| 锡林浩特市| 长武县| 合水县| 聂拉木县| 大埔区| 昌吉市| 龙胜| 资兴市| 金乡县| 武冈市| 荣成市| 鄂托克前旗| 红桥区| 崇信县| 蒙阴县| 定兴县| 神木县| 盐山县| 宜州市| 景谷| 胶南市| 江川县| 农安县| 天全县| 罗源县| 洛宁县|