電工與電子技術電子商務電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章ppt_第1頁
電工與電子技術電子商務電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章ppt_第2頁
電工與電子技術電子商務電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章ppt_第3頁
電工與電子技術電子商務電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章ppt_第4頁
電工與電子技術電子商務電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章ppt_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、電子課件數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)第15章第15章MySQL數據庫備份與還原數據庫原理及應用教程(基于Linux的MySQL和NoSQL應用)CONTENTS備份與還原概述1通過文件備份和還原23小結4通過命令MySQLdump備份還原備份與還原概述115.1 備份與還原概述為保證數據庫的可靠性和完整性,數據庫管理系統通常會采取各種有效的措施來進行維護。盡管如此,在數據庫的實際使用過程中,仍然存在著一些不可預估的因素,會造成數據庫運行事務的異常中斷:計算機硬件故障計算機軟件故障病毒人為誤操作自然災害盜竊面對這些可能的因素會造成數據丟失或被破壞的風險,數據

2、庫系統提供了備份和恢復策略來保證數據庫中數據的可靠性和完整性。15.1 備份與還原概述數據庫備份是指通過導出數據或者拷貝表文件的方式來制作數據庫的副本。數據庫的恢復(也稱為數據庫的還原)是將數據庫從某一種“錯誤”狀態(如硬件故障、操作失誤、數據丟失、數據不一致等狀態)恢復到某一已知的“正確”狀態。數據庫的恢復是以備份為基礎的,它是與備份相對應的系統維護和管理操作。在MySQL數據庫中具體實現備份數據庫的方法可以分為以下幾種:1、完全備份將數據庫中的數據及所有對象全部備份2、表備份僅將一張或多張表中的數據進行備份,可以使用select into outfile 或backup table語句,只

3、提取數據庫中的數據,而不備份表的結構和定義。15.1 備份與還原概述3、增量備份在某次完全備份的基礎上,只備份其后數據的變化。可用于定期備份和自動恢復。通過文件備份和還原215.2 通過文件備份和還原由于MYSQL服務器中的數據文件是基于磁盤的文本文件,所以最簡單、最直接的備份操作就是把數據庫文件直接復制出來。具體操作:先執行FLUSH TABLES語句將所有數據寫入到數據文件的文本文件中。再停止MySQL數據庫服務器雖然停止MySQL數據庫服務器,可以解決復制數據庫文件實現數據備份的問題,但是這種方法不是最好的備份方法。這是因為實際情況下,MySQL數據庫服務器不允許被停止,同時該方式對In

4、noDB儲存引擎的表不適合,只適合MyISAM引擎。通過命令MySQLdump備份還原315.3.1 備份1、使用MySQL客戶端實用程序2、使用MySQLdump程序備份數據MySQLdump程序可以備份數據庫表的結構,還可以備份一個數據庫,甚至整個數據庫系統,只需在MySQL客戶端實用程序的運行界面中輸入MySQLdump -help命令,即可查看到MySQLdump程序對應的命令(1)備份表MySQLdump options database tables filename15.3.1 備份(1)備份表MySQLdump options database tables filename【

5、例15-1】使用MySQLdump備份數據庫MySQL_test中的表customers。MySQLdump -hlocalhost -uroot -p153456 MySQL_test customers /home/root01/ database_bak/ customers.sql; 命令成功執行完畢后,會在指定的目錄/home/root01/ database_bak下生成一個表customers的備份文件customers.sql,該文件中存儲了創建表customers的一系列SQL語句以及該表中所有的數據。15.3.1 備份(2)備份數據庫MySQLdump options da

6、tabases options db1 db2 db3 . filename【例】備份數據庫MySQL_test和數據庫MySQL到/home/root01/ database_bak目錄下。MySQLdump -hlocalhosturoot -p153456 databases MySQL_test MySQL /home/root01/ database_bak/data.Sql ; 會在指定的目錄/home/root01/ database_bak下生成一個包含兩個數據庫MySQL_test和MySQL的備份文件data.sql,該文件中存儲了創建這兩個數據庫及其內部數據表全部SQL語

7、句以及兩個數據庫中所有的數據。15.3.1 備份(3)備份整個數據庫系統MySQLdumpoptions - -all-databasesoptions filename ; 【例15-2】備份MySQL服務器上所有數據庫。MySQLdump -u root -p153456 -all-databases /home/root01/ database_bak/alldata.Sql ; 可以在MySQLdump命令中使用“tab=”選項來分開數據和創建表的SQL語句。15.3.1 備份(3)備份整個數據庫系統MySQLdumpoptions - -all-databasesoptions fi

8、lename ; 【例15-3】將數據庫 MySQL_test中所有表的表的結構和數據分別備份到/home/root01/ database_bak目錄下MySQLdump u root p153456tab=/home/root01/ database_bak/MySQL_test ; 會在/home/root01/ database_bak目錄中生成4個文件,分別是customers.txt, customers.sql, customers_copy.txt和customuers_copy.sql.15.3.2 還原1、使用MySQL命令將MySQLdump程序備份的文件中全部的SQL語

9、句還原到MySQL中【例15-4】假設數據庫MySQL_test遭遇損壞,試用該數據庫的備份文件MySQL_test.sql將其恢復。 MySQL u root p153456 MySQL_test MySQL_test.sql ; 【例15-5】假設數據庫MySQL_test中表customers的表結構被損壞,試將存儲表customers結構的備份文件customers.Sql恢復到服務器中,其中該備份文件存放在Linux的/home/root01/ database_bak目錄中。MySQL u root p153456 customers /home/root01/ database_

10、bak/ customers.Sql ; 15.3.2 還原2、使用MySQLimport程序恢復數據【例15-6】 使用存放在/home/root01/ database_bak目錄下的備份數據文件customers.txt,恢復數據庫MySQL_test中表customers的數據。MySQLimport hlocalhost -uroot -p153456 low-priority replace MySQL_test /home/root01/ database_bak /customers.Txt ;MySQLimportoptionsdatabase textfile. ; 15.

11、4 表的導入和導出在MySQL中,可以使用select intooutfile語句把表數據導出到一個文本文件中進行備份,并可使用load data.infile語句來恢復先前備份的數據。這種方法有一點不足,就是只能導出或導人數據的內容,而不包括表的結構,若表的結構文件損壞,則必須先設法恢復原來表的結構。1)導出備份語句select into.outfileselect * into outfilefile_namecharacter set charset_name export_options| into dumpfilefile_name fields terminated bystrin

12、g optionally enclosed bychar escaped bychar linesterminated bystring 15.4 表的導入和導出2)load data.infile語句load data low_priority | concurrent local infilefile_name.txt replace | ignore into table tbl_name fields terminated by string optionally enclosed by char escaped by char lines starting by string ter

13、minated by string ignore number lines (col_name_or_user_var,.) set col_name = expr,.) 15.4 表的導入和導出【例15-7】備份數據庫MySQL_test中表customers的全部數據到/home/root01/ database_bak目錄下一個名為backupfile.txt的文件中,要求字段值如果是字符則用雙引號標注,字段值之間用逗號隔開,每行以問號為結束標志。然后,將備份后的數據導入到一個和customers表結構相同的空表cus-tomers_copy中。select * from MySQL_t

14、est.customers into outfile /home/root01/ database_bak /backupfile.txtfields terminated by . optionally enclosed by “” lines terminated by ?; 15.4 表的導入和導出【例15-7】備份數據庫MySQL_test中表customers的全部數據到/home/root01/ database_bak目錄下一個名為backupfile.txt的文件中,要求字段值如果是字符則用雙引號標注,字段值之間用逗號隔開,每行以問號為結束標志。然后,將備份后的數據導入到一個和customers表結構相同的空表cus-tomers_copy中。load data infile /h

溫馨提示

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

評論

0/150

提交評論