溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mysql完全備份和恢復(fù)

發(fā)布時間:2020-07-31 11:08:20 來源:網(wǎng)絡(luò) 閱讀:1434 作者:xiaoyaokeyx 欄目:MySQL數(shù)據(jù)庫

Mysql完全備份和恢復(fù)

實驗介紹

數(shù)據(jù)庫備份從物理與邏輯的角度劃分可以分為:物理備份、邏輯備份。從數(shù)據(jù)庫的備份策略角度,可以分為完全備份、差異備份、增量備份。這次實驗主要介紹完全備份,完全備份優(yōu)點是備份與恢復(fù)操作簡單方便,缺點是數(shù)據(jù)存在大量的重復(fù),占用大量的備份空間,備份時間長。

Mysql完全備份

1、使用tar打包文件夾備份

Mysql的數(shù)據(jù)庫文件默認都是保存在安裝目錄下的data文件夾下面,可以直接保存data文件夾。但是占用的空間很大,可以使用tar打包壓縮進行保存。由于數(shù)據(jù)庫文件很大,可以直接使用壓縮率較大的xz格式壓縮,所以首先要安裝xz壓縮格式工具。

[root@localhost opt]# yum install xz -y

然后,對數(shù)據(jù)庫文件夾/usr/local/mysql/data/進行打包操作。注意這里使用tar工具打包,最好使用相對路徑,所以先切換至/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

2、使用mysqldump工具備份

(1)使用mysqldump命令對某些表完全備份,如下圖,數(shù)據(jù)庫中有test的庫,里面有一張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)

對test庫中的yx表進行備份。

[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命令對單個庫進行完全備份

[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命令對多個庫進行完全備份

[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命令對所有數(shù)據(jù)庫完全備份

[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

Mysql完全恢復(fù)

在需要恢復(fù)庫的時候,可以使用source命令和mysql命令

1、source命令整庫恢復(fù)

上面我們已經(jīng)對test庫進行了備份,現(xiàn)在我們刪除掉test庫,注意在恢復(fù)庫的時候,要先創(chuàng)建一個同名的庫,然后再恢復(fù),否則會報錯。

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庫就恢復(fù)成功了。

2、Mysql命令整庫恢復(fù)

在使用Mysql命令恢復(fù)庫之前,同樣要先創(chuàng)建已經(jīng)被刪除的空數(shù)據(jù)庫,否則會報錯,然后使用下面這條命令。

[root@localhost opt]# mysqldump -u root -p test < /opt/test.sql
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| yx             |
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI