一,常见的备份方式。
1)冷备份。
tar cp
2)备份工具。
mysqldump mysqlhostcopy
3)第三方工具。
xtrabackup innodbackupxe xbstream
二,备份还原数据库。
1,使用冷备份方式备份。
1)停止MySQL数据库的服务。
[[email protected] /]# systemctl stop mysqld
[[email protected] /]# systemctl status mysqld
2)创建备份目录,将需要备份的数据备份到当前位置。
[[email protected] /]# mkdir /backup
[[email protected] backup]# tar czvf /backup/mysql_benet_student-$(date +%F).tar.gz /usr/local/mysql/data/
3)恢复数据到创建的目录下。
[[email protected] /]# mkdir /restore
[[email protected] /]# tar xzvf /backup/mysql_benet_student-2019-11-01.tar.gz -C /restore/
4)将恢复的数据剪切到MySQL的data中。
模拟故障:
[[email protected] /]# cd /restore/
[[email protected] /]# mv -f /restore/usr/local/mysql/data/* /usr/local/mysql/data/
5)查看数据是否成功恢复。
[[email protected] /]# systemctl start mysql
[[email protected] data]# mysql -uroot [email protected] -e ‘select * from benet.student;’
2.mysqldump 备份数据。(由小范围到大范围)
表:
1)备份数据中的表。
[[email protected] /]# mysqldump -uroot [email protected] benet student > /restore/benet.student.sql
2)删除benet数据库中的表。(模拟数据丢失)
3)恢复benet数据库中的表。
[[email protected] /]# mysql -uroot [email protected] benet < /restore/benet.student.sql
4)查看是否恢复成功。
[[email protected] /]# mysql -uroot [email protected] -e ‘select * from benet.student’
多的库:
1)备份多个数据库。
[[email protected] /]# mysqldump -uroot [email protected] > /restore/benet_accp.sql
2)删除数据库。
[[email protected] /]# mysql -uroot [email protected] -e ‘drop database benet;’
[[email protected] /]# mysql -uroot [email protected] -e ‘drop database accp;’
3)恢复数据库。
[[email protected] /]# mysql -uroot [email protected] < /restore/benet_accp.sql
所有库
1)备份所有数据库。
[[email protected] /]# mysqldump -uroot [email protected] --opt --all-databases > /restore/mysql_databases_all.sql
2)恢复所有库。
[[email protected] /]# mysql -uroot [email protected] < /restore/mysql_databases_all.sql
3.增量备份。
1)配置日志切割。
[[email protected] data]# mysqladmin -uroot [email protected] flush-log
2)二进制日志恢复误删除记录。
[[email protected] data]# mysqlbinlog --no-defaults ./mysql-bin.000031 #查看二进制文件
[[email protected] restore]# mysqlbinlog --no-defaults /restore/mysql-bin.000031 | mysql -uroot [email protected]
3)使用二进制id删除数据。(xid前面的数值是上一个离它最近命令的id号)
mysqlbinlog --stop-position=“520” ./mysql-bin.000035 | mysql -uroot [email protected]
4)使用二进制日志的时间节点恢复数据。
[[email protected] data]# mysqlbinlog --no-defaults --start-datetime=“2019-11-03 19:37:50” ./mysql-bin.000035 | mysql -uroot [email protected]
相关文章
- MySQL数据库(2):常见的三种备份方式
- 还原数据库备份文件时,关于“System.Data.SqlClient.SqlError:媒体集有2个媒体簇,但只提供了1个。必须提供所有成员”的处理方式
- MySQL数据库的自动备份与数据库被破坏后的恢复(2)
- 常见数据库mysql、oracle和DB2中is null 和 =null 的区别
- Delphi连接mysql数据库的三种方式
- python对mysql数据库操作的三种不同方式
- MySql数据库备份的几种方式
- php 通过网页的方式备份和还原mysql数据库
- MySQL数据库的备份与恢复的三种方法
- 是否可以将2个数据库MySQL连接在不同的服务器上?像一个可访问的备份