目录
2) 查看二进制日志,把最后数据库删除操作的position截取掉,重定向一个新的文件中;
4) 恢复数据会执行大量的写操作,可以先关闭二进制日志文件;
5. 修改mysql配置文件/etc/my.cnf,修改数据目录;
2) 请求锁定所有表,FLUSH TABLES为将所有内存的数据写入磁盘中;
9. 快照备份完成,对数据库进行一些修改,方便后面时间点还原;
2) 复制备份文件到数据目录,登录数据库,还原到备份的状态;
本篇是系列性,由浅入深,主要是为了本人日后回看时再学习,如果道友对Mysql也是零基础的话,强烈建议从头开始看
注:本文出处来自51CTO,因为是本人早些时候保存在Word中,以至于联系不到作者,特此声明 很是抱歉。为了MySQL部分的完整性,所以本人斗胆借用此篇,请作者看到后可以留言,本人好注明出处。特此声明,很是抱歉!!!
演示1:利用mysqldump工具备份;
1. 创建备份目录,存放备份文件;
2. 使用mysqldump工具,备份到备分目录;
Note:用--databases指明数据库时,备份的语句中有创建数据库的语句,如果不用--databases指明,则要手动创建;
3. 我们的策略是完全+增量+binlog备份方式,如果要使用binlog二进制日志重读,就要确定从备份的那一刻开始,binlog的起始文件位置,这是就哟啊使用--master-data=[#]选项;(确保二进制日志是开启的)
1) 首先开启二进制日志;
2) 备份;
3) 查看二进制文件;
4. 修改数据库内容;
5. 删除hellodb数据库,模拟数据库崩溃,
6. 数据库恢复;
1) 准备好要做时间点恢复的二进制文件;
2) 查看二进制日志,把最后数据库删除操作的position截取掉,重定向一个新的文件中;
3) 将二进制文件重定向新的文件;
4) 恢复数据会执行大量的写操作,可以先关闭二进制日志文件;
复制备份文件为.sql结尾;
导入数据库;
可以看出数据库恢复到了备份时的状态;
5) 利用二进制文件,恢复到数据库崩溃之前的时间点;
查看表中数据;
演示2:基于lvm2快照备份;
1. 创建分区;
2. 创建lvm
3. 创建mysql数据库目录,并将逻辑卷挂载至此目录;
4. 更改此目录的属组属主;
5. 修改mysql配置文件/etc/my.cnf,修改数据目录;
6. 开启服务,查看数据目录文件;
7. 先关闭数据库二进制日志进行数据写入;
查看导入的数据库;
8. 开启二进制日志,创建备份;
1) 开启二进制日志;
2) 请求锁定所有表,FLUSH TABLES为将所有内存的数据写入磁盘中;
3) 记录二进制时间位置;
4) 创建快照;
5) 释放锁;
6) 挂载快照卷并进行拷贝操作,文件属性需要保留;
7) 备份完成后,删除快照;
9. 快照备份完成,对数据库进行一些修改,方便后面时间点还原;
10. 恢复;
1) 手动模拟宕机并模拟数据库丢失;
2) 复制备份文件到数据目录,登录数据库,还原到备份的状态;
3) 利用二进制日志回滚还原;
过程跟上面利用mysqldump工具一样。
备份还原工具:Xtrabackup
Percona,www.percona.com
Innobackupex:客户端工具,以mysql协议连入mysqld,不支持离线备份
--user=
--password=
大概流程:
备份
完全备份策略:完整备份+增量备份+二进制日志
全量备份:# innobackupex --user=USER --password=PASSWORD BACKUPDIR(生成的备份目录为BASEDIR)
第一次增量备份:# innobackupex –user=USER –password=PASSWORD --incremental BACKUPDIR --incremental-basedir=BASEDIR(基于上一次 全量备份,生成的备份目录basedir为BASEDIR1)
第二次增量备份:# innobackupex --user=root --password=taoxiu --incremental BACKUPDIR --incremental-basedir= BASEDIR1
准备:# innobackupex --apply-log --redo-only BASEDIR
# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
恢复:
# innobackupex –copy-back BASEDIR
改变属主属组:
# cd /datadir
# chown –R mysql.mysql ./*
NOTE:查看备份目录中的xtrabackup-binlog-info,可以查看最后一次增量备份的end-points;最后可通过二进制日志还原到机器崩溃时的状态;
注意:
1) 将数据和二进制文件放置于不同的设备;二进制日志也应该周期性地备份;
2) 将数据和备份分开存放,建议不在同一设备、同一主机、同一机房、同一地域;
3) 每次灾难恢复后都应该立即做一次完全备份;
4) 备份后的数据应该周期性地做还原测试;
从备份中恢复应该遵循的步骤:
1) 停止mysql服务器;
2) 记录服务器配置和文件权限;
3) 将备份恢复到mysql数据目录;此步骤依赖具体的备份工具;
4) 改变配置和文件权限;
5) 以限制方式启动mysql服务器;比如通过网络访问;
[mysqld]
skip-networking
socket=/tmp/mysql-recovery.sock
6) 载入额外的逻辑备份;而检查和重放二进制日志;
7) 检查已经还原的数据;
8) 以完全访问模式重启服务器;