MySQL数据库(四)——数据库备份和恢复

数据库备份和恢复

一、数据库的备份

备份的类型以及了解

物理备份: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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章