本文為大家分享了MYSQL的日志與備份還原,供大家參考,具體內(nèi)容如下
一、錯誤日志
當(dāng)數(shù)據(jù)庫出現(xiàn)任何故障導(dǎo)致無法使用時,第一時間先去查看該日志
1、服務(wù)器啟動關(guān)閉過程中的信息
2、服務(wù)器運行過程中的錯誤信息
日志存放路徑,可以通過命令查看:
日志文件命名格式:host_name.err
二、二進制日志
又稱BINLOG,記錄所有的DDL語句和DML語句,不包括查詢語句。這個日志不僅非常重要,而且作為開發(fā)人員也非常喜歡這個日志。從它的定義可以看出,這個日志記錄了所有會改變表結(jié)構(gòu)和表數(shù)據(jù)的事件,所以一旦數(shù)據(jù)被誤刪除或者因為其他原因?qū)е聰?shù)據(jù)丟失,我們可以通過這個日志將數(shù)據(jù)恢復(fù)。是不是覺得很炫酷。
日志存放路徑:與錯誤日志在同一個目錄下
命名方式:默認方式為hostname-bin + 編號
mysql每次啟動或者flush日志時都會生成一個新的binlog,編號從1開始遞增。單個日志達到一定大小時,也會生成新的文件。
1、開啟記錄binlog的開關(guān)
在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
其中l(wèi)og-bin表示開關(guān)開啟,mysql-bin是日志名稱的前綴。
2、BINLOG的查看方式
由于是二進制文件,所以不能像錯誤日志那樣直接查看,需要借助mysql提供的工具:mysqlbinlog
3、按時間查看BINLOG
按時間查詢有一個需要注意的地方就是,start-datetime是閉區(qū)間,stop-datetime是開區(qū)間,所以如果需要查詢?nèi)烊罩驹?,需要定義為:
--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
三、數(shù)據(jù)備份
數(shù)據(jù)備份其實就是利用msyql提供的工具mysqldump將數(shù)據(jù)備份到指定目錄下的指定文件中。
1、備份指定的數(shù)據(jù)庫或者數(shù)據(jù)庫中的某些表
mysqldump 【option】 db_name 【table_names】
2、備份指定的一個或者多個數(shù)據(jù)庫
mysqldump 【option】 --database db_name1 db_name2
3、備份所有數(shù)據(jù)庫
mysqldump 【option】 -all -databases
將端口為3306的數(shù)據(jù)庫實例中的數(shù)據(jù)庫wd_msg中的表結(jié)構(gòu)以及表數(shù)據(jù)導(dǎo)出到cd.sql的文件中
cd.sql文件中內(nèi)容如下;
這個文件記錄的是DML語句以及DDL語句,查詢相關(guān)的操作除外。在數(shù)據(jù)恢復(fù)時就可以通過這些語句一條條執(zhí)行,從而完成數(shù)據(jù)的還原。
四、數(shù)據(jù)恢復(fù)
我們將表刪除,在重新導(dǎo)入剛剛導(dǎo)出的數(shù)據(jù):
下面的場景是還原同一臺服務(wù)器上另一個端口為3307的mysql實例中的wd_msg數(shù)據(jù)庫
Mysql的備份還原針對不同的場景有不同的選擇,這里只是介紹的其中一種概念,后面會有文章展開來詳細介紹。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- mysqldump備份還原和mysqldump導(dǎo)入導(dǎo)出語句大全詳解
- PHP備份/還原MySQL數(shù)據(jù)庫的代碼
- mysql 數(shù)據(jù)庫備份和還原方法集錦 推薦
- MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié)
- MySQL中使用innobackupex、xtrabackup進行大數(shù)據(jù)的備份和還原教程
- 詳解MYSQL的備份還原(PHP實現(xiàn))
- 命令行模式下備份、還原 MySQL 數(shù)據(jù)庫的語句小結(jié)
- MySQL使用命令備份和還原數(shù)據(jù)庫
- mysql日志文件在哪 如何修改MySQL日志文件位置
- mysql通過查看跟蹤日志跟蹤執(zhí)行的sql語句