1. 程式人生 > 其它 >資料備份與還原

資料備份與還原

12.1 資料備份

12.1.1 使用mysqldump命令備份

mysqldump是MySQL提供的一個非常有用的資料庫備份工具。mysqldump命令執行時,可以將資料庫備份成一個文字檔案,該檔案中實際上包含了多個CREATE和INSERT語句,使用這些語句可以重新建立表和插入資料。
mysqldump –u user –h host –ppassword dbname[tbname, [tbname...]]> filename.sql

12.1.2 直接複製整個資料庫目錄

因為MySQL表儲存為檔案方式,所以可以直接複製mysql資料庫的儲存目錄及檔案進行備份。
InnoDB儲存引擎的表不適用。使用這種方法備份的資料最好還原到相同版本的伺服器中,因為不同的版本可能不相容。

12.1.3 使用mysqlhotcopy工具快速備份

mysqlhotcopy是一個Perl指令碼,它使用LOCK TABLES、FLUSH TABLES和cp或scp來快速備份資料庫。
只可以備份MyISAM型別的表

12.2 資料還原

12.2.1 使用mysql命令還原

對於已經備份的包含CREATE、INSERT語句的文字檔案,可以使用mysql命令匯入到資料庫中。本小節將介紹mysql命令匯入sql檔案方法。

12.2.2 直接複製到資料庫目錄

如果資料庫通過複製資料庫檔案備份,可以直接複製備份的檔案到到MySQL資料目錄下實現還原。通過這種方式還原時,必須儲存備份資料的資料庫和待還原的資料庫伺服器的主版本號相同。而且這種方式只對MyISAM引擎的表有效。對於InnoDB引擎的表不可用。

12.2.3 mysqlhotcopy快速恢復

mysqlhotcopy備份後的檔案也可以用來恢復資料庫,在MySQL伺服器停止執行時,將備份的資料庫檔案拷貝到MySQL存放資料的位置(MySQL的Data資料夾中),重新啟動MySQL服務即可。如果以根使用者執行該操作,必須指定資料庫檔案的所有者。

12.3 資料庫遷移

12.3.1 相同版本的MySQL資料庫之間的遷移

相同版本的MySQL資料庫之間的遷移就是在主版本號相同的MySQL資料庫之間進行資料庫移動。遷移過程其實就是在源資料庫備份和目標資料庫還原過程的組合。

12.3.2 不同版本的MySQL資料庫之間的遷移

因為資料庫升級等原因,需要將較舊版本MySQL資料庫中的資料遷移到的較新版本的資料庫中。

12.3.3 不同資料庫之間遷移

不同型別的資料庫之間的遷移,是指從把MySQL的資料庫轉移到其他型別的資料庫,例如從MySQL遷移到ORACLE,從ORACLE遷移到MySQL和從MySQL遷移到sqlserver等。

12.4 表的匯出和匯入

12.4.1 用SELECT…INTO OUTFILE匯出文字檔案

MySQL資料庫匯出資料時,允許使用包含匯出定義的SELECT語句進行資料的匯出操作。該檔案被建立到伺服器主機上。
SELECT columnlist FROM table
WHERE condition
INTO OUTFILE ‘filename’ [OPTIONS]

12.4.2 用mysqldump命令匯出文字檔案

mysqldump工具不僅可以將資料匯出為包含CREATE、INSERT的sql檔案,也可以匯出為純文字檔案。
mysqldump -T path-u root -p
dbname [tables] [OPTIONS]

12.4.3 用mysql命令匯出文字檔案

mysql是一個功能豐富的工具命令,還可以在命令列模式下執行SQL指令將查詢結果匯入到文字檔案中。
mysql -u root -p
--execute=”SELECT 語句” dbname
> filename.txt

12.4.4 用LOAD DATA INFILE方式匯入文字檔案

LOAD DATA INFILE語句用於高速地從一個文字檔案中讀取行,並裝入一個表中。檔名稱必須為一個文字字串。
LOAD DATA INFILE 'filename.txt'
INTO TABLE tablename [OPTIONS] [IGNORE number LINES]

12.4.5 用mysqlimport命令匯入文字檔案

mysqlimport可以匯入文字檔案,使用mysqlimport不需要登入MySQL客戶端。使用mysqlimport語句需要指定所需的選項、匯入的資料庫名稱以及匯入的資料檔案的路徑和名稱。
mysqlimport –u root –p
dbname filename.txt [OPTIONS]

12.5 綜合案例——資料的備份與恢復

備份有助於保護資料庫,通過備份可以完整儲存MySQL中各個資料庫的特定狀態。而通過還原,可防在系統出現故障資料丟失或者不合理操作對資料庫造成的災難時,恢復資料庫中的資料。本章綜合案例將向讀者提供資料庫備份與還原的方法與過程。

努力拼搏吧,不要害怕,不要去規劃,不要迷茫。但你一定要在路上一直的走下去,儘管可能停滯不前,但也要走。