您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“mysql的日志文件是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
mysql有四種日志文件:1、二進(jìn)制日志文件,該日志文件會(huì)以二進(jìn)制的形式記錄數(shù)據(jù)庫(kù)的各種操作,但不記錄查詢語(yǔ)句;2、錯(cuò)誤日志文件,主要記錄MySQL服務(wù)器啟動(dòng)和停止過(guò)程中的信息、服務(wù)器在運(yùn)行過(guò)程中發(fā)生的故障和異常情況等;3、通用查詢?nèi)罩疚募涗浄?wù)器的啟動(dòng)和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的SQL語(yǔ)句等;4、慢查詢?nèi)罩疚募?,主要記錄?zhí)行事件超過(guò)指定時(shí)間的操作。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
日志是數(shù)據(jù)庫(kù)的重要組成部分,主要用來(lái)記錄數(shù)據(jù)庫(kù)的運(yùn)行情況、日常操作和錯(cuò)誤信息。
在MySQL 中 ,日志文件可以分為4 種:二進(jìn)制日志文件、錯(cuò)誤日志文件、通用查詢?nèi)罩疚募吐樵內(nèi)罩疚募?/strong>
二進(jìn)制日志文件:該日志文件會(huì)以二進(jìn)制的形式記錄數(shù)據(jù)庫(kù)的各種操作,但不記錄查詢語(yǔ)句。主要用于記錄數(shù)據(jù)庫(kù)的變化情況,即 SQL 語(yǔ)句的 DDL 和 DML 語(yǔ)句,不包含數(shù)據(jù)記錄查詢操作。
錯(cuò)誤日志文件:主要記錄 MySQL 服務(wù)器啟動(dòng)和停止過(guò)程中的信息、服務(wù)器在運(yùn)行過(guò)程中發(fā)生的故障和異常情況等。
通用查詢?nèi)罩疚募涸撊罩居涗?MySQL 服務(wù)器的啟動(dòng)和關(guān)閉信息、客戶端的連接信息、更新、查詢數(shù)據(jù)記錄的 SQL 語(yǔ)句等。
慢查詢?nèi)罩疚募河涗泩?zhí)行事件超過(guò)指定時(shí)間的操作,通過(guò)工具分析慢查詢?nèi)罩究梢远ㄎ?MySQL 服務(wù)器性能瓶頸所在。
在 MySQL 所支持的日志文件里,除了二進(jìn)制日志文件外,其它日志文件都是文本文件。默認(rèn)情況下,MySQL 只會(huì)啟動(dòng)錯(cuò)誤日志文件,而其它日志則需要手動(dòng)啟動(dòng)。
使用日志有優(yōu)點(diǎn)也有缺點(diǎn)。啟動(dòng)日志后,雖然可以對(duì) MySQL 服務(wù)器性能進(jìn)行維護(hù),但是會(huì)降低 MySQL 的執(zhí)行速度。例如,一個(gè)查詢操作比較頻繁的 MySQL 中,記錄通用查詢?nèi)罩竞吐樵內(nèi)罩疽ㄙM(fèi)很多的時(shí)間。
日志文件還會(huì)占用大量的硬盤空間。對(duì)于用戶量非常大、操作非常頻繁的數(shù)據(jù)庫(kù),日志文件需要的存儲(chǔ)空間甚至比數(shù)據(jù)庫(kù)文件需要的存儲(chǔ)空間還要大。因此,是否啟動(dòng)日志,啟動(dòng)什么類型的日志要根據(jù)具體的應(yīng)用來(lái)決定。
擴(kuò)展知識(shí):MySQL使用二進(jìn)制日志還原數(shù)據(jù)庫(kù)
二進(jìn)制日志中記錄了用戶對(duì)數(shù)據(jù)庫(kù)更改的所有操作,如 INSERT 語(yǔ)句、UPDATE 語(yǔ)句、CREATE 語(yǔ)句等。如果數(shù)據(jù)庫(kù)因?yàn)椴僮鞑划?dāng)或其它原因丟失了數(shù)據(jù),可以通過(guò)二進(jìn)制日志來(lái)查看在一定時(shí)間段內(nèi)用戶的操作,結(jié)合數(shù)據(jù)庫(kù)備份來(lái)還原數(shù)據(jù)庫(kù)。
下面將詳細(xì)介紹使用二進(jìn)制日志還原數(shù)據(jù)庫(kù)的方法。
數(shù)據(jù)庫(kù)遭到意外損壞時(shí),應(yīng)該先使用最近的備份文件來(lái)還原數(shù)據(jù)庫(kù)。另外備份之后,數(shù)據(jù)庫(kù)可能進(jìn)行了一些更新,這時(shí)可以使用二進(jìn)制日志來(lái)還原。因?yàn)槎M(jìn)制日志中存儲(chǔ)了更新數(shù)據(jù)庫(kù)的語(yǔ)句,如 UPDATE 語(yǔ)句、INSERT 語(yǔ)句等。
二進(jìn)制日志還原數(shù)據(jù)庫(kù)的命令如下:
mysqlbinlog filename.number | mysql -u root -p
以上命令可以理解成,先使用 mysqlbinlog 命令來(lái)讀取 filename.number 中的內(nèi)容,再使用 mysql 命令將這些內(nèi)容還原到數(shù)據(jù)庫(kù)中。
技巧:二進(jìn)制日志雖然可以用來(lái)還原 MySQL 數(shù)據(jù)庫(kù),但是其占用的磁盤空間也是非常大的。因此,在備份 MySQL 數(shù)據(jù)庫(kù)之后,應(yīng)該刪除備份之前的二進(jìn)制日志。如果備份之后發(fā)生異常,造成數(shù)據(jù)庫(kù)的數(shù)據(jù)損失,可以通過(guò)備份之后的二進(jìn)制日志進(jìn)行還原。
使用 mysqlbinlog 命令進(jìn)行還原操作時(shí),必須是編號(hào)(number)小的先還原。例如,mylog.000001 必須在 mylog.000002 之前還原。
例 1
下面使用二進(jìn)制日志來(lái)還原數(shù)據(jù)庫(kù),代碼如下:
mysqlbinlog mylog.000001 | mysql -u root -p mysqlbinlog mylog.000002 | mysql -u root -p mysqlbinlog mylog.000003 | mysql -u root -p mysqlbinlog mylog.000004 | mysql -u root -p
“mysql的日志文件是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。