zoukankan      html  css  js  c++  java
  • mysql数据备份之Netbackup

    1、NBUfor MySQL

    NetBackup for MySQL Agent 扩展了NetBackup 的功能,以包括MySQL 数据库的备份和还原操作。代理位于NetBackup 客户端上并支持独立的设置操作。代理支持MySQL 版本5.5.5 及更高版本。NetBackup for MySQL Agent 除备份、恢复功能外,还支持:

    • 验证备份信息。

    • 查询备份。

    • 从目录库文件中删除备份信息。

    • 将还原重定向到不同于最初执行备份的客户端的另一客户端。

    2、备份流程

    NetBackupfor MySQL Agent 整体备份流程为:

    1. Agent向Mysql发出创建备份快照命令(flush tables with read lockt等)。

    2. Mysql成功执行命令后,Agent向服务器发出VSS/LVM相关创建快照命令。

    3. 快照创建成功后,挂载快照,并把MySQL备份数据发送给NBU Server。

    4. NBU Server把相关备份数据上传存储单元。

    5. NBU Serve把备份状态回传给Agent。

    3、恢复流程

    NetBackupfor MySQL Agent 整体恢复流程为:

    1. Agent向NBU Server发出恢复命令。

    2. NBU Server读取相关配置信息,把相应备份数据传给Agent。

    3. 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一样。

     转自:https://www.modb.pro/db/29606

  • 相关阅读:
    在Mybatis中使用连表查询的一次实际应用
    Mybatis使用generatedKey在插入数据时返回自增id始终为1,自增id实际返回到原对象当中的问题排查
    一次org.springframework.jdbc.BadSqlGrammarException ### Error querying database Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException问题排查过程
    商品的spu、sku及其之间的关系
    Java transient关键字的理解
    关于Serializable的一个形象的例子
    一个很大的文件,存放了10G个整数的乱序数列,如何用程序找出中位数。
    Logger.error方法之打印错误异常的详细堆栈信息
    什么是Http无状态?Session、Cookie、Token三者之间的区别
    接口API中的敏感数据基于AES进行安全加密后返回
  • 原文地址:https://www.cnblogs.com/yihr/p/14680702.html
Copyright © 2011-2022 走看看