mysql数据备份之Netbackup
1、NBUfor MySQL
NetBackup for MySQL Agent 扩展了NetBackup 的功能,以包括MySQL 数据库的备份和还原操作。代理位于NetBackup 客户端上并支持独立的设置操作。代理支持MySQL 版本5.5.5 及更高版本。NetBackup for MySQL Agent 除备份、恢复功能外,还支持:
-
验证备份信息。
-
查询备份。
-
从目录库文件中删除备份信息。
-
将还原重定向到不同于最初执行备份的客户端的另一客户端。
2、备份流程
NetBackupfor MySQL Agent 整体备份流程为:
-
Agent向Mysql发出创建备份快照命令(flush tables with read lockt等)。
-
Mysql成功执行命令后,Agent向服务器发出VSS/LVM相关创建快照命令。
-
快照创建成功后,挂载快照,并把MySQL备份数据发送给NBU Server。
-
NBU Server把相关备份数据上传存储单元。
-
NBU Serve把备份状态回传给Agent。
3、恢复流程
NetBackupfor MySQL Agent 整体恢复流程为:
-
Agent向NBU Server发出恢复命令。
-
NBU Server读取相关配置信息,把相应备份数据传给Agent。
-
Agent利用备份数据进行恢复。
手工快照备份、恢复
NetBackup forMySQL备份原理非常简单,就是利用VSS/LVM的快照进行的数据备份,因为创建快照非常快,因此这种方式的数据库备份也对数据库影响最小。但利用快照进行MySQL数据库备份必须保证MySQL实例、lv是一对一的关系。接下来我就利用快照这种方式进行人工备份。
备份
1.确保MySQL实例使用单一lv
2.创建快照
以操作系统用户root,使用mysql客户端登陆MySQL数据库,以避免在mysql、操作系统间切换。
首先在mysql中,执行“flushtables with readlock”,使数据库把脏数据写回磁盘并处于只读状态,以保证数据备份的完整、一致性,其次记录当前的事务信息及binlog位点信息,以方便以后建立主从关系,最后创建当前mysql数据库所使用lv的快照并释放相关锁。
3.备份数据
快照创建成功后,查看lv及其快照信息
挂载快照
利用快照,进行相关数据备份
恢复
把上述备份数据传至其它主机,并在该主机创建挂载点/data,把数据还原至该挂载点即可
把备份数据解压至相应目录
启动数据库
NetBackup for MySQL备份原理比较简单,首先发出执令“flushtable with read lock”、“showmasterstatus”至数据库,使数据库当前所有脏数据写回磁盘,并让数据库处理“静止”状态,获取数据库当前事务信息及binlog位点信息;其次必执行至操作系统,创建VSS/lvm相关快照,最后发“unlocktables”至数据库,使数据库回复正常。整个过程非常简单,耗时相对比较少,整体来说效率比较高且对数据库影响最小。最后再利用快照进行真正的数据备份。利用快照这种方式进行数据备份,必须保证MySQL实例与lv是一对一关系,并且保证lv所在vg有足够的空间,对于变更特别频繁的数据库来说,vg的剩余空间得和lv一样。