cp命令备份属于温备、全量备份,备份过程需要加持全局读锁定,这个锁定对数据库杀伤力比较大,在生产环境下使用很可能会使数据库hang住,所以不建议在生产环境使用。
一、备份
1、关闭所有打开的表,同时对所有数据库中的表都加一个读锁,直到显示地执行unlock tables命令才会释放持有的锁:flush tables with read lock;
MariaDB [hse_whj]> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
2、创建备份路径:mkdir backup_whj;
[root@centos007 /]# mkdir backup_whj;
3、复制数据文件,注意复制的时候要保留源文件属性:cp -a ./var/lib/mysql/hse_whj/* ./backup_whj/
复制后查看备份路径下是否已经有数据文件:ls ./backup_whj
[root@centos007 /]# cp -a ./var/lib/mysql/hse_whj/* ./backup_whj/
[root@centos007 /]# ls ./backup_whj
db.opt whj_a.frm whj_a.ibd
4、释放备份库上的全局锁定:unlock tables;
MariaDB [hse_whj]> unlock tables;
Query OK, 0 rows affected (0.10 sec)
二、使用备份恢复数据库
1、删除数据文件,模拟数据文件损坏: