物理与逻辑的角度
物理备份:冷备份,热备份,温备份
冷备份:在数据库关闭下备份状态下备份操作
热备份:在数据库处于运行状态时进行备份操作
温备份:数据库锁定表格(不可写,但可读)的状态下进行备份操作
从数据库的备份策略角度
完全备份,差异备份,增量备份
完全备份:每次对数据库进行完整的备份
差异备份:备份上次自从完全备份之后被修改过的所有文件
增量备份:只有那些在上次完全备份或增量备份之后被修改过的文件才会被备份
备份方法
物理备份:tar命令
专用的备份工具(逻辑备份):mysqldump
二进制日志备份(增量备份)
mysqldump逻辑备份的相关命令:完全备份
备份一个表:mysqldump -u root -p 库名.表名 >/备份路径/文件名
备份一个库:mysqldump -u root -p --databases库名>/备份路径/文件名
备份所有库:mysqldump -u root -p --opt --all-databases >/备份路径/文件名
还原
还原一个表:mysql -u root -p 库名 </备份路径/文件名
还原一个库:mysql -u root -p </备份路径/文件名
增量恢复的方法
一般恢复:恢复整个日志文件
基于时间点的恢复:可以恢复部分日志
基于位置恢复:可以恢复部分日志
mysql二进制日志对备份的意义
二进制日志保存了所有更新或者可能更新数据库的操作
开启mysql二进制日志功能
log-bin=/usr/local/mysql/mysql-bin
一般恢复:将所有备份的二进制日志内容全部恢复
mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u用户名 -p
基于位置的恢复:通过位置恢复更加精准 指定位置
mysqlbinlog --stop-position='操作id' 二进制日志 | mysql-u用户名 -p
从指定的位置开始恢复数据
mysqlbinlog --start-position='操作id' 二进制日志 | mysql-u用户名 -p
基于时间点的恢复:从日志开始截止到某个时间点恢复
mysqlbinlog [--no-defaults] --stop-datetime='年-月-日小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p
从某个时间点到某个时间点的恢复
mysqlbinlog [--no-defaults] --start-datetime='年-月-日小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p