首頁  >  文章  >  資料庫  >  關於MySQL中日誌以及備份還原的圖文程式碼詳解

關於MySQL中日誌以及備份還原的圖文程式碼詳解

黄舟
黄舟原創
2017-07-21 16:34:041166瀏覽

這篇文章主要為大家詳細介紹了MYSQL日誌與備份還原問題,具有一定的參考價值,有興趣的小夥伴們可以參考一下

本文為大家分享了MYSQL的日誌與備份還原,供大家參考,具體內容如下

一、錯誤日誌

#當資料庫出現任何故障導致無法使用時,第一時間先去查看該日誌

1、伺服器啟動關閉過程中的資訊

2、伺服器執行過程中的錯誤訊息

日誌存放路徑,可以透過指令查看:

#日誌檔案命名格式:host_name.err

#二、二進位日誌

又稱BINLOG,記錄所有的DDL語句和DML語句,不包含查詢語句。這個日誌不僅非常重要,而且身為開發人員也非常喜歡這個日誌。從它的定義可以看出,這個日誌記錄了所有會改變表結構和表資料的事件,所以一旦資料被誤刪除或因為其他原因導致資料遺失,我們可以透過這個日誌恢復資料。是不是覺得很酷。

日誌存放路徑:與錯誤日誌在同一個目錄下

命名方式:預設方式為hostname-bin + 編號

mysql每次啟動或flush日誌時都會產生一個新的binlog,編號從1開始遞增。單一日誌達到一定大小時,也會產生新的檔案。

1、開啟記錄binlog的開關

在myslq的安裝目錄下,有​​一個設定檔:my.ini


innodb_buffer_pool_size=107M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=54M

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=10

log-bin=mysql-bin

其中log-bin表示開關開啟,mysql-bin是日誌名稱的前綴。

2、BINLOG的檢視方式

由於是二進位文件,所以不能像錯誤日誌那樣直接查看,需要藉助mysql提供的工具:mysqlbinlog

#3、按時間查看BINLOG

按時間查詢有一個需要注意的地方就是,start-datetime是閉區間,stop-datetime是開區間,所以如果需要查詢全天日誌話,需要定義為:
--start-datetime="2017/07/12 00:00:00" --stop-datetime="2017/07/13 00:00:00":這樣查詢的時間範圍是7 /12 00:00:00 - 7/12 24:59:59

三、資料備份

資料備份其實就是利用msyql提供的工具mysqldump將資料備份到指定目錄下的指定檔案。

1、備份指定的資料庫或資料庫中的某些表格

mysqldump 【option】 db_name 【table_names】

2、備份指定的一個或多個資料庫

mysqldump 【option】 --database db_name1 db_name2

3、備份所有資料庫

mysqldump 【option】 -all -databases

將連接埠為3306的資料庫實例中的資料庫wd_msg中的表格結構以及表格資料匯出到cd.sql的檔案中

#cd.sql檔案中內容如下;

這個檔案記錄的是DML語句以及DDL語句,查詢相關的運算除外。在資料復原時就可以透過這些語句一則執行,從而完成資料的還原。

四、資料恢復

我們將表格刪除,在重新匯入剛剛匯出的資料:

下面的場景是還原同一台伺服器上另一個連接埠為3307的mysql實例中的wd_msg資料庫

Mysql的備份還原針對不同的場景有不同的選擇,這裡只是介紹的其中一個概念,後面會有文章展開來詳細介紹。

以上是關於MySQL中日誌以及備份還原的圖文程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn