天天看點

mysqldump備份所有資料庫,恢複單個庫的場景預演

場景:建立兩個資料庫,每個資料庫建立幾張表。導出全資料庫的備份,導入一個資料庫的方式:

---------------------------------------資料的demo--------------------------------------------------

create database zsddb;

use zsddb;

create table t1(id int(10));

create table t2(id int(10));

INSERT INTO t1 (id) VALUES (2);

INSERT INTO t2 (id) VALUES (2);

create database hdoa;

use hdoa;

create table hd1(id int(10));

create table hd2(id int(10));

INSERT INTO hd1 (id) VALUES (2);

INSERT INTO hd2 (id) VALUES (2);

create table hd3(username varchar(10));

INSERT INTO hd3 (username) VALUES ('張');

------------------------------------資料的備份導出---------------------------------------------------

/arp/mysql/bin/mysqldump 的指令詳解如下:

介紹上述的指令:

--all-databases, -A   :導出所有資料庫

--routines, -R        :導出存儲過程和函數

--extended-insert, -e :導出的insert語句使用multiple-row的文法方式,記錄多個值。保證較小的dump檔案,和導入的時候速度更快。

--single-transaction  :對于innodb引擎來說,導出會建立一次性的快照。保證導出操作放在同一個事務裡面。

--force, -f           :即使遇到SQL錯誤,也強制導出dump檔案

--lock-all-tables, -x :把整個資料庫進行鎖表操作,在整個導出的過程中會擷取一個全局讀鎖,這個選線會自動

                       關閉 --single-transaction和 --lock-tables選項

--databases, -B       :導出多個資料庫

--default-character-set=utf8 :設定導出預設字元集為xxx,這裡是utf8

有上述指令解釋,寫出屬于自己風格的mysqldump指令,如下所示:

/arp/mysql/bin/mysqldump -usystem -parpc7101 -S /arp/mysql/data/3306/mysql.sock -A -R -f -x -e | gzip >/arp/mysql/backup/mysql_full_backup_2016_1_11_1648.sql.gz

----------------------------------資料的導入操作-----------------------------------------------------

/arp/mysql/bin/mysql  的指令詳解如下:

--one-database, -o   : 隻導入一個所需的那個資料庫,其他語句忽視。

前提:經測試,必須有此資料庫才行:如下

##進入資料庫

mysql -usystem -parpc7101

##建立所需資料庫

(system@localhost) [(none)]> create database hdoa;

##導入資料庫操作

mysql -usystem  -p hdoa -o