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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

實現(xiàn)學生成績管理數(shù)據(jù)庫的備份與恢復(2)備份多個數(shù)據(jù)庫。使用mysqldump命令備份多個數(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任務1

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

執(zhí)行如下語句。C:\Users\Administrator>mysqldump-uroot-pmysql--all-databases>D:\all.sql2.使用mysql命令恢復數(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)將會報錯。任務1

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

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

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

C:\Users\Administrator>mysqldump-uroot-pmysql-TE:\cjglkc任務1

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

該語句的基本格式如下。

SELECT列名FROMtable[WHERE條件表達式]INTOOUTFILE'目標文件'[OPTIONS]

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

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

實現(xiàn)學生成績管理數(shù)據(jù)庫的備份與恢復【例題8.9】使用mysqlimport命令以root用戶的身份,將例題8.6中導出的文件F:\kc.txt中的數(shù)據(jù)導入學生成績管理數(shù)據(jù)庫cjgl的課程表kc中。導入數(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表中的記錄,驗證表數(shù)據(jù)是否已經(jīng)導入成功mysql>USEcjgl;mysql>SELECT*FROMkc;(2)使用LOADDATA...INFILE語句導入數(shù)據(jù)LOAD

DATA

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

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

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

mysql>DELETE

FROM

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

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

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

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

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

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

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

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

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

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

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

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

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

使用日志備份和恢復數(shù)據(jù)8.2.3二進制日志2.查看二進制日志(1)查看二進制日志文件列表。(2)查看當前正在寫入的二進制日志文件。(3)查看二進制日志文件內容。可以使用MySQL提供的mysqlbinlog命令查看其內容。該命令的語法格式如下。mysqlbinlogfilename.number任務2

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

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

使用日志備份和恢復數(shù)據(jù)【例題8.15】使用mysqlbinlog命令恢復MySQL數(shù)據(jù)庫到2022年6月20日10:00:00時的狀態(tài)。在MySQL的數(shù)據(jù)目錄下找到2022年6月20日10:00:00這個時間點的二進制日志文件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任務2

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

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

使用日志備份和恢復數(shù)據(jù)查詢日志用來記錄MySQL的所有用戶操作,包括啟動和關閉MySQL服務、執(zhí)行查詢和更新語句等。1.啟動和設置查詢日志功能默認情況下,MySQL服務器的查詢日志功能是關閉的。可以通過以下命令查看查詢日志是否開啟。mysql>SHOWVARIABLESLIKE'%general%';如果需要開啟查詢日志功能,可以通過修改my.ini配置文件來實現(xiàn)。在[mysqld]組中添加log選項來開啟查詢日志功能,語法格式如下。[mysqld]general_log=ON|OFFlog=dir/filename其中,dir用于指定查詢日志文件的存儲路徑,filename用于指定文件名。如果不指定存儲路徑和文件名,查詢日志將默認存儲到MySQL數(shù)據(jù)目錄中的hostname.log文件中。任務2

使用日志備份和恢復數(shù)據(jù)8.2.4查詢日志2.查看查詢日志通過查看查詢日志,可以了解用戶對MySQL進行的操作。查詢日志以文本文件的形式存儲,可以使用文本編輯器直接打開查看。任務2

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

使用日志備份和恢復數(shù)據(jù)【例題8.18】備份現(xiàn)有的MySQL查詢日志,然后生成新的查詢日志文件。先將現(xiàn)有的MySQL查詢日志文件復制出來或者改名,再執(zhí)行mysqladmin命令生成新的查詢日志。C:\Users\Administrator>mysqladmin-uroot-pflush-logs除了上述方法之外,還可以手動刪除查詢日志文件,重啟MySQL服務后就會生成新的查詢日志文件。1.啟動和設置慢查詢日志默認情況下,MySQL服務器的慢查詢日志功能是關閉的。如果不需要調優(yōu),不建議開啟慢查詢日志功能,以免影響性能。可以通過以下語句查看慢查詢日志功

溫馨提示

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

評論

0/150

提交評論