MySQL備份恢復(未完成)
MySQL備份恢復
本文件主要圍繞生產中經常使用的mysqldump、mydumper、xtrabackup等工具來進行備份恢復的學習。
1. MySQL 的備份方式
MySQL的備份方法,劃分為如下三種:
冷備份 冷備是指在資料庫關閉的情況下進行備份,這種備份非常簡單,只需關閉資料庫,複製相關的物理檔案即可。
溫備份 溫備份也是在資料庫執行的過程中進行備份,但是備份會對資料庫操作有所影響。
熱備份 熱備份是指在資料庫執行的過程中進行備份,對生產環境中的資料庫執行沒有任何影響。常見的熱備份方案是利用mysqldump、xtrabackup等工具進行備份。
根據備份檔案的型別,備份又可以劃分如下兩種:
物理備份 物理備份是指複製資料庫的物理檔案,既可以是在資料庫執行中複製(如xtrabackup這類工具),也可以是在資料庫停止執行時直接的資料檔案複製。
邏輯備份 邏輯備份是指備份檔案的內容是可讀的,該文字一般是由一條條SQL語句或者表的實際資料組成。常見的邏輯備份方式有mysqldump、select * into outfile等方法。
按照備份資料庫的內容來分,備份又可以分為:
完全備份 完全備份是指對資料庫進行一個完整的備份。
增量備份 增量備份是指在上次完全備份的基礎是,對於更改的資料進行備份。
日誌備份 日誌備份主要針對MySQL資料庫binlog的備份,通過對一個完全備份進行binlog的重做(replay)來完成資料庫的point-in-time的恢復工作。MySQL資料庫複製(replication)的原理就是非同步實時地將二進位制日誌重做傳送並應用到(slave)資料庫。
2. 冷備
冷備就是在資料庫處於關閉狀態下的備份,好處可以保證資料庫的晚自習,備份過程簡單並且恢復速度相對快一些。
冷備的備份與恢復過程:
1) 停止MySQL服務
# mysqladmin -S /tmp/mysql3306.sock shutdown
2) 備份資料目錄
# cd /data/mysql/
# tar -cvjpf mysql3306.tar.bz2 mysql3306 //-c為建立一個打包檔案,相應的-f後面接建立的檔案的名稱,使用了.tar.bz2字尾,-j標誌使用bzip2壓縮,最後面為具體的操作物件mysql3306目錄
# 檢視
# tar -tvjf mysql3306.tar.bz2 //-t為檢視操作,則-f對應所檢視的檔案的名稱,檔案字尾顯示使用bzip2進行壓縮,所以加入-j選項,-v會顯示詳細的許可權資訊
3) 恢復資料
# cd /data/mysql/
# rm -rf mysql3306
# tar -xvjf mysql3306.tar.bz2 //-x為解壓操作,則-f指定的是解壓使用的檔案,檔案字尾顯示使用bzip2進行壓縮,所以加入-j選項,即使用bzip2解壓
3. 熱備
熱備是在資料庫處於執行狀態下的備份,不影響現有業務的正常進行。
熱備又分為邏輯備份和物理備份。
3.1 邏輯備份之 - mysqldump
mysqldump客戶端實用程式執行邏輯備份,生成一組SQL語句,可以執行這些語句來重現原始資料庫物件定義和表資料。 它轉儲一個或多個MySQL資料庫以備份或傳輸到另一個SQL伺服器。 mysqldump命令還可以生成CSV,其他分隔文字或XML格式的輸出。
3.1.1 mysqldump語法如下
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
3.1.2 mysqldump常見的引數
mysqldump的引數有很多,可以通過使用mysqldump --help
命令來檢視所有引數,有些引數有縮寫形式,如--all-databases
的縮寫形式為-A
。這裡列舉一些常見的引數。
-u, –user=name 指定連線的使用者名稱
-p, –password[=name] 指定使用者的密碼,這裡可以指定引數名,若不指定引數值,mysqldump隨後將提示輸入密碼,以保護賬戶口令的安全
-S, –socket=name 指定socket檔案連線
-h, –host=name 指定連線的伺服器名
-P, –port=# 指定連線的伺服器埠號
–tables 匯出指定的表物件,格式為 ‘dbname tablename’,如
mysqldump -S /tmp/mysql3306.sock test t1
,預設會覆蓋-B, --databases
引數–single-transaction 在備份開始前,先執行start transaction命令,以此來獲得備份的一致性,當前該引數只對InnoDB儲存引擎有效。當啟用該引數並進行備份時,確保沒有其他任何的DDL語句執行
(ALTER TABLE, DROP TABLE, RENAME TABLE,TRUNCATE TABLE)
,因為一致性讀並不能隔離DDL操作。啟用此引數時,引數--lock-tables
將自動禁用。-A, –all-databases 備份所有資料庫
-B, –databases 備份指定的資料庫,如
mysqldump -S /tmp/mysql3306.sock --database db1 db2
–default-character-set=name 設定字符集,預設為以伺服器設定的字符集進行匯出。
-l, –lock-tables 以只讀方式依次鎖住每個庫下的所有表,預設啟用。使用
--skip-lock-tables
禁用。不能保證所有庫下的表備份一致。-x, –lock-all-tables 在備份過程中,對所有庫的所有表,同時鎖定。若指定了本引數,則會自動禁用
--single-transaction
和-l, --lock-tables
引數。–add-drop-database 在任何建立庫語句前,附加drop database語句。
–add-drop-table 在任何建表語句錢,附加drop table語句。預設啟用。如果不希望生成drop table語句,可以通過
--skip-add-drop-table
引數禁用。–add-drop-trigger 建立任何觸發器前,附加drop trigger語句。
–add-locks 在生成的insert語句錢附加lock語句,預設啟用。使用
--skip-add-locks
來禁用。–allow-keywords 允許建立使用關鍵字的列名。
–master-data[=#] 該引數有1和2兩個值,如果值等於1,就會在備份檔案中新增一個change master語句。如果值為2,就會在備份檔案中新增一個帶有註釋符號的change master語句。
* –dump-slave[=#]* 該引數用於在從庫備份資料,線上搭建新的從庫時使用。此引數也有1和2兩個值。值為1時,在備份檔案中新增一個change master語句。值為2時,就會在備份檔案中新增一個帶有註釋符號的change master語句。
-t, –no-create-info 備份過程中,只備份表資料,不備份表結構
-d, –no-data 備份過程中,只備份表結構,不備份表資料
-c, –complete-insert 使用完整的insert語句會包含表中的列資訊,這麼做可以提高插入效率。
-q, –quick 表示匯出時不會先將資料載入至buffer中,而是直接輸出。預設啟用,使用
--skip-quick
禁用。-w, –where=name 匯出給定條件的資料。
3.1.3 mysqldump備份流程
開啟general_log以觀察備份流程。
mysql> set global general_log = 1;
# mysqldump -S /tmp/mysql3306.sock --master-data=2 --single-transaction test > /tmp/testdb.sql
mysql> set global general_log = 0;
mysql> show variables like '%gen%';
+------------------+-----------------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------------+
| general_log | OFF |
| general_log_file | /data/mysql/mysql3306/data/mysqldb1.log |
+------------------+-----------------------------------------+
1. FLUSH /*!40101 LOCAL */ TABLES
2. FLUSH TABLES WITH READ LOCK
3. SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
4. START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
5. SHOW VARIABLES LIKE 'gtid\_mode'
6. SHOW MASTER STATUS
7. UNLOCK TABLES
8. show databases;
9. show create database if not exists 'dbname';
10. SAVEPOINT sp
11. show tables
12. show table status like 'account'
13. SET SQL_QUOTE_SHOW_CREATE=1
14. SET SESSION character_set_results = 'binary'
15. show create table `account`
16. SET SESSION character_set_results = 'utf8'
17. show fields from `account`
18. SELECT /*!40001 SQL_NO_CACHE */ * FROM `account`
19. SET SESSION character_set_results = 'binary'
20. use `test`
21. select @@collation_database
22. SHOW TRIGGERS LIKE 'account'
23. SHOW CREATE TRIGGER `ins_sum`
24. SET SESSION character_set_results = 'utf8'
25. ROLLBACK TO SAVEPOINT sp
26. ...
27. ROLLBACK TO SAVEPOINT sp
28. RELEASE SAVEPOINT sp
3.1.4 mysqldump常見用法
1) 全庫的備份恢復
備份全庫
mysqldump -S /tmp/mysql3306.sock --master-data=2 --single-transaction -A >alldb-`date +%Y%M%d`.sql
恢復全庫
mysql -S /tmp/mysql3306.sock < alldb-20180910.sql
2) 指定庫的備份恢復
備份指定庫
mysqldump -S /tmp/mysql3306.sock --single-transaction -B test >db-`date +%Y%m%d`.sql
恢復指定庫
mysql -S /tmp/mysql3306.sock < db-20180910.sql
3)指定表的備份與恢復
備份t1與b表
mysqldump -S /tmp/mysql3306.sock --single-transaction test t1 b >db-`date +%Y%m%d`.sql
恢復t1與b表
mysql -S /tmp/mysql3306.sock test < db-20180910.sql
4)只備份表的表結構資訊
備份test庫中t1與b表的表結構資訊
mysqldump -S /tmp/mysql3306.sock --single-transaction test t1 b -d >db-`date +%Y%m%d`.sql ... DROP TABLE IF EXISTS `b`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `b` ( `b1` int(11) DEFAULT NULL, `name` varchar(10) NOT NULL DEFAULT 'w', KEY `idx_b1` (`b1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET [email protected]_TIME_ZONE */; /*!40101 SET [email protected]_SQL_MODE */; /*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; /*!40014 SET [email protected]_UNIQUE_CHECKS */; /*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; /*!40101 SET [email protected]_CHARACTER_SET_RESULTS */; /*!40101 SET [email protected]_COLLATION_CONNECTION */; /*!40111 SET [email protected]_SQL_NOTES */; -- Dump completed on 2018-09-10 16:27:50
5)只備份表的資料資訊
備份test庫中t1與b表的表結構資訊
mysqldump -S /tmp/mysql3306.sock --single-transaction test t1 b -t >db-`date +%Y%m%d`.sql ... LOCK TABLES `t1` WRITE; /*!40000 ALTER TABLE `t1` DISABLE KEYS */; INSERT INTO `t1` VALUES (1,'aaa'),(3,'aaa'),(4,'bbb'),(2,'ccc'),(5,'ccc'),(6,'zzz'); /*!40000 ALTER TABLE `t1` ENABLE KEYS */; UNLOCK TABLES; -- -- Dumping data for table `b` -- LOCK TABLES `b` WRITE; /*!40000 ALTER TABLE `b` DISABLE KEYS */; INSERT INTO `b` VALUES (1,'w'),(2,'w'),(3,'w'),(4,'w'),(5,'w'); /*!40000 ALTER TABLE `b` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET [email protected]_TIME_ZONE */;
6)備份指定條件的資料
備份test庫的t1表,並且大於5的資料。
mysqldump -S /tmp/mysql3306.sock --single-transaction test t1 --where='id>5' -- MySQL dump 10.13 Distrib 5.7.23, for linux-glibc2.12 (x86_64) -- -- Host: localhost Database: test <hr /> -- Server version 5.7.23-log /*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; /*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; /*!40101 SET @[email protected]@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @[email protected]@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `t1` -- DROP TABLE IF EXISTS `t1`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `t1` ( `id` int(11) NOT NULL, `name` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `t1` -- -- WHERE: id>5 LOCK TABLES `t1` WRITE; /*!40000 ALTER TABLE `t1` DISABLE KEYS */; INSERT INTO `t1` VALUES (6,'zzz'); /*!40000 ALTER TABLE `t1` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET [email protected]_TIME_ZONE */; /*!40101 SET [email protected]_SQL_MODE */; /*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; /*!40014 SET [email protected]_UNIQUE_CHECKS */; /*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; /*!40101 SET [email protected]_CHARACTER_SET_RESULTS */; /*!40101 SET [email protected]_COLLATION_CONNECTION */; /*!40111 SET [email protected]_SQL_NOTES */; -- Dump completed on 2018-09-10 16:03:29
3.2 邏輯備份之 - select ... into outfile
SELECT … INTO 語句也是一種邏輯備份的方法,更準確地說是匯出一張表中的資料。
3.2.1 語法
SELECT [column 1],[column 2]...
INTO
OUTFILE 'file_name'
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
FROM TABLE WHERE ...
FIELDS TERMINATED BY 'string'*
:表示每個列的分隔符。
[OPTIONALLY] ENCLOSED BY 'char
:表示對於字串的包含符
ESCAPED BY 'char'
: 表示轉義符
STARTING BY 'string'
: 表示每行的開始符號
TERMINATED BY 'string'
: 表示每行的結束符號
如果沒有指定任何的FILEDS和LINES的選項,預設使用以下的設定:
FIELDS TERMINATED BY ‘\t
’ ENCLOSED BY ” ESCAPED BY ‘\\
’
LINES STARTING BY ” TERMINATED BY ‘\n
’
3.2.2 引數
要想支援select … into 語法,首先得設定引數secure-file-priv
,此引數的值有以下:
empty string 如果為空,則變數無效。這不是一個安全的設定。
null值 如果設定為NULL,則伺服器禁用匯入和匯出操作。
dirname 如果設定為目錄名稱,則伺服器會將匯入和匯出操作限制為僅適用於該目錄中的檔案。目錄必須存在;伺服器不會建立它。
3.3.3 匯出匯入示例
select ... into outfile
匯出資料與LOAD DATA
匯入資料示例
[email protected] [test] 09:41:38> select * from t1 into outfile '/tmp/t1.txt';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
將引數設定為:
secure_file_priv = /data/mysql/mysql3306/outfile
匯出資料
mysql> select * from t1 into outfile '/data/mysql/mysql3306/outfile/t1.txt';
# cat t1.txt
1 aaa
3 aaa
4 bbb
2 ccc
5 ccc
6 zzz
恢復資料
mysql> delete from t1;
mysql> LOAD DATA INFILE '/data/mysql/mysql3306/outfile/t1.txt' into table t1;
mysql> select * from t1;
+----+------+
| id | name |
+----+------+
| 1 | aaa |
| 3 | aaa |
| 4 | bbb |
| 2 | ccc |
| 5 | ccc |
| 6 | zzz |
+----+------+
6 rows in set (0.00 sec)
3.3.4 SELECT OUTFILE + awk
匯出資料
mysql> select * from t1 into outfile '/data/mysql/mysql3306/outfile/t1.txt';
mysql> delete from t1;
利用awk生成匯入sql
# cat t1.txt |awk '{print "insert into test.t1 values("$1",'\''"$2"'\'');"}' > into_t1.sql
# cat into_t1.sql
insert into test.t1 values(1,'aaa');
insert into test.t1 values(3,'aaa');
insert into test.t1 values(4,'bbb');
insert into test.t1 values(2,'ccc');
insert into test.t1 values(5,'ccc');
insert into test.t1 values(6,'zzz');
匯入資料
# mysql -S /tmp/mysql3306.sock < into_t1.sql
mysql> select * from test.t1;
+----+------+
| id | name |
+----+------+
| 1 | aaa |
| 3 | aaa |
| 4 | bbb |
| 2 | ccc |
| 5 | ccc |
| 6 | zzz |
+----+------+
6 rows in set (0.00 sec)
mysqlpump和mysqldump一樣,屬於邏輯備份,備份以SQL形式的文字儲存。邏輯備份相對物理備份的好處是不關心undo log的大小,直接備份資料即可。它最主要的特點是:
並行備份資料庫和資料庫中的物件的,加快備份過程。
更好的控制資料庫和資料庫物件(表,儲存過程,使用者帳戶)的備份。
備份使用者賬號作為帳戶管理語句(CREATE USER,GRANT),而不是直接插入到MySQL的系統資料庫。
備份出來直接生成壓縮後的備份檔案。
備份進度指示(估計值)。
重新載入(還原)備份檔案,先建表後插入資料最後建立索引,減少了
索引維護開銷,加快了還原速度。
備份可以排除或則指定資料庫。
#mysqlpumpy壓縮備份 以lz4壓縮格式備份employees資料庫
mysqlpump -S /tmp/mysql3306.sock --single-transaction --default-character-set=utf8 --compress-output=LZ4 --default-parallelism=3 -B employees > /tmp/employees_db.sql.lz4
#mysqldump備份壓縮
mysqldump -S /tmp/mysql3306.sock --single-transaction -B employees | gzip > /tmp/employees.sql.gz
MySQL在備份方面包含了自身的mysqldump工具,但其只支援單執行緒工作,這就使得它無法迅速的備份資料。而mydumper作為一個實用工具,能夠良好支援多執行緒工作,這使得它在處理速度方面十倍於傳統的mysqldump。其特徵之一是在處理過程中需要對列表加以鎖定,因此如果我們需要在工作時段執行備份工作,那麼會引起DML阻塞。但一般現在的MySQL都有主從,備份也大部分在從上進行,所以鎖的問題可以不用考慮。這樣,mydumper能更好的完成備份任務。
3.5.1 安裝mydumper
# yum install https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-1.el7.x86_64.rpm
3.5.2 mydumper和myloader重點引數介紹
mydumper引數介紹
引數名 | 說明 |
---|---|
-B, --database |
需要備份的資料庫 |
-T, --tables-list |
需要備份的表,多表間用逗號空格 |
-O, --omit-from-file |
包含要跳過的database.table條目列表的檔案,每行一個(在應用正則表示式選項之前跳過) |
-o, --outputdir |
輸出檔案的目錄 |
-s, --statement-size |
生成的insert語句的位元組數,預設為 1000000 |
-r, --rows |
將表按行分塊時,指定的塊行數,指定這個選項時,會關閉--chunk-filesize |
-F, --chunk-filesize |
將表按大小分塊時,指定的塊大小,單位是MB |
-c, --compress |
壓縮輸出檔案 |
-e, --build-empty-files |
即使表沒有資料,還是會產生一個空檔案 |
-x, --regex |
正則表示式匹配’db.table’ |
-i, --ignore-engines |
忽略的儲存引擎,用逗號分隔 |
-N, --insert-ignore |
使用INSERT IGNORE 備份資料 |
-m, --no-schemas |
不匯出表結構 |
-d, --no-data |
不匯出表資料 |
-G, --triggers |
匯出觸發器 |
-E, --events |
Dump events |
-R, --routines |
Dump stored procedures and functions |
-W, --no-views |
不匯出檢視 |
-k, --no-locks |
不要執行臨時共享讀鎖定. 警告:這將導致備份不一致 |
--no-backup-locks |
不要使用Percona備份鎖 |
--less-locking |
最大限度地減少InnoDB表的鎖定時間。 |
-l, --long-query-guard |
設定長查詢時間, 預設60s |
-K, --kill-long-queries |
kill 長時間執行的查詢 |
-D, --daemon |
啟用守護程序模式 |
-I, --snapshot-interval |
每個轉儲快照之間的間隔(以分鐘為單位),需要–daemon模式下,預設為60s |
-L, --logfile |
要使用的日誌檔名,預設情況下使用stdout |
--tz-utc |
備份的時候允許備份Timestamp,這樣會導致不同時區的備份還原會出問題,預設關閉,引數:–skip-tz-utc to disable. |
--skip-tz-utc |
|
--use-savepoints |
使用儲存點來減少元資料鎖定問題,需要SUPER許可權 |
--success-on-1146 |
Not increment error count and Warning instead of Critical in case of table doesn’t exist |
--lock-all-tables |
使用LOCK TABLE代替FTWRL(FLUSH TABLE WITH READ LOCK) |
-U, --updated-since |
使用Update_time僅轉儲在過去天中更新的表 |
--trx-consistency-only |
只包含一致性事務 |
--complete-insert |
使用包含列名的完整INSERT語句 |
-h, --host |
The host to connect to |
-u, --user |
Username with the necessary privileges |
-p, --password |
User password |
-a, --ask-password |
Prompt For User password |
-P, --port |
TCP/IP port to connect to |
-S, --socket |
UNIX domain socket file to use for connection |
-t, --threads |
使用的執行緒數,預設是4個 |
-C, --compress-protocol |
Use compression on the MySQL connection |
-V, --version |
Show the program version and exit |
-v, --verbose |
更多輸出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2 |
--defaults-file |
Use a specific defaults file |
--ssl |
Connect using SSL |
--key |
The path name to the key file |
--cert |
The path name to the certificate file |
--ca |
The path name to the certificate authority file |
--capath |
The path name to a directory that contains trusted SSL CA certificates in PEM format |
--cipher |
A list of permissible ciphers to use for SSL encryption |
myloader引數介紹
引數名 | 註釋 |
---|---|
-d, --directory |
要匯入的備份檔案所在的目錄 |
-q, --queries-per-transaction |
每次事務執行的查詢數量, default 1000 |
-o, --overwrite-tables |
如果要恢復的表存在,則先drop表 |
-B, --database |
指定需要還原資料到哪個資料庫中 |
-s, --source-db |
需要還原的資料庫 |
-e, --enable-binlog |
啟用二進位制日誌恢復資料 |
-h, --host |
The host to connect to |
-u, --user |
Username with the necessary privileges |
-p, --password |
User password |
-a, --ask-password |
Prompt For User password |
-P, --port |
TCP/IP port to connect to |
-S, --socket |
UNIX domain socket file to use for connection |
-t, --threads |
使用的執行緒數量, default 4 |
-C, --compress-protocol |
連線上使用的壓縮協議 |
-V, --version |
Show the program version and exit |
-v, --verbose |
更多輸出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2 |
--defaults-file |
Use a specific defaults file |
3.5.3 mydumper與myloader的用法
1)以壓縮備份備份所有資料庫,還原指定的sbtest庫
# mydumper -S /tmp/mysql3306.sock -c /data/mysql/mysql3306/outfile/
# ls
export-20180911-152023
從備份檔案中還原指定庫sbtest
# myloader -S /tmp/mysql3306.sock -s sbtest -B sbtest -d /data/mysql/mysql3306/outfile/export-20180911-152023/
【注意】:如果不加-s,會把所有庫的表,還原到sbtest庫中。
2)還原sbtest庫中的sbtest1,sbtest2表
mysql> drop table sbtest1;
mysql> drop table sbtest2;
# myloader -S /tmp/mysql3306.sock -s sbtest -B sbtest -o sbtest1,sbtest2 -d /data/mysql/mysql3306/outfile/export-20180911-152023/