您的位置:首頁>正文

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的備份還原針對不同的場景有不同的選擇, 這裡只是介紹的其中一種概念, 後面會有文章展開來詳細介紹。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示