MySQLのMySQL备份

MySQL的备份策略有不少,主要取决于MySQL拓扑中的服务器的数量。我们现在以最小功能性备份作为讨论的背景:只有1台服务器,需要确定一个备份策略。

关于MySQL的备份,有两种方法是适用于所有的场景:

1 把MySQL实例停掉,然后进行冷备份,但是这样做的缺陷是不言而喻的——系统在一段不能确定的时间里不可使用,同时,也要求能够正确而完整的拷贝了所有的信息,包括:数据、可用的事务、二进制日志数据和当前的MySQL配置。

2 使用工具,标准的MySQL安装包中已经包含了的客户端工具——mysqldump,使用这个命令可以不必停掉MySQL实例,在执行命令选择参数的时候,就需要考虑几个问题以确定出最佳的方案,包括:备份数据库的规模、锁策略如何保证一致性、备份时长等。

接下来,我们就来详细讨论一下mysqldump执行时确定最佳方案的这几个考虑因素。

Part1 数据库大小

为啥要先考虑这个呢?因为必须确保备份的文件能够有足够的存储空间来存放。我们通过执行SQL语句来查询当前数据的大小:

mysql>SELECT ROUND(SUM(data_length+index_length)/1024/1024)
<span style="white-space:pre">	</span>-><span style="white-space:pre">	</span>As tatal_mb,
<span style="white-space:pre">	</span>-><span style="white-space:pre">	</span>ROUND(SUM(data_length)/1024/1024)AS data_mb,
<span style="white-space:pre">	</span>-><span style="white-space:pre">	</span>ROUND(SUM(index_length)/1024/1024)AS index_mb
<span style="white-space:pre">	</span>->FROM<span style="white-space:pre">	</span>INFORMATION_SCHEMA.tables;
一般执行mysqldump所得到的备份文件与原数据是大致相同的大小,但是为了安全考虑,会留出10%-15%的冗余,这种计算方法是不精确的,而且,备份会产生一个数据的基于文本的输出。

PART2 锁策略选择

锁策略是决定在执行备份的期间,能不能对数据库进行写操作。mysqldump在默认情况下是用LOCK TABLES来锁住表,以保障数据的一致性,主要取决于--lock tables命令行选项,这一个选项在默认情况下是disabled的,是--opt选项的一部分,--opt选项本来在默认情况就是enabled的。

PART3 运行时间

确定备份耗时是最重要的需求,但是没有什么计算方法可以给出精准的答案。有很多决定因素:数据库规模、系统的RAM容量、存储引擎的类型、MySQL配置、硬盘的速度和当前工作负载等。所以在执行备份时要采集信息,运行时间很重要的原因是因为它是维护数据库的窗口,而且备份期间有很多功能限制、性能开销的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值