在生产环境中通常备份库需要加 “-B” ,而备份单张表就不需要加"-B" 了,两者的区别是 有-B 参数会在备份的文件里头部有一条执行判断库是否存在,存在就删除库新建库,而备份时没有加-B 参数时备份的文件头部就没有关于库的判断操作。
结论: 有-B影响的是库中所有把旧的数据给删除,把已经存在的数据都给删掉,重新执行一遍SQL新建数据,如果此时旧数据正在被用户访问,而恢复时是正在删除被访问的数据,很容易出乱子。所以备份单张表时最好不要加 "-B"。
1、 备份test_db库中的tb_2表
# mysqldump -uroot -p123456 test_db tb_2 > ./test_db_tb_2.sql
2、制造灾难
mysql> drop table tb_2;
Query OK, 0 rows affected (0.04 sec)
3、 恢复单张表 tb_2
# mysql -uroot -p123456 test_db </opt/test_db_tb_2.sql