MySQL数据备份========================================
备份时间,备份对象(数据,表,库,配置文件),备份方式
备份: 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方。
冗余: 数据有多份冗余,但不等备份,只能防止机械故障还来的数据丢失,例如主备模式、数据库集群。
备份数据库的哪些对象: =================================
备份的对象: databases(表结构+表空间) Bin-log my.cnf
备份在什么地方: 鸡蛋不要放同一个篮子。 ## rm -rf /data/mysql/* 模拟 ---- 最严重失败
备份文件,不要与 被备份的对象 放在一起
备份 与 恢复,要时常 演练(测试环境下。) 生产环境 业务数据
制定备份的方案,需要考虑的因素:===========================================
可以容忍丢失多长时间的数据?
备份需要在什么时间点执行? ## 业务不繁忙 不要说:凌晨
备份进行的期间,是否需要提供连续业务? ## 热备? 温备? 冷备?
需要恢复的对象是什么? ## 整个数据库,单个数据库,一个或多个表, 还是某条数据?
按照备份过程中,服务的可用性来区分 ===========================
冷备份:cold backup mysql服务关闭,mysql离线
温备份:warm backup mysql服务在线,但是不允许写请求,例如 read lock,在线的某些功能需要中止。
热备份:hot backup 备份同时,业务读写请求继续,业务不受干扰。(没有绝对的热备份,无限接近,停止的时间忽略不计)
myisam :不支持热备
innodb : 需要专用工具
## mysqlhotcopy: 完全是冷备
按照备份的完整来区分 :===================================
完全备份 : 完全拷贝
增量备份 : 只拷贝变动的数据
差异备份 : 参照上一次完整的数据,备份差异的部分。
完全 + 增量/差异 + 二进制 (几乎是唯一解决方案) 保护,具有冗余功能的设备上。
按照备份的 操作方式 区分 :==================================
逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句(DDL DML DCL),
适用于中小型数据库,效率相对较低。
mysqldump A 1000 建立A表 语句 + 1000 条数据的插入语句 ===== backup.sql
空库状态 导回 backup.sql
不建议。 字符集 索引 触发器 存储过程 函数。
容易出错!!!
物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,
但不能恢复到不同的MySQL版本。
tar,cp
xtrabackup
lvm snapshot ## 备份数据库目标,必须存在与 一个 LVM 逻辑卷。
物理备份是 是完全还是增量备份?
物理备份是 冷备份 还是 热备份?
增量备份 是 物理备份,还是逻辑备份?
完全 + 增量/差异 + 二进制 (几乎是唯一解决方案)
| |
物理 物理