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

时间:2024-04-06 12:42:51

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

MySQL数据库(2):常见的三种备份方式
[[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;’
MySQL数据库(2):常见的三种备份方式
2.mysqldump 备份数据。(由小范围到大范围)
表:

1)备份数据中的表。
[[email protected] /]# mysqldump -uroot [email protected] benet student > /restore/benet.student.sql
2)删除benet数据库中的表。(模拟数据丢失)
MySQL数据库(2):常见的三种备份方式
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’
MySQL数据库(2):常见的三种备份方式
多的库:
1)备份多个数据库。
[[email protected] /]# mysqldump -uroot [email protected] > /restore/benet_accp.sql
MySQL数据库(2):常见的三种备份方式
2)删除数据库。
[[email protected] /]# mysql -uroot [email protected] -e ‘drop database benet;’
[[email protected] /]# mysql -uroot [email protected] -e ‘drop database accp;’
MySQL数据库(2):常见的三种备份方式
3)恢复数据库。
[[email protected] /]# mysql -uroot [email protected] < /restore/benet_accp.sql
MySQL数据库(2):常见的三种备份方式
所有库
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
MySQL数据库(2):常见的三种备份方式
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]
MySQL数据库(2):常见的三种备份方式
4)使用二进制日志的时间节点恢复数据。
[[email protected] data]# mysqlbinlog --no-defaults --start-datetime=“2019-11-03 19:37:50” ./mysql-bin.000035 | mysql -uroot [email protected]
MySQL数据库(2):常见的三种备份方式