目录
一、数据库备份
备份方法
物理备份:直接对数据库的数据文件或日志文件进行备份
逻辑备份:对数据库的库或表对象进行备份
备份策略
完全备份:每次备份都备份完整的数据库
差异备份:只备份上一次完全备份后的更新数据
增量备份:每次备份只备份上一次完全备份或增量备份后的更新数据
数据库上云迁移 冷迁移 物理冷备 打包备份+恢复
热迁移 阿里云的DTS服务
二、数据备份的重要性
备份的主要目的是灾难恢复
在生产环境中,数据的安全性至关重要
任何数据的丢失都可能产生严重的后果
造成数据丢失的原因
- 程序错误
- 人为操作错误
- 运算错误
- 磁盘故障
- 灾难(如火灾、地震)和盗窃
三、MySQL完全备份优缺点
优点
- 备份与恢复操作简单方便
缺点
- 数据存在大量的重复
- 占用大量的备份空间
- 备份与恢复时间长
实例:
完全备份
MySQL物理冷备份及恢复
从192.168.30.203备份到192.168.30.200
配置192.168.30.203
关闭数据库并打包数据库文件
查看归档内容
配置192.168.30.200
192.168.30.203
完全备份指定库中的部分表
mysqldump -u root -p[密码] [-d] 库名 表名1 [表名2] ... > /备份路径/备份文件名.sql
#使用-d"选项,说明只保存数据库的表结构 ,不使用"-d"选项,说明表数据也进行备份
完全备份MySQL,服务器中所有的库
mysqldump -u root -p[密码] --all-databases > / 备份路径/备份文件名.sql
完全备份一个或多个完的库(包括其中所有的表)
mysqldump -u root -p[密码]--databases库名1[库名2]..>/备份路径/备份文件名.sql #导出的就是数据库脚本文件
查看备份文件
cat 备份文件名 | grep -v "^--" | grep -v "^/" | grep -v "^$"
MySQL完全恢复
恢复数据库
删除已备份的数据库
恢复数据库
恢复数据表
MySQL增量备份
二进制日志(binlog)有3种不同的记录格式:
- STATEMENT(基于SQL语句)
- Row(基于行)
- MIXED(混合模式),默认格式是STATEMENT
vim /etc/my.cnf
对数据库或表进行完全备份
基于 位置恢复
恢复id为1755-1871的数据记录