份实例:
导出sqoop库的tb1表
# mysqldump -uroot -proot -T /tmp sqoop tb1 --fields-enclosed-by=\" --fields-terminated-by=,
[root@gc tmp]# ls
tb1.sql tb1.txt
二、逻辑备份恢复
1. INSERT 语句文件的恢复
1) 使用mysql命令直接恢复
把sqoop库的tb1表恢复到test库
# mysql -uroot -proot -D test < /tmp/dumpback/sqoop_tb1.sql
2) 连接上MySql在命令行中执行恢复
上面的例子同样可以使用下面的方法
[root@gc ~]# mysql -uroot -proot -D test
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
mysql> source /tmp/dumpback/sqoop_tb1.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
......
或是
mysql> \. /tmp/dumpback/sqoop_tb1.sql
2. 纯文本文件的恢复
1) 使用LOAD DATA INFILE命令
此命令是SELECT ... TO OUTFILE FROM反操作,类似于oracle的sqlldr工具
语法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char' ]
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]]
恢复实例:
mysql> use sqoop;
Database changed
mysql> load data infile '/tmp/tb1.txt' into table tb1
-> fields terminated by ','
-> optionally enclosed by '"'
-> lines terminated by '\n';
Query OK, 50 rows affected (0.01 sec)
Records: 50 Deleted: 0 Skipped: 0 Warnings: 0
2) 使用mysqlimport工具恢复
用此工具用于可用于恢复上面mysqldump生成txt和sql两文件,所以要保证txt文件对应的
数据库中的表存在。
恢复实例:
--首先恢复表结构
[root@gc ~]# mysql -uroot -proot -D test < /tmp/tb1.sql
--恢复数据
[root@gc ~]# mysqlimport -uroot -proot test --fields-enclosed-by=\" --fields-terminated-by=, /tmp/tb1.txt
test.tb1: Records: 93 Deleted: 0 Skipped: 0 Warnings: 0