數據庫恢復注意事項:
# 數據恢復和字符集關聯很大,如果字符集不正確會導致恢復的數據亂碼。
#MySQL命令和source命令恢復數據庫的原理就是把文件的SQL語句,在數據庫重新執行的過程。
1、利用source命令恢復數據庫
進入MySQL數據庫控制台
mysql -u root -p密碼登陸后,mysql>use 數據庫,然后使用source命令,后面參數為腳本文件。
mysql>source dadong_db.sql ###這個文件可以是全路徑的壓縮包,也可以是相對路徑(必須先進入到壓縮包所在的文件夾中,默認是登陸mysql前的系統路徑)。
2、針對壓縮的備份數據進行恢復
2.1、使用gzip解壓(會刪除壓縮文件)
先備份數據庫,做測試數據 [root@DB02 opt]# mysqldump -B --master-data=2 dadong|gzip >/opt/dadong.sql.gz [root@DB02 opt]# ls dadong.sql.gz ####解壓壓縮包 [root@DB02 opt]# gzip -d /opt/dadong.sql.gz [root@DB02 opt]# ls dadong.sql ###恢復數據庫 [root@DB02 ~]# mysql </opt/dadong.sql
注意:gzip的參數:
-c 將輸出寫到標准輸出上,並保留原有文檔。
-d 將壓縮文檔解壓。
如果在導出數據庫時指定了-B參數,恢復時無需指定庫恢復。因為-B參數帶了use dadong 還會有create database dadong;而恢復時指定庫就類似於use dadong.
2.2、使用gzip解壓(不會刪除壓縮文件)
使用gzip加參數cd不會刪除原文件。
[root@DB02 ~]# !mysqldump ##調用最近的mysqldump命令,重復執行備份。 mysqldump -B --master-data=2 dadong|gzip >/opt/t.sql.gz [root@DB02 ~]# gzip -cd /opt/dadong.sql.gz >/opt/dadong1.sql [root@DB02 ~]# mysql </opt/dadong1.sql [root@DB02 ~]# 注:如果不想退出數據庫執行恢復語句時可以使用system mysql> system cd /root mysql> exit Bye [root@DB02 ~]# pwd /root [root@DB02 ~]# mysql> system mysqldump -B --master-data=2 --single-transaction -B dadong |gzip > /opt/all.sql.gz mysql> exit Bye [root@DB02 ~]# cd /opt/ [root@DB02 opt]# ls 10.txt 2.txt 4.txt 6.txt 8.txt all.sql.gz dadong.sql 1.txt 3.txt 5.txt 7.txt 9.txt dadong [root@DB02 opt]#
2.3、 使用zcat讀取壓縮包數據
使用zcat讀取壓縮包數據。
[root@DB02 ~]# zcat /opt/dadong.sql.gz >/opt/dadong3.sql
[root@DB02 ~]# mysql </opt/dadong3.sql