mysql資料庫維護 備份和還原 和效能提高

2022-05-06 19:09:10 字數 4155 閱讀 4722

為了有效防止資料丟失,並將損失降到最低,應對資料庫伺服器做維護。資料庫維護,包括資料備份,還原,匯出和匯入操作。

1. mysql資料庫備份

所謂資料庫維護,主要包含備份資料,還原資料和資料庫遷移,對於mysql來說,還包括資料庫物件表的匯出和匯入。

1.1 通過複製資料檔案實現資料備份

造成資料損失的原因很多,主要包含如下幾個方面:

a. 儲存介質故障:儲存資料庫檔案的磁碟裝置損壞,使用者沒有資料庫備份導致資料徹底丟失。

b. 使用者的錯誤操作:如誤刪了某些重要資料,甚至整個資料庫。

c. 伺服器的徹底癱瘓,系統需要重建。

由於mysql伺服器中的資料檔案是基於磁碟的文字檔案,所以最簡單,最直接的備份操作就是資料庫檔案直接複製出來。該種方式對innodb儲存引擎的表不合適,只適合儲存引擎為myisam的表。

1.2 通過命令mysqldump實現資料備份

有三種形式:備份乙個資料庫,備份多個資料庫,備份所有資料庫。

1.2.1 備份乙個資料庫

mysqldump -u username -

p dbname

table1 table2...tablen

> backupname.sql

示例如下:

備份資料庫company下的表t_dept;

mysqldump -u root -p company t_dept > d:\t_dept_back.sql

1.2.2 備份多個資料庫

mysqldump -u username -p --

databases dbname1 dbname2 ... dbname3 > backupname.sql

示例如下:

備份資料庫company資料庫和companynew資料庫:

mysqldump -u root -p --

databases company companynew> d:\database_company_back.sql

1.2.3 備份所有資料庫

mysqldump -u username -p --

all > backupname.sql

示例如下:

備份所有資料庫:

mysqldump -u root -p --

all > c:\all_database_back.sql

2. mysql資料還原

2.1 通過複製資料檔案實現資料還原

在通過複製資料檔案這種方式實現資料還原時,必須保證兩個mysql資料庫的主版本號一致,因為只有mysql資料庫主版本號一致時,才能保證兩個mysql資料庫的檔案型別是相同的。由於通過複製資料檔案實現資料備份時,對儲存引擎型別為i:nnodb的表不可用,僅對儲存引擎為myisam型別的表有效。因此通過複製資料檔案實現資料還原時,也只對儲存型別為myisam型別的表有效。

注意:mysql資料庫伺服器的版本號,第乙個數字表示主版本號。

2.2 通過命令mysql實現資料還原

mysqldump -u -username -p [

dbname

]< backname.sql

示例如下:

還原資料庫company中的表t_dept:

mysqldump -u -root -p t_dept < t_dept_back.sql

3.mysql資料庫表匯出到文字檔案

3.1 執行select ... into outfile 實現匯出到文字檔案

select

[file_name

]from table_name [

where condition

]into outfile '

file_name'[

option

]

示例如下:

實現將表t_dept裡的所有資料匯出到檔案t_dept裡:

select

*from t_dept into outfile '

c:/t_dept_1.txt

' fields terminated by'\.

' optionally enclosed by'\"

' lines starting by

'\>

' terminated by

'\r\n

';

上述實現了將表t_dept裡的所有資料匯出到檔案t_dept_1.txt檔案裡,而且還設定了相應的顯示格式。

3.2 執行命令mysqldump實現匯出到文字檔案

mysqldump -u root -p password -t file_directory dbname table_name[

option

];

示例如下:

將相應的資料匯出到文字檔案t_dept.txt裡:

mysqldump -u root -proot -t c:\company t_dept;

上述實現將表t_dept裡的所有資料匯出到檔案t_dept裡。

3.3 執行命令mysql實現匯出到文字檔案

mysql -u root -p password -e"select

[file_name

]from table_name " dbname >

file_name;

示例如下:

mysql -u root -p root -e"select

*from t_dept" company> c:/t_dept.txt;

4. mysql實現文字檔案匯入到資料庫表

4.1 執行"load data infile"命令實現文字檔案匯入到資料庫表

load data[

local

] infile file_name

into

table table_name [

option

];

示例如下:

load data infile '

c:/t_dept.txt

'into

table t_dept fields terminated by '\.' optionally enclosed by '\"'terminated by '\r\n';

4.1 執行命令mysqlimport實現匯入文字檔案

mysqlimport -u root -p password[

--local

] dbname file_name

[option

]

示例如下:

mysqlimport -u root -p root company c:t_dept.txt fields terminated by '\.' optionally enclosed by '\"' lines starting by '\>' terminated by '\r\n';

5. 資料庫遷移

5.1 相同版本的mysql資料庫之間的遷移

該種資料庫遷移最容易實現。

5.2 不同版本的mysql資料庫之間的遷移

兩種方式:低版本向高版本和高版本向低版本。

5.3 不同資料庫之間的遷移

由於不同資料庫之前的差異性,沒有普遍適用的辦法。

6. 資料效能優化

(備註):

備註1:

備份和還原的備註:如果所有的操作均是對遠端資料庫的操作,則在-u前面加-h ip即可。如需要操作192.168.1.101資料庫的資料,寫法是:

mysql -h 192.168.1.101

-u root -p -e"select

*from t_dept" company> c:/t_dept.txt;

備註2:

使用命令mysqldump進行匯出資料到本地磁碟,執行該命令的時候不要進入mysql的控制台再使用,這樣會報outfiledisabled錯誤。而是直接使用mysql/bin目錄下的mysqldump.exe,通過windows的命令進入。

mysql資料庫備份和還原

備份mysql資料庫的命令 mysqldump hhostname uusername ppassword databasename backupfile.sql 備份mysql資料庫為帶刪除表的格式 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。mys...

Mysql資料庫備份和還原

1 備份mysql資料庫的命令 mysqldump hhostname uusername ppassword databasename backupfile.sql 2 備份mysql資料庫為帶刪除表的格式 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫...

MySQL資料庫備份和還原

mysqldump hhostname uusername ppassword databasename backupfile date 0,10 sql 以當前時間命名 備份mysql資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。mysqldump add drop...