一、概述
按照备份方式分为:逻辑备份、物理备份
按照运行方式分为:热备份、冷备份
二、逻辑备份
1、概述
逻辑备份又叫数据导出。
优点:非常灵活,对于小数据量很好。
缺点:慢,非常慢。导出慢,导入也慢。
2、如何实现
在从服务上连接主服务器上的数据库,通过mysqldump工具备份数据到从数据库中
(1)在主服务器上,设置读锁定有效,这个操作是为了确保没有数据库操作,以便获得一致性的快照。
mysql> flush tables with read lock;
(2)然后在从服务器上进行数据的备份,并同步导入备份数据
[root@localhost ~]# mysqldump -h192.168.3.10 -u root -p laravel-shop > /home/laravel-shop.sql
Enter password:
[root@localhost ~]# mysql -f -u root -p laravel-shop < /home/laravel-shop.sql
Enter password:
[root@localhost ~]# mysql -u root -p
Enter password:
mysql> use laravel-shop;
Database changed
mysql> show tables;
(3)在数据备份完成之后,到主服务器,恢复主数据库的写操作,执行命令如下:
mysql> unnlock tables;
注:可以通过 Mydumper 代替 mysqldump,因为 Mydumper 是多线程的,因此 Mydumper 大概会比 mysqldump 备份速度快上十倍左右。Mydumper 需要编译安装。
注:Mydumper 如何使用(MySQL 逻辑备份,用于替代mysqldump)
三、物理备份(暴力备份)
停止主库,然后复制主库中的data目录到从库中...
优点:快
缺点:迁移到新的mysql,需要重新配置配置文件,并且对MySQL版本也有要求,最好保持完全一致。
四、冷备份
数据库停止写的操作(或者直接停机),在这个基础上备份(在这个基础上不会发生数据变化)。
最大的优点就是数据安全。
如何实现:
就是上面的逻辑备份和物理备份
五、热备份
1、概述
一般大型公司是不会允许数据库停机或停止写操作的,那就只能进行在线备份,也叫热备份。
存在的问题就是:你前一秒备份,后一秒别人就把刚备份的数据给改了,数据不安全。
2、如何实现
3、解释
使用 xtrabackup 工具进行热备份方式,主从数据一定会保持一致的。
因为使用 xtrabackup 工具进行热备份之后,这个时候从数据库会有一个时间点。
配置了主从之后,master 会一直向 slave 发送binlog日志,也就是说,主库备份完数据,然后传递到slave之后,即使有新的写入操作,master也会传递到slave,slave 会去检测binlog日志