1、数据库备份种类?
冷备份:在数据库停止运行时进行备份,对数据库不会产生任何影响,此时数据库不能进行读写操作。
热备份:在数据库正在运行时进行对数据库备份,此时数据库可以进行读写操作,并且对数据库不会产生任何影响。
温备份:在数据库正在运行时备份,会对数据库操作有所影响,备份时数据库只能进行读操作,不能写操作。
2、为什么要进行数据库备份?
(1)数据丢失的风险:数据库的数据可能因为各种原因(硬件故障,人为因素,恶意攻击)等而丢失或者损坏。为了防止数据的丢失,数据库备份是必不可少的。
(2)业务连续性:在数据库出现问题的时候,及时的恢复数据有利于保障业务的连续性至关重要。数据库的备份与恢复可以在帮助组织在发生问题的时候快速恢复数据,减少业务中断时间。
(3)合规性要求:一些行业或者法规对数据备份和恢复有着明确的要求,组织需要遵守这些规定以确保数据的安全性和完整性。
3、数据库备份格式
1、备份指定的多个数据库。
mysqldump -u root -p --databases choose test > roverliang.sql
2、备份所有的数据库
mysqldump -u root -p --all-databases choose test > roverliang.sql
3、备份指定数据库中的某些表
mysqldump -u root -p choose test > roverliang.sql
mysqldump 完整的参数是:
mysqldump -u USER_NAME -p PASSWORD [其他选项] DB [其他数据库库表]
4、mysqldump进行逻辑备份
(1)准备两台服务器
real server1:192.168.26.150
backup server2:192.168.26.151
(2)都安装mysql服务
(3)在mysql服务器创建备份目录
mkdir /backup
(4)进入mysql服务器并确保有存在内容的数据库
进入数据库
mysql -uroot -p
查看数据库
show databases;
(5)退出数据库,使用mysqldump命令备份
mysqldump -uroot -pNebula@123 --databases test > /backup/test.sql
(6)进入MySQL使用drop模拟数据丢失
(7)新建一个空的数据库,并推出数据库
(8)使用mysql命令恢复
mysql -uroot -pNebula@123 test < /bakcup/test.sql
(9)进入mysql服务并查看内是否全部恢复
可以看到mysql的逻辑备份与恢复已经完成了。
5、基于冷备份和rsync备份
client:192.168.26.150
server:192.168.26.151
(1)关闭防火墙,客户端与服务端都安装rsync工具,客户端不需要启动,服务端需要启动rsyncd服务
(2)配置客户端与服务端的配置,之前有发过
(3)将客户端备份的数据库信息传递到服务端备份的目录下并查看
(4)关闭主机mysql服务,systemctl stop mysqld
(5)进入/var/lib/mysql目录中打包所有文件,tar -jcvf /backup/mysql.bak.gz.xz /var/lib/mysql
(6)在服务端解压缩mysql.bak.gz.xz到/var/lib/mysql/下
tar xvf mysql.bak.gz.xz -C /var/lib/mysql/,提前把/var/lib/mysql/清空
(7)通过rsync命令将压缩的包发送给服务端:
rsync -a --progress /backup/mysql.bak.gz.xz rsync_backup@192.168.26.151::backup --password-file=/etc/rsync.password
服务端查看
(8)在服务端解压缩mysql.bak.gz.xz到/var/lib/mysql/下
tar xvf mysql.bak.gz.xz -C /var/lib/mysql/,提前把/var/lib/mysql/清空
(9)登录数据库并查看