万达换票券 发表于 2018-10-7 09:50:52

Mysql数据库备份与恢复--Xtrabackup

  Mysql数据库备份与恢复
  背景:
  作为一个运维工程师,经常会遇到硬件故障(冗余)、软件故障(bug)、自然灾害、******、误操作等对数据库破坏的问题,所以一定要做好备份工作,在做好备份后还一定要会恢复,这两项工作都是很重要的,备份要知道如何备份才能有效的保护数据,同时恢复数据也是很繁忙的工作,有时可能需要一个团队来完成。这里介绍下Xtrabackup对Mysql数据库的简单备份和恢复。
  这里的实验是在Centos6.9上做的,如果是7版本,可能命令有所不同。
  备份注意事项:
  1、能容忍最多丢失多少数据;
  2、恢复数据需要在多长时间内完成;
  3、需要恢复哪些数据;
  4、做恢复演练:
  测试备份的可用性;
  增强恢复操作效率;
  5、备份需要考虑因素:
  锁定资源多长时间?
  备份过程的时长?
  备份时的服务器负载?
  恢复过程的时长?
  备份策略:
  全量+差异 + binlogs
  全量+增量 + binlogs
  备份手段:物理、逻辑
  备份类型:
  备份的数据集的范围:
  完全备份:整个数据集;
  部分备份:数据集的一部分,比如部分表;
  全量备份、增量备份、差异备份:
  完全备份
  增量备份:仅备份自上一次完全备份或 增量备份以来变量的那部数据;
  差异备份:仅备份自上一次完全备份以来变量的那部数据;
  物理备份、逻辑备份:
  物理备份:复制数据文件进行的备份;
  逻辑备份:从数据库导出数据另存在一个或多个文件中;
  根据数据服务是否在线:
  热备:读写操作均可进行的状态下所做的备份;(MyISAM不支持热备,InnoDB支持)
  温备:可读但不可写状态下进行的备份;
  冷备:读写操作均不可进行的状态下所做的备份;
  备份什么?
  1、数据
  2、二进制日志、InnoDB的事务日志;
  3、代码(存储过程、存储函数、触发器、事件调度器)
  4、服务器的配置文件(用于系统环境的恢复)
  Xtrabackup备份数据
  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。   
  完全备份:
  完全+binlog(总结):
  备份:innobackupex --user --password= --host= /PATH/TO/BACKUP_DIR
  准备:innobackupex --apply-log/PATH/TO/BACKUP_DIR
  恢复:innobackupex --copy-back
  注意:--copy-back需要在mysqld主机本地进行,mysqld服务不能启动;
  innodb_log_file_size可能要重新设定;
  步骤1、在使用Mysql数据库时,最好开启binlog,也就是二进制日志功能,到时可以用二进制按时间节点对文件进行恢复,使数据恢复更加准确。

  步骤2、下载与安装Xtrabackup软件
  官网下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/
  Xtrabackup提供的是rpm包,所以下载好后直接用yum安装即可

  步骤3、备份数据库
  在安装Xtrabackup时最好是关闭数据库,安装好后就可以启动了。

  开始备份数据:



  在看见了completed OK!之后才能确认备份是成功的,否则备份是失败的。
  步骤4、查看数据库备份情况

  Xtrabackup恢复数据
  步骤1、在确认了数据库备份成功后,删除数据库里的所有数据

  步骤2、关闭数据库
  命令:service mysqld stop
  一定要关闭数据库,因为之后的操作如果数据库是开着的,那操作都会失败。
  步骤3、准备
  命令:innobackupex --apply-log /PATH
  这一步很重要,他可以将没做完的事务全部回滚。保证数据库的准确性。


  步骤4、恢复数据
  命令:innobackupex --copy-back

  同样的,最后看见completed OK就是恢复成功,PS:并不是上图的completed OK
  步骤5、查看恢复的数据

  步骤6、修改权限或者所有者

  步骤7、启动数据库,查看数据

  数据恢复完成。

页: [1]
查看完整版本: Mysql数据库备份与恢复--Xtrabackup