數(shù)據(jù)庫(kù)備份從物理與邏輯的角度劃分可以分為:物理備份、邏輯備份。從數(shù)據(jù)庫(kù)的備份策略角度,可以分為完全備份、差異備份、增量備份。這次實(shí)驗(yàn)主要介紹完全備份,完全備份優(yōu)點(diǎn)是備份與恢復(fù)操作簡(jiǎn)單方便,缺點(diǎn)是數(shù)據(jù)存在大量的重復(fù),占用大量的備份空間,備份時(shí)間長(zhǎng)。
固原網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
Mysql的數(shù)據(jù)庫(kù)文件默認(rèn)都是保存在安裝目錄下的data文件夾下面,可以直接保存data文件夾。但是占用的空間很大,可以使用tar打包壓縮進(jìn)行保存。由于數(shù)據(jù)庫(kù)文件很大,可以直接使用壓縮率較大的xz格式壓縮,所以首先要安裝xz壓縮格式工具。
[root@localhost opt]# yum install xz -y
然后,對(duì)數(shù)據(jù)庫(kù)文件夾/usr/local/mysql/data/進(jìn)行打包操作。注意這里使用tar工具打包,最好使用相對(duì)路徑,所以先切換至/usr/local/mysql目錄下,然后再打包。
[root@localhost opt]# cd /usr/local/mysql/
[root@localhost mysql]# tar Jcf /opt/mysql-$(date +%F).tar.xz data/
[root@localhost opt]# ls
mysql-2018-07-02.tar.xz mysql-5.7.17 test.sql
(1)使用mysqldump命令對(duì)某些表完全備份,如下圖,數(shù)據(jù)庫(kù)中有test的庫(kù),里面有一張yx的表。
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| yx |
+----------------+
1 row in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.00 sec)
對(duì)test庫(kù)中的yx表進(jìn)行備份。
[root@localhost opt]# mysqldump -u root -p test yx > /opt/yx1.sql
Enter password:
[root@localhost opt]# ls
mysql-2018-07-02.tar.xz mysql-5.7.17 test.sql yx1.sql
(2)使用mysqldump命令對(duì)單個(gè)庫(kù)進(jìn)行完全備份
[root@localhost opt]# mysqldump -u root -p test > /opt/test.sql
Enter password:
[root@localhost opt]# ls
mysql-2018-07-02.tar.xz mysql-5.7.17 test.sql yx1.sql
(3)使用mysqldump命令對(duì)多個(gè)庫(kù)進(jìn)行完全備份
[root@localhost opt]# mysqldump -u root -p --databases test mysql > /opt/test-mysql.sql
Enter password:
[root@localhost opt]# ls
mysql-2018-07-02.tar.xz mysql-5.7.17 test-mysql.sql test.sql yx1.sql
(4)使用mysqldump命令對(duì)所有數(shù)據(jù)庫(kù)完全備份
[root@localhost opt]# mysqldump -u root -p --all-databases > /opt/all.sql
Enter password:
[root@localhost opt]# ls
all.sql mysql-2018-07-02.tar.xz mysql-5.7.17 test-mysql.sql test.sql yx1.sql
(5)使用mysqldump命令直接備份表結(jié)構(gòu)
[root@localhost opt]# mysqldump -u root -p -d test yx > /opt/desc.sql
Enter password:
[root@localhost opt]# ls
all.sql desc.sql mysql-2018-07-02.tar.xz mysql-5.7.17 test-mysql.sql test.sql yx1.sql
在需要恢復(fù)庫(kù)的時(shí)候,可以使用source命令和mysql命令
上面我們已經(jīng)對(duì)test庫(kù)進(jìn)行了備份,現(xiàn)在我們刪除掉test庫(kù),注意在恢復(fù)庫(kù)的時(shí)候,要先創(chuàng)建一個(gè)同名的庫(kù),然后再恢復(fù),否則會(huì)報(bào)錯(cuò)。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> drop database test;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> use test;
Database changed
mysql> source /opt/test.sql
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| yx |
+----------------+
1 row in set (0.00 sec)
test庫(kù)就恢復(fù)成功了。
在使用Mysql命令恢復(fù)庫(kù)之前,同樣要先創(chuàng)建已經(jīng)被刪除的空數(shù)據(jù)庫(kù),否則會(huì)報(bào)錯(cuò),然后使用下面這條命令。
[root@localhost opt]# mysqldump -u root -p test < /opt/test.sql
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| yx |