溫馨提示×

溫馨提示×

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

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

結(jié)合binlog日志實(shí)現(xiàn)對mysqldump備份恢復(fù)

發(fā)布時間:2020-05-27 14:03:09 來源:網(wǎng)絡(luò) 閱讀:242 作者:三月 欄目:數(shù)據(jù)庫

本篇文章給大家主要講的是關(guān)于結(jié)合binlog日志實(shí)現(xiàn)對mysqldump備份恢復(fù)的內(nèi)容,感興趣的話就一起來看看這篇文章吧,相信看完結(jié)合binlog日志實(shí)現(xiàn)對mysqldump備份恢復(fù)對大家多少有點(diǎn)參考價值吧。

mysqldump備份一般采取全庫備份加日志備份的方式,如每天執(zhí)行一次全備份,每小時執(zhí)行一次二進(jìn)制日志備份。在mysql故障后可以使用全備份和日志備份將數(shù)據(jù)恢復(fù)到最后一個二進(jìn)制日志備份前的任意位置或時間。

    binlog簡介:

         mysql二進(jìn)制日志記錄著數(shù)據(jù)庫的所有增刪改的操作日志,在這前提上必須開啟binlog,里面包括這些操作的執(zhí)行時間。顯示二進(jìn)制內(nèi)容可以使用mysqlbinlog命令查看。

         binlog的作用:1,主從復(fù)制    2,恢復(fù)數(shù)據(jù)庫

             開啟binary log功能

             編輯my.cnf中的log-bin選項開啟二進(jìn)制日志:log-bin[=DIR/[filename]]。DIR參數(shù)指定二進(jìn)制文件的存儲路徑,filename參數(shù)指定二進(jìn)制文件的文件名,形式為filename.number,number的形式為000001,000002等。每次重啟mysql服務(wù)或運(yùn)行mysql > flush logs;都會生成一個新的二進(jìn)制日志文件,這些二進(jìn)制文件的number會不斷地遞增。其實(shí)還會生成一個名為filename.index的文件,這個文件中存儲所有二進(jìn)制日志文件的清單又稱為二進(jìn)制文件的索引。

                   mysql> show variables like 'log_bin':查看bing-log日志是否開啟。

結(jié)合binlog日志實(shí)現(xiàn)對mysqldump備份恢復(fù)

    bin-log因為是二進(jìn)制文件,不能通過文件內(nèi)容查看命令直接打開查看,mysql提供兩種方式查看方式。

    show binary logs; 查看mysql server上二進(jìn)制日志

    查看二進(jìn)制信息的命令格式:show binlog events [in 'log_name'] [ffrom pos] [limit [offset,] row_count]

    默認(rèn)顯示可找到的第一個二進(jìn)制日志文件中的時間,包含了日志文件名,事件的開始位置,時間類型,結(jié)束位置,信息等內(nèi)容。

    show binary logs等價于show master logs

    purge binary logs用于刪除二進(jìn)制日志。

    purge binary logs before '2016-08-28 22:46:26':把指定時間之前的二進(jìn)制文件刪除

    peset master與reset slave

        前者清空index文件中列出的所有二進(jìn)制日志,重置index文件為空,并創(chuàng)建一個新的二進(jìn)制日志文件,一般用于master首次啟動時。后者使slave忘記其在master二進(jìn)制日志文件中的復(fù)制位置,它會刪除master.info,relay-log.info和所有中繼日志文件并開始一個新的中繼日志文件,以便于開始一個干凈的復(fù)制。使用reset slave前需要先關(guān)閉slave賦值線程。

        想要查看到文件中劇吐內(nèi)容并應(yīng)于恢復(fù)場景還得借助mysqlbinlog這個工具格式:mysqlbinlog [options] log_file ...輸出的內(nèi)容會因日志文件的格式以及mysqlbinlog工具使用的選項不同而略不同。

        二進(jìn)制日志文件的格式包含行模式,語句模式,混合模式,基于語句的日志中事件信息包含執(zhí)行的語句等,基于行的日志中事件謝謝包含的是行的變化信息。

        mysqlbinlog和可以通過--read-from-remote-server選項從遠(yuǎn)程云服務(wù)器讀取二進(jìn)制日志文件,需要一些而外的連接參數(shù),如-h,-p,-P,-u等,這些側(cè)腦室近在指定了--read-from-remote-server后有效。

        無論是本地二進(jìn)制日志文件還是遠(yuǎn)程云服務(wù)器上的二進(jìn)制日志文件,無論是行模式,語句模式還是混合模式的二進(jìn)制日志文件,被mysqlbinlog工具解析后都可直接應(yīng)用與mysql server進(jìn)行基于時間點(diǎn),位置或數(shù)據(jù)庫的恢復(fù)。    

        mysqldump是mysql用于備份好數(shù)據(jù)轉(zhuǎn)移的一個工具,主要產(chǎn)生一系列的sql語句,可以封裝到文件,該文件包含所有重建你的數(shù)據(jù)庫所需要sql命令如create database,create table,insert等等??梢杂脕韺?shí)現(xiàn)輕量級的快速遷移或恢復(fù)數(shù)據(jù)庫。

        mysqldump是將數(shù)據(jù)表導(dǎo)成sql腳本文件,在不同的mysql版本之間升級時相對比較合適,也是最常用的備份方法。mysqldump一般在數(shù)據(jù)量很少的時候可以用于備份,當(dāng)數(shù)據(jù)量比較大的情況下,就不建議用mysqldump工具進(jìn)行備份。

        數(shù)據(jù)庫的導(dǎo)出,導(dǎo)出對象說明:mysqldump可以針對單個表,多個表,單個數(shù)據(jù)庫,多個數(shù)據(jù)庫,所有數(shù)據(jù)庫進(jìn)行導(dǎo)出的操作。

        mysqldump [options] db_name [tbl_name ...] 導(dǎo)出指定數(shù)據(jù)庫或單個表

        mysqldump [options] --databases db_name...    導(dǎo)出多個數(shù)據(jù)庫

        mysqldump [optoins] --all-databases    導(dǎo)出所有

        mysqldump -u用戶名 -p --flush-logs test > /opt/test.sql  --flush-logs這個選項就會完整備份的時候重新開啟一個新binlog。

        數(shù)據(jù)庫的導(dǎo)入

        mysql -u用戶名 -p test / /opt/test.sql   

        全庫備份+binlog的數(shù)據(jù)恢復(fù)

        環(huán)境準(zhǔn)備與備份還原:

        線程開啟binlog

以上關(guān)于結(jié)合binlog日志實(shí)現(xiàn)對mysqldump備份恢復(fù)詳細(xì)內(nèi)容,對大家有幫助嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI