MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(微課版)單元8 MySQL數(shù)據(jù)庫備份與恢復(fù)_第1頁
MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(微課版)單元8 MySQL數(shù)據(jù)庫備份與恢復(fù)_第2頁
MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(微課版)單元8 MySQL數(shù)據(jù)庫備份與恢復(fù)_第3頁
MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(微課版)單元8 MySQL數(shù)據(jù)庫備份與恢復(fù)_第4頁
MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(微課版)單元8 MySQL數(shù)據(jù)庫備份與恢復(fù)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

單元8MySQL數(shù)據(jù)庫備份與恢復(fù)《MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(慕課版)》學(xué)習(xí)內(nèi)容任務(wù)1實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)

2任務(wù)2使用日志備份和恢復(fù)數(shù)據(jù)數(shù)據(jù)庫系統(tǒng)的組成任務(wù)4卸載MySQL1.數(shù)據(jù)備份和恢復(fù)的概述數(shù)據(jù)庫備份是指通過復(fù)制表文件或者導(dǎo)出數(shù)據(jù)的方式來生成數(shù)據(jù)庫的副本。備份的目的是當(dāng)數(shù)據(jù)庫出現(xiàn)故障或遭到破壞時(shí),能將備份的數(shù)據(jù)庫加載到系統(tǒng)中,使數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到備份時(shí)的正確狀態(tài)。一般情況下,數(shù)據(jù)庫備份需要備份的數(shù)據(jù)包括表數(shù)據(jù),二進(jìn)制日志、InnoDB事務(wù)日志,代碼(存儲(chǔ)過程、存儲(chǔ)函數(shù)、觸發(fā)器、事件調(diào)度器),服務(wù)器配置文件等。數(shù)據(jù)庫恢復(fù)是與備份對(duì)應(yīng)的系統(tǒng)維護(hù)和管理操作。數(shù)據(jù)恢復(fù)是指當(dāng)數(shù)據(jù)庫出現(xiàn)故障或者出于某種需要時(shí),將已備份的數(shù)據(jù)加載到數(shù)據(jù)庫中,使數(shù)據(jù)庫恢復(fù)到備份時(shí)的狀態(tài)。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)8.1.1數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的概述2.數(shù)據(jù)備份的分類(1)根據(jù)備份時(shí)數(shù)據(jù)庫服務(wù)器是否在線,數(shù)據(jù)備份可以分為以下3類。冷備份:冷備份也叫脫機(jī)備份,即在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的狀態(tài)下進(jìn)行的備份。熱備份:也稱聯(lián)機(jī)備份,即在數(shù)據(jù)庫正常運(yùn)行時(shí)進(jìn)行的備份,備份時(shí)數(shù)據(jù)庫的讀寫操作可以正常執(zhí)行。溫備份:也是在數(shù)據(jù)庫正常運(yùn)行時(shí)進(jìn)行的備份,但備份時(shí)數(shù)據(jù)庫僅支持讀操作,不支持寫操作。(2)按照備份后文件的內(nèi)容,數(shù)據(jù)備份可以分為以下兩類。物理備份:是指復(fù)制數(shù)據(jù)庫的物理結(jié)構(gòu)文件的操作。邏輯備份:是指將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到一個(gè)可讀的文件中,一般是文本文件,實(shí)際上導(dǎo)出的是SQL語句文件或表數(shù)據(jù)。(3)按照備份涉及的數(shù)據(jù)集合的范圍,數(shù)據(jù)備份可以分為完全備份和部分備份,部分備份又分為增量備份和差異備份。完全備份增量備份差異備份任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)3.數(shù)據(jù)備份的策略對(duì)于數(shù)據(jù)庫管理員來說,定制合理的備份策略非常重要,數(shù)據(jù)庫管理員應(yīng)該根據(jù)自身的業(yè)務(wù)要求設(shè)計(jì)出損失最小、對(duì)數(shù)據(jù)庫影響最小的備份策略。在進(jìn)行備份或恢復(fù)操作時(shí)需要考慮以下因素。確定要備份的表的存儲(chǔ)引擎是事務(wù)型還是非事務(wù)型,不同的存儲(chǔ)引擎?zhèn)浞莘绞皆谔幚頂?shù)據(jù)一致性方面是不同的。確定使用完全備份還是增量備份??梢钥紤]采取數(shù)據(jù)庫復(fù)制的方法來做異地備份,這是容災(zāi)的防范。要定期做備份,備份的周期要充分考慮系統(tǒng)可以承受的恢復(fù)時(shí)間。備份要在系統(tǒng)負(fù)載較小的時(shí)候進(jìn)行。確保MySQL打開log-bin選項(xiàng),有了binarylog,MySQL才可以在必要的時(shí)候做完整恢復(fù)、基于時(shí)間點(diǎn)的恢復(fù),或基于位置的恢復(fù)。要經(jīng)常做備份恢復(fù)測試,確保備份是有效的,并且是可以恢復(fù)的。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)1.冷備份與恢復(fù)停止MySQL數(shù)據(jù)庫服務(wù)。在操作系統(tǒng)級(jí)別復(fù)制默認(rèn)存放在MySQL數(shù)據(jù)目

C:\ProgramData\MySQL\MySQLServer5.7\Data下的相應(yīng)數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件到備份目錄。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)8.1.2物理備份和恢復(fù)2.熱備份與恢復(fù)對(duì)于MyISAM存儲(chǔ)引擎,熱備份方法雖然有很多,但實(shí)質(zhì)都是將要備份的表加讀鎖,然后再復(fù)制數(shù)據(jù)文件到備份目錄。操作方法如下。給數(shù)據(jù)庫中所有表加讀鎖,可執(zhí)行如下語句。mysql>flushtablesforread;復(fù)制相應(yīng)數(shù)據(jù)庫的數(shù)據(jù)文件到備份目錄。對(duì)于lnnoDB存儲(chǔ)引擎,可用Percona公司開發(fā)的開源熱備工具xtrabackup,對(duì)MySQLinnodb表進(jìn)行熱備份、增量備份。熱備份方法相對(duì)復(fù)雜些,在此不做介紹。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)1.使用mysqldump工具備份數(shù)據(jù)庫mysqldump程序在目錄C:\ProgramFiles\MySQL\MySQLServer5.7\bin下,mysqldump命令是在cmd命令行窗口中執(zhí)行的。(1)備份一個(gè)數(shù)據(jù)庫。使用mysqldump命令備份一個(gè)數(shù)據(jù)庫的語法格式如下。mysqldump-hhost-uusername-ppassworddbname>filename.sql任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)8.1.3邏輯備份與恢復(fù)【例題8.1】使用root用戶備份學(xué)生成績管理數(shù)據(jù)庫cjgl,備份文件名為“cjgl.sql”C:\Users\Administrator>mysqldump-uroot-pmysqlcjgl>D:\cjgl.sqlmysqldump:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.也可以在命令行中不寫出密碼,執(zhí)行時(shí)輸入密碼。執(zhí)行如下語句。C:\Users\Administrator>mysqldump-uroot-pcjgl>D:\cjgl1.sqlEnterpassword:*****可以用文本編輯器查看和編輯剛才備份的文件。文件cjgl.sql包含MySQL的版本,備份的主機(jī)名,數(shù)據(jù)庫名,備份的時(shí)間,各種注釋,多個(gè)DROP、CREATE和INSERT等語句,如圖8-1所示。恢復(fù)操作時(shí)將使用這些語句重新創(chuàng)建數(shù)據(jù)庫和表、插入表數(shù)據(jù)等。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)(2)備份多個(gè)數(shù)據(jù)庫。使用mysqldump命令備份多個(gè)數(shù)據(jù)庫的語法格式如下。mysqldump–uusername-hhost–ppassword--databasesdbname1dbname2>filename.sql【例題8.2】使用root用戶備份樣本數(shù)據(jù)庫world和sakila,備份文件名為“sample.sql”。C:\Users\Administrator>mysqldump-uroot-pmysql--databasesworldsakila>D:\sample.sql(3)備份所有數(shù)據(jù)庫。使用mysqldump命令備份所有數(shù)據(jù)庫的語法格式如下。mysqldump–uusername–ppassword--all-databases>filename.sql任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)【例題8.3】使用root用戶備份所有數(shù)據(jù)庫。

執(zhí)行如下語句。C:\Users\Administrator>mysqldump-uroot-pmysql--all-databases>D:\all.sql2.使用mysql命令恢復(fù)數(shù)據(jù)庫mysql程序在目錄C:\ProgramFiles\MySQL\MySQLServer5.7\bin下,mysql命令是在cmd命令行窗口中執(zhí)行的。mysql命令的語法格式如下。mysql–uusername–ppassword[dbname]<filename.sql其中,參數(shù)dbname表示要還原的數(shù)據(jù)庫名,是可選參數(shù)。如果指定的數(shù)據(jù)庫名不存在,系統(tǒng)將會(huì)報(bào)錯(cuò)。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)【例8.4】使用root用戶刪除學(xué)生成績管理數(shù)據(jù)庫cjgl,再使用例題8.1生成的備份文件cjgl.sql還原該數(shù)據(jù)庫。執(zhí)行如下語句。mysql>SHOWDATABASES;mysql>DROPDATABASEcjgl;驗(yàn)證該數(shù)據(jù)庫是否被刪除。mysql>SHOWDATABASES;使用mysql命令恢復(fù)數(shù)據(jù)庫。mysql>CREATEDATABASEcjgl;mysql>SHOWDATABASES;C:\Users\Administrator>mysql-uroot-pmysqlcjgl<D:\cjgl.sql用SELECT語句查看學(xué)生表中的記錄來驗(yàn)證數(shù)據(jù)庫是否已經(jīng)恢復(fù)成功。mysql>USEcjgl;mysql>SELECT*FROMxs;任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)3.使用命令導(dǎo)出數(shù)據(jù)導(dǎo)出是指將MySQL數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制到外部存儲(chǔ)文件(如文本文件、XML文件或者HTML文件)中,而導(dǎo)入則是將這些導(dǎo)出文件中的數(shù)據(jù)恢復(fù)到MySQL數(shù)據(jù)庫中。數(shù)據(jù)導(dǎo)出的方式有多種,常用方法有使用mysqldump命令、使用SELECT...INTOOUTFILE語句、使用mysql命令以及使用一些圖形化工具等。(1)使用mysqldump命令導(dǎo)出表。使用mysqldump命令不僅可以備份數(shù)據(jù)庫,還能備份數(shù)據(jù)表。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)用mysqldump命令導(dǎo)出sql文件。mysqldump命令導(dǎo)出SQL文件的語法格式如下。mysqldump-hhost-uusername-ppassworddbname[tbname...]>filename.sql【例題8.5】使用mysqldump命令以root用戶的身份,導(dǎo)出學(xué)生成績管理數(shù)據(jù)庫cjgl中學(xué)生表xs和成績表cj的數(shù)據(jù),導(dǎo)出文件名為xs_cj.sql;導(dǎo)出課程表kc的數(shù)據(jù),導(dǎo)出文件名為kc.sqlC:\Users\Administrator>mysqldump-uroot-pmysqlcjglxscj>E:\xs_cj.sqlC:\Users\Administrator>mysqldump-uroot–pmysqlcjglkc>E:\kc.sql【例題8.6】使用mysqldump命令以root用戶的身份,將學(xué)生成績管理數(shù)據(jù)庫cjgl中課程表kc的記錄導(dǎo)出到E:\下的文本文件中。然后將表中的記錄導(dǎo)出到F:\下的文本文件中,要求列名之間使用英文逗號(hào)“,”隔開,所有字符類型的值用英文雙引號(hào)引起來,定義轉(zhuǎn)義字符為問號(hào)“?”,每行記錄以回車換行符“\r\n”結(jié)尾。執(zhí)行如下語句。

C:\Users\Administrator>mysqldump-uroot-pmysql-TE:\cjglkc任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)②用mysqldump命令導(dǎo)出純文本文件。在某些情況下,需要將表中的數(shù)據(jù)導(dǎo)出為某些符號(hào)分割的純文本,而不是SQL語句。mysqldump命令導(dǎo)出純文本文件的語法格式如下。mysqldump-uusername-hhost-ppassword-Tpathdbname[tbname...][OPTIONS](2)使用SELECT...INTOOUTFILE語句導(dǎo)出表。在MySQL中,可以使用SELECT...INTOOUTFILE語句將表的數(shù)據(jù)導(dǎo)出到一個(gè)文本文件中。

該語句的基本格式如下。

SELECT列名FROMtable[WHERE條件表達(dá)式]INTOOUTFILE'目標(biāo)文件'[OPTIONS]

【例題8.7】使用SELECT...INTOOUTFILE語句以root用戶的身份導(dǎo)出學(xué)生成績管理數(shù)據(jù)庫cjgl中的學(xué)生表xs中的數(shù)據(jù)。執(zhí)行如下語句。mysql>SELECT*FROMcjgl.xsINTOOUTFILE'E:\xs.txt';【例題8.8】使用SELECT...INTOOUTFILE語句以root用戶的身份導(dǎo)出學(xué)生成績管理數(shù)據(jù)庫cjgl中學(xué)生表xs中的記錄,要求列名之間用“,”隔開,字符型數(shù)據(jù)用雙引號(hào)引起來,每條記錄以“-”開頭,以回車換行符“\r\n”結(jié)尾。執(zhí)行如下語句。mysql>SELECT*FROMcjgl.xsINTOOUTFILE'F:\xs.txt'FIELDSTERMINATEDBY'\,'OPTIONALLYENCLOSEDBY'\"'LINESSTARTINGBY'\-'TERMINATEDBY'\r\n';任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)4.使用命令導(dǎo)入數(shù)據(jù)(1)使用mysqlimport命令導(dǎo)入數(shù)據(jù)在MySQL中,mysqlimport命令主要用來向數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)。如果使用mysqldump命令導(dǎo)出數(shù)據(jù)時(shí)使用了-T參數(shù),則可以使用mysqlimport命將mysqldump導(dǎo)出的文件內(nèi)容導(dǎo)入數(shù)據(jù)庫中。mysqlimport–uroot–ppassworddbnamefilename.txt[OPTIONS]任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)【例題8.9】使用mysqlimport命令以root用戶的身份,將例題8.6中導(dǎo)出的文件F:\kc.txt中的數(shù)據(jù)導(dǎo)入學(xué)生成績管理數(shù)據(jù)庫cjgl的課程表kc中。導(dǎo)入數(shù)據(jù)前,先刪除kc表中的數(shù)據(jù),語句如下。mysql>DELETEFROMkc;C:\Users\Administrator>mysqlimport-uroot-pmysqlcjglE:\kc.txt--fields-terminated-by=,--fields-optionally-enclosed-by=\"--fields-escaped-by=?--lines-terminated-by=\r\n語句執(zhí)行成功后,用SELECT語句查看kc表中的記錄,驗(yàn)證表數(shù)據(jù)是否已經(jīng)導(dǎo)入成功mysql>USEcjgl;mysql>SELECT*FROMkc;(2)使用LOADDATA...INFILE語句導(dǎo)入數(shù)據(jù)LOAD

DATA

語句主要用于快速地從一個(gè)文本文件中讀取行,并裝入一個(gè)表中,LOAD

DATA的加載速度比普通的SQL語句要快20倍以上。文件名稱必須是文字字符串。LOADDATAINFILE'filename.txt'INTOTABLEtablename[OPTIONS][IGNOREnumber

LINES]【例題8.10】使用LOADDATA語句將[例題8.6]中導(dǎo)出的文件F:\kc.txt中的數(shù)據(jù)導(dǎo)入學(xué)生成績管理數(shù)據(jù)庫cjgl的課程表kc中。導(dǎo)入數(shù)據(jù)前,先刪除kc表中的數(shù)據(jù)。

mysql>DELETE

FROM

kc;導(dǎo)入數(shù)據(jù),執(zhí)行如下語句。mysql>LOADDATAINFILE‘F:\kc.txt

INTOTABLEcjgl.kcFIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY'\"'ESCAPEDBY'?'LINESTERMINATEDBY'\r\n';以上語句執(zhí)行成功后,用SELECT語句查看kc表中的記錄,驗(yàn)證表數(shù)據(jù)是否已經(jīng)導(dǎo)入成功。mysql>USEcjgl;mysql>SELECT*FROMkc;任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)1.使用MySQLWorkbench圖形化工具備份數(shù)據(jù)庫使用MySQLWorkbench圖形化工具能很方便地備份指定的數(shù)據(jù)庫,也可以導(dǎo)出指定的數(shù)據(jù)表或視圖。【例題8.11】使用MySQLWorkbench圖形化工具,通過root用戶備份學(xué)生成績管理數(shù)據(jù)庫cjgl,備份文件名為cjgl.sql。導(dǎo)出學(xué)生表xs的結(jié)構(gòu)與數(shù)據(jù),文件名為cjgl_xs.sql任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)8.1.4使用MySQLWorkbench圖形化工具備份和恢復(fù)數(shù)據(jù)庫任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)2.使用MySQLWorkbench圖形化工具恢復(fù)數(shù)據(jù)庫【例題8.12】使用MySQLWorkbench圖形化工具,通過root用戶恢復(fù)學(xué)生成績管理數(shù)據(jù)庫cjgl。任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)任務(wù)1

實(shí)現(xiàn)學(xué)生成績管理數(shù)據(jù)庫的備份與恢復(fù)數(shù)據(jù)庫的日志主要用來記錄數(shù)據(jù)庫的運(yùn)行情況、日常操作和錯(cuò)誤等信息。日志是數(shù)據(jù)庫的重要組成部分,通過分析日志,可以了解MySQL數(shù)據(jù)庫的運(yùn)行情況、診斷數(shù)據(jù)庫出現(xiàn)的各種問題,為MySQL的管理和優(yōu)化提供必要的信息。MySQL有以下4種不同類型的日志,各自存儲(chǔ)在不同類型的日志文件中。(1)二進(jìn)制日志:以二進(jìn)制的形式記錄數(shù)據(jù)庫的所有更改數(shù)據(jù)的操作,可以用于數(shù)據(jù)恢復(fù)和數(shù)據(jù)復(fù)制。(2)錯(cuò)誤日志:記錄MySQL服務(wù)的啟動(dòng)、運(yùn)行和停止時(shí)出現(xiàn)的問題。(3)查詢?nèi)罩?記錄MySQL服務(wù)器的啟動(dòng)和關(guān)閉信息,客戶端的連接信息,更新、查詢數(shù)據(jù)記錄的SQL語句等;通過查詢?nèi)罩究梢粤私馑杏脩舻牟僮鳌?4)慢查詢?nèi)罩?記錄執(zhí)行時(shí)間超過long_query_time指定時(shí)間的所有查詢或不使用索引的查詢;通過工具分析慢查詢?nèi)罩究梢远ㄎ籑ySQL服務(wù)器性能的瓶頸所在。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)8.2.1MySQL日志概述1.啟動(dòng)和設(shè)置錯(cuò)誤日志功能通過錯(cuò)誤日志可以監(jiān)視系統(tǒng)的運(yùn)行狀態(tài),便于及時(shí)發(fā)現(xiàn)故障并加以排除。在MySQL數(shù)據(jù)庫中,默認(rèn)開啟錯(cuò)誤日志功能。錯(cuò)誤日志的啟動(dòng)和停止,都可以通過修改MySQL配置文件my.ini來實(shí)現(xiàn)。錯(cuò)誤日志記錄的信息可以通過log-error和log-warnings來定義,前者用于定義是否啟用錯(cuò)誤日志功能和錯(cuò)誤日志的存儲(chǔ)位置,后者用于定義是否將警告信息也記錄到錯(cuò)誤日志中。配置項(xiàng)如下。[mysqld]log-error=dir/{filename}其中,dir用于指定錯(cuò)誤日志的存儲(chǔ)路徑;filename用于指定錯(cuò)誤日志的文件名;省略參數(shù)時(shí)錯(cuò)誤日志文件名默認(rèn)為hostname.err,存儲(chǔ)在MySQL的數(shù)據(jù)目錄下。在my.ini文件中,將log_error選項(xiàng)改為注釋行,則會(huì)停止錯(cuò)誤日志功能。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)8.2.2錯(cuò)誤日志【例題8.13】將學(xué)習(xí)成績管理數(shù)據(jù)庫cjgl的錯(cuò)誤日志存放在D:\下,文件名為errorlog.err,警告信息不記錄到錯(cuò)誤日志中。用文本編輯器打開MySQL配置文件my.ini,在[mysqld]組中添加如下配置信息。[mysqld]#log-error=D:\errorlog.errlog-warnings=02.查看錯(cuò)誤日志如果MySQL服務(wù)出現(xiàn)異常,可以通過查看錯(cuò)誤日志找原因。在MySQL中,可以先通過SHOW命令查看錯(cuò)誤日志文件所在的目錄及文件名信息,如下所示。mysql>SHOWVARIABLESLIKE'log_error';然后通過文本編輯器打開錯(cuò)誤日志文件,找到發(fā)生異常的時(shí)間和原因,再根據(jù)這些信息來解決異常問題。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)3.刪除錯(cuò)誤日志MySQL的錯(cuò)誤日志可以直接刪除。在運(yùn)行狀態(tài)下刪除錯(cuò)誤日志文件后,MySQL并不會(huì)自動(dòng)創(chuàng)建日志文件,MySQL啟動(dòng)或者執(zhí)行flushlogs命令時(shí)會(huì)創(chuàng)建新的日志文件。在服務(wù)器端執(zhí)行mysqladmin命令重新加載日志文件,如下所示。C:\Users\Administrator>mysqladmin-uroot-pflush-logs在客戶端登錄MySQL數(shù)據(jù)庫,執(zhí)行flushlogs命令也可以重新加載日志文件,如下所示mysql>flushlogs;任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)1.啟動(dòng)和設(shè)置二進(jìn)制日志功能可以通過SHOWVARIABLES語句來查看二進(jìn)制日志功能是否開啟。可以通過在MySQL配置文件my.ini中添加log-bin選項(xiàng)來設(shè)置和啟動(dòng)二進(jìn)制日志功能。[mysqld]log-bin=dir/[filename]expire_logs_days=10max_binlog_size=50M其中,dir用于指定二進(jìn)制日志文件的存儲(chǔ)路徑,filename用于指定文件名。如果不指定dir和filename參數(shù),二進(jìn)制日志將默認(rèn)存儲(chǔ)到MySQL數(shù)據(jù)目錄中的hostname-bin.number文件中。文件名后綴.number為.00000n,n是從1開始的自然數(shù)。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)8.2.3二進(jìn)制日志2.查看二進(jìn)制日志(1)查看二進(jìn)制日志文件列表。(2)查看當(dāng)前正在寫入的二進(jìn)制日志文件。(3)查看二進(jìn)制日志文件內(nèi)容??梢允褂肕ySQL提供的mysqlbinlog命令查看其內(nèi)容。該命令的語法格式如下。mysqlbinlogfilename.number任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)【例題8.14】查詢成績管理數(shù)據(jù)庫cigl中的學(xué)生表xs,使用mysqlbinlog命令查看數(shù)據(jù)目錄下的二進(jìn)制日志文件LAPTOP-QM9UJHD3-bin.000001的內(nèi)容,并將其輸出到名為LAPTOP-QM9UJHD3-bin.000001.sql的文件中。查看二進(jìn)制日志文件LAPTOP-QM9UJHD3-bin.000001的內(nèi)容,執(zhí)行如下語句。C:\ProgramData\MySQL\MySQLServer5.7\Data>mysqlbinlogLAPTOP-QM9UJHD3-bin.000001任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)C:\ProgramData\MySQL\MySQLServer5.7\Data>mysqlbinlogLAPTOP-QM9UJHD3-bin.000001>LAPTOP-QM9UJHD3-bin.000001.sql3.使用二進(jìn)制日志恢復(fù)數(shù)據(jù)庫用戶可以使用mysqlbinlog命令利用二進(jìn)制日志完成基于時(shí)間點(diǎn)的恢復(fù)工作。其語法格式如下。mysqlbinlog[option]filename|mysql–uroot-p其中,filename為二進(jìn)制日志文件名??梢灾付ǘM(jìn)制日志文件的存儲(chǔ)路徑。option為可選參數(shù),部分參數(shù)如下。①--start-date:用于恢復(fù)數(shù)據(jù)庫操作的起始時(shí)間點(diǎn)。②--stop-date:用于恢復(fù)數(shù)據(jù)庫操作的結(jié)束時(shí)間點(diǎn)。③--start-position:用于恢復(fù)數(shù)據(jù)庫操作的起始偏移位置。④--stop-position:用于恢復(fù)數(shù)據(jù)庫操作的結(jié)束偏移位置。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)【例題8.15】使用mysqlbinlog命令恢復(fù)MySQL數(shù)據(jù)庫到2022年6月20日10:00:00時(shí)的狀態(tài)。在MySQL的數(shù)據(jù)目錄下找到2022年6月20日10:00:00這個(gè)時(shí)間點(diǎn)的二進(jìn)制日志文件LAPTOP-QM9UJHD3-bin.000003,執(zhí)行如下語句。C:\ProgramData\MySQL\MySQLServer5.7\Data>mysqlbinlog--stop-date=“2022-06-2010:00:00""C:\ProgramFiles\LAPTOP-QM9UJHD3-bin.000003"|mysql–uroot–p任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)4.停止二進(jìn)制日志功能在配置文件中設(shè)置了log_bin選項(xiàng)之后,MySQL服務(wù)器將會(huì)一直開啟二進(jìn)制日志功能??梢酝ㄟ^以下兩種方法停止該日志功能。(1)注釋掉MySQL配置文件中的log_bin選項(xiàng),重啟服務(wù)器。(2)通過SETSQL_LOG_BIN語句暫停MySQL二進(jìn)制日志功能。命令如下。SETSQL_LOG_BIN=0/1;其中,0表示暫停二進(jìn)制日志功能,1表示啟動(dòng)二進(jìn)制日志功能。5.刪除二進(jìn)制日志二進(jìn)制日志中記錄著大量的信息,如果長時(shí)間不清理,將會(huì)占用很大的磁盤空間。在備份MySQL數(shù)據(jù)庫之后,應(yīng)該刪除備份數(shù)據(jù)庫之前的二進(jìn)制日志。MySQL可以通過指定expire_logs_days的值來設(shè)置自動(dòng)刪除二進(jìn)制日志的天數(shù),也可以手動(dòng)刪除。(1)刪除所有二進(jìn)制日志文件。使用RESETMASTER語句刪除所有二進(jìn)制日志文件,其語法格式如下。RESETMASTER;(2)根據(jù)編號(hào)刪除二進(jìn)制日志。使用PURGEMASTERLOGS語句可刪除指定的二進(jìn)制日志編號(hào)之前的日志文件,其語法格式如下。PURGE{MASTERIBINARY}LOGSTO'filename.number';(3)根據(jù)時(shí)間刪除二進(jìn)制日志。使用PURGEMASTERLOGS語句可刪除指定日期以前的所有二進(jìn)制日志文件,其語法格式如下。PURGE{MASTERIBINARY}LOGSBEFORE'date';任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)【例題8.16】使用PURGEMASTERLOGS語句刪除比LAPTOP-QM9UJHD3-bin.000003編號(hào)小的二進(jìn)制日志;刪除2022-6-2010:00:00之前創(chuàng)建的二進(jìn)制日志。執(zhí)行如下語句。PURGEMASTERLOGSTO'LAPTOP-QM9UJHD3-bin.000003';以上語句執(zhí)行后,比LAPTOP-QM9UJHD3-bin.000003編號(hào)小的二進(jìn)制日志被刪除。執(zhí)行如下語句PURGEMASTERLOGSTO'2022-6-2010:00:00";以上語句執(zhí)行后,2022-6-2010:00:00之前創(chuàng)建的所有二進(jìn)制日志被刪除。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)查詢?nèi)罩居脕碛涗汳ySQL的所有用戶操作,包括啟動(dòng)和關(guān)閉MySQL服務(wù)、執(zhí)行查詢和更新語句等。1.啟動(dòng)和設(shè)置查詢?nèi)罩竟δ苣J(rèn)情況下,MySQL服務(wù)器的查詢?nèi)罩竟δ苁顷P(guān)閉的??梢酝ㄟ^以下命令查看查詢?nèi)罩臼欠耖_啟。mysql>SHOWVARIABLESLIKE'%general%';如果需要開啟查詢?nèi)罩竟δ?,可以通過修改my.ini配置文件來實(shí)現(xiàn)。在[mysqld]組中添加log選項(xiàng)來開啟查詢?nèi)罩竟δ?,語法格式如下。[mysqld]general_log=ON|OFFlog=dir/filename其中,dir用于指定查詢?nèi)罩疚募拇鎯?chǔ)路徑,filename用于指定文件名。如果不指定存儲(chǔ)路徑和文件名,查詢?nèi)罩緦⒛J(rèn)存儲(chǔ)到MySQL數(shù)據(jù)目錄中的hostname.log文件中。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)8.2.4查詢?nèi)罩?.查看查詢?nèi)罩就ㄟ^查看查詢?nèi)罩荆梢粤私庥脩魧?duì)MySQL進(jìn)行的操作。查詢?nèi)罩疽晕谋疚募男问酱鎯?chǔ),可以使用文本編輯器直接打開查看。任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)3.停止查詢?nèi)罩静樵內(nèi)罩竟δ軉?dòng)后,可以通過兩種方法停止該日志功能。一種是注釋掉MySQL配置文件中的相關(guān)配置,重啟MySQL服務(wù)器。另一種是設(shè)置MySQL的環(huán)境變量general_log為關(guān)閉狀態(tài),具體語句如下。mysql>SETGLOBALgeneral_log=OFF;mysql>SHOWVARIABLESLIKE'%general_log%'\G;4.刪除查詢?nèi)罩驹谟脩纛l繁使用數(shù)據(jù)庫的情況下,查詢?nèi)罩緯?huì)增加得很快,這將會(huì)占用較大的磁盤空間,影響系統(tǒng)性能。數(shù)據(jù)庫管理員可以定期刪除比較早的查詢?nèi)罩疽怨?jié)省磁盤空間。在服務(wù)器端執(zhí)行mysqladmin命令可以創(chuàng)建新的查詢?nèi)罩?,新的查詢?nèi)罩緯?huì)直接覆蓋舊的查詢?nèi)罩?。該命令的語法格式如下。mysqladmin-uroot-pflush-logs或在客戶端登錄到MySQL服務(wù)器,執(zhí)行flushlogs語句重新加載日志。mysql>flushlogs;任務(wù)2

使用日志備份和恢復(fù)數(shù)據(jù)【例題8.18】備份現(xiàn)有的MySQL查詢?nèi)罩荆缓笊尚碌牟樵內(nèi)罩疚募?。先將現(xiàn)有的MySQL查詢?nèi)罩疚募?fù)制出來或者改名,再執(zhí)行mysqladmin命令生成新的查詢?nèi)罩尽:\Users\Administrator>mysqladmin-uroot-pflush-logs除了上述方法之外,還可以手動(dòng)刪除查詢?nèi)罩疚募?,重啟MySQL服務(wù)后就會(huì)生成新的查詢?nèi)罩疚募?.啟動(dòng)和設(shè)置慢查詢?nèi)罩灸J(rèn)情況下,MySQL服務(wù)器的慢查詢?nèi)罩竟δ苁顷P(guān)閉的。如果不需要調(diào)優(yōu),不建議開啟慢查詢?nèi)罩竟δ?,以免影響性能??梢酝ㄟ^以下語句查看慢查詢?nèi)罩竟?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論