MySQL数据库(2):常见的三种备份方式

一,常见的备份方式
1)冷备份。
tar cp
2)备份工具。
mysqldump mysqlhostcopy
3)第三方工具。
xtrabackup innodbackupxe xbstream
二,备份还原数据库。
1,使用冷备份方式备份。
1)停止MySQL数据库的服务。
[root@Centos /]# systemctl stop mysqld
[root@Centos /]# systemctl status mysqld
在这里插入图片描述
2)创建备份目录,将需要备份的数据备份到当前位置。
[root@Centos /]# mkdir /backup
在这里插入图片描述
[root@Centos backup]# tar czvf /backup/mysql_benet_student-$(date +%F).tar.gz /usr/local/mysql/data/
在这里插入图片描述
3)恢复数据到创建的目录下。
[root@Centos /]# mkdir /restore
在这里插入图片描述
[root@Centos /]# tar xzvf /backup/mysql_benet_student-2019-11-01.tar.gz -C /restore/
在这里插入图片描述
4)将恢复的数据剪切到MySQL的data中。
模拟故障:

在这里插入图片描述
[root@Centos /]# cd /restore/
[root@Centos /]# mv -f /restore/usr/local/mysql/data/* /usr/local/mysql/data/
5)查看数据是否成功恢复。
[root@Centos /]# systemctl start mysql
[root@Centos data]# mysql -uroot -ppwd@123 -e ‘select * from benet.student;’
在这里插入图片描述
2.mysqldump 备份数据。(由小范围到大范围)
表:

1)备份数据中的表。
[root@Centos /]# mysqldump -uroot -ppwd@123 benet student > /restore/benet.student.sql
2)删除benet数据库中的表。(模拟数据丢失)
在这里插入图片描述
3)恢复benet数据库中的表。
[root@Centos /]# mysql -uroot -ppwd@123 benet < /restore/benet.student.sql
4)查看是否恢复成功。
[root@Centos /]# mysql -uroot -ppwd@123 -e ‘select * from benet.student’
在这里插入图片描述
多的库:
1)备份多个数据库。
[root@Centos /]# mysqldump -uroot -ppwd@123 > /restore/benet_accp.sql
在这里插入图片描述
2)删除数据库。
[root@Centos /]# mysql -uroot -ppwd@123 -e ‘drop database benet;’
[root@Centos /]# mysql -uroot -ppwd@123 -e ‘drop database accp;’
在这里插入图片描述
3)恢复数据库。
[root@Centos /]# mysql -uroot -ppwd@123 < /restore/benet_accp.sql
在这里插入图片描述
所有库
1)备份所有数据库。
[root@Centos /]# mysqldump -uroot -ppwd@123 --opt --all-databases > /restore/mysql_databases_all.sql
2)恢复所有库。
[root@Centos /]# mysql -uroot -ppwd@123 < /restore/mysql_databases_all.sql
3.增量备份。
1)配置日志切割。
[root@Centos data]# mysqladmin -uroot -ppwd@123 flush-log
在这里插入图片描述
2)二进制日志恢复误删除记录。
[root@Centos data]# mysqlbinlog --no-defaults ./mysql-bin.000031 #查看二进制文件
[root@Centos restore]# mysqlbinlog --no-defaults /restore/mysql-bin.000031 | mysql -uroot -ppwd@123
3)使用二进制id删除数据。(xid前面的数值是上一个离它最近命令的id号)
mysqlbinlog --stop-position=“520” ./mysql-bin.000035 | mysql -uroot -ppwd@123
在这里插入图片描述
4)使用二进制日志的时间节点恢复数据。
[root@Centos data]# mysqlbinlog --no-defaults --start-datetime=“2019-11-03 19:37:50” ./mysql-bin.000035 | mysql -uroot -ppwd@123
在这里插入图片描述

发布了52 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/HCY_2315/article/details/102882751