数据库备份和恢复
一、数据库的备份
备份的类型以及了解
物理备份:1.冷备份(脱机备份):数据库处于关闭状态,直接打包数据库文件
特点:备份速度快,回复时简单
2.热备份(联机备份):在数据库运行的情况下,采用archivelog mode方式备份数据库的方法
特点:如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息
3.温备份:温备份一般是周期性开机,根据内容进行更新
逻辑备份:1.完全备份:从数据库安装到现在全部备份
2.差异备份:从上次备份到现在的这个部分备份
3.增量备份:上次备份上增加从上次到现在的备份
具体备份方法
物理打包备份
tar zcf /mysqlbak/mysql.$(date +%Y%m%d%S).tar.gz /usr/local/mysql/date/*
专用工具备份(以登录数据库的方式导出数据库的内容)
备份所有库:mysqldump -uroot -p123456 --all-databases > /mysqlbak/exercise.sql
备份指定库:mysqldump -uroot -p123456 exercise > /mysqlbak/exercise.sql
备份表:mysqldump -uroot -p123456 exercise A > /mysqlbak/exercise.A.sql
增量备份
通过MySQL提供的二进制日志
vim /etc/my.cnf
max_binlog_size \\设置二进制日志文件的最大值
log-bin=mysql-bin \\启用二进制日志
二进制日志启用生成文件:/usr/local/mysql/data/master-bin.000001
log-bin=/usr/local/mysql/log/mysql-bin
flush logs;
第三方备份工具
phpMyAdmin
Navicat Premium
等等等等。。。。。。
二、恢复数据库
1.直接解压备份的解压包到数据库数据目录
2.mysqldump导出数据恢复
方法一:
先创建数据库,进入到该库(名字与需要恢复的库名字一样)
mysql>source /mysqlbak/exercise.sql
方法二:
先创建数据库,退出数据库(名字与需要恢复的库名字一样)
mysql -uroot -p123456 exercise < /mysqlbak/exercise.sql
3.二进制日志进行恢复
通过查看二进制文件如下图来查看时间节点或位置
使用编译安装自带的工具查看并恢复mysqlbinlog
查看二进制文件:mysqlbinlog mysql-bin.00001
基于时间节点的恢复(注意命令格式)
mysqlbinlog --stop-datetime='2020-03-06 15:28:26' /usr/local/mysql/data/master-bin.000001 | mysql -uroot -p123456
基于位置的恢复(注意命令格式)
mysqlbinlog --stop-position='1935' /usr/local/mysql/data/master-bin.000001 |mysql -uroot -p123456