使用MariaDB集群运维可能涉及的细节之binarylog
2014-08-19 11:14
218 查看
浏览MariaDB官网看到的一些内容,觉得可能有用就总结一下在此,可能并不全面。看官酌情采纳。
1.binarylog问题。数据库的log时间久了也是占用很大空间的,在本人以前做第三方支付的经历来看,生产环境中由于数据库log把硬盘写满造成业务失败,程序异常。这样的情形在运维人员意识不到这种情况的时候是很容易出现的。那么就需要对binarylog来进行清理。在集群的时候,清理并不是说很随意的删除就可以,因为master和slave直接的数据的同步需要依靠binarylog。那么下面我将搬运一下如何做binarylog的清理,基本是自己翻译的英文官网的内容。
binarylog记录着对数据库记录有影响的操作,诸如update insert delete语句,但是它并不记录select等不影响数据库记录的语句。
RESET MASTER 命令。 想删除在指定的时间点之前的所有binarylog日志文件, 或者是一个指定的数字之前, 执行
PURGE BINARY LOGS。
如果一个从属机器是活跃状态,并且尚未读取你想要删除的binarylog日志文件,那么语句将会报错失败。然而,如果一个从属机器并没有连接,且尚未读取你想要删除的binarylog文件,那么文件会被删除掉;但是这台从属机器再次连接的时候将不能够继续进行数据复制。
日志文件也能够通过使用
expire_logs_days 系统变量进行自动删除。 此变量默认值为0(不删除),但是此值我们可以将其设置为一个时间或者是某日。在此时间节点之后binarylog日志文件将被自动删除。请将此值设置的高于任何一个从属机器。
如果binarylog日志索引文件被删除了,或者是被手动错误编辑了,那么上面所有的binarylog日志清理将会失败,这个.index文件是一个特定内容的文本文件,是可以手动编辑或重建的,它只是以数字或者年龄来列出现在存在的binarylog文件。
想在删除日志文件时确保复制不被破坏,参照下列步骤来执行:
通过在主机器上运行SHOW BINARY LOGS 来获取binarylog日志文件列表。
在每一台从属机器上运行
SHOW SLAVE STATUS 来检查每一个从属机器正在读取哪个日志文件。
找到正在被从属机器所使用的最早的那个日志文件,比它更早的日志文件都是不再被需要的。
如果你想的话,你可以在删除它们之前进行一下备份。
清理上述在这个日志文件之前(不包含它本身)的所有日志文件。
参考网址: https://mariadb.com/kb/en/mariadb/documentation/log-files/binary-log/using-and-maintaining-the-binary-log/
1.binarylog问题。数据库的log时间久了也是占用很大空间的,在本人以前做第三方支付的经历来看,生产环境中由于数据库log把硬盘写满造成业务失败,程序异常。这样的情形在运维人员意识不到这种情况的时候是很容易出现的。那么就需要对binarylog来进行清理。在集群的时候,清理并不是说很随意的删除就可以,因为master和slave直接的数据的同步需要依靠binarylog。那么下面我将搬运一下如何做binarylog的清理,基本是自己翻译的英文官网的内容。
binarylog记录着对数据库记录有影响的操作,诸如update insert delete语句,但是它并不记录select等不影响数据库记录的语句。
清理日志文件
想删除在服务器上的所有binarylog日志文件, 执行RESET MASTER 命令。 想删除在指定的时间点之前的所有binarylog日志文件, 或者是一个指定的数字之前, 执行
PURGE BINARY LOGS。
如果一个从属机器是活跃状态,并且尚未读取你想要删除的binarylog日志文件,那么语句将会报错失败。然而,如果一个从属机器并没有连接,且尚未读取你想要删除的binarylog文件,那么文件会被删除掉;但是这台从属机器再次连接的时候将不能够继续进行数据复制。
日志文件也能够通过使用
expire_logs_days 系统变量进行自动删除。 此变量默认值为0(不删除),但是此值我们可以将其设置为一个时间或者是某日。在此时间节点之后binarylog日志文件将被自动删除。请将此值设置的高于任何一个从属机器。
如果binarylog日志索引文件被删除了,或者是被手动错误编辑了,那么上面所有的binarylog日志清理将会失败,这个.index文件是一个特定内容的文本文件,是可以手动编辑或重建的,它只是以数字或者年龄来列出现在存在的binarylog文件。
例子
PURGE BINARY LOGS TO 'mariadb-bin.000063';
PURGE BINARY LOGS BEFORE '2013-04-22 09:55:22';
在复制时安全清理binarylog日志文件
想在删除日志文件时确保复制不被破坏,参照下列步骤来执行:通过在主机器上运行SHOW BINARY LOGS 来获取binarylog日志文件列表。
在每一台从属机器上运行
SHOW SLAVE STATUS 来检查每一个从属机器正在读取哪个日志文件。
找到正在被从属机器所使用的最早的那个日志文件,比它更早的日志文件都是不再被需要的。
如果你想的话,你可以在删除它们之前进行一下备份。
清理上述在这个日志文件之前(不包含它本身)的所有日志文件。
参考网址: https://mariadb.com/kb/en/mariadb/documentation/log-files/binary-log/using-and-maintaining-the-binary-log/
相关文章推荐
- ↑使用cobbler实现集群系统运维自动化↑
- 基于ssh的集群运维工具ansible api的使用[类saltstack] 推荐
- 运维笔记4(用户信息涉及到的文件,用户管理命令,用户权限的下放,更新:关于useradd -b -d -m -k的一些理解和使用)
- 树莓派使用apt-get安装配置Nginx+PHP7+MySQL(MariaDB)附带部分细节
- dubbo+zookeeper 的简单使用(不涉及集群)
- vsphere client 上传文件:Failed to log into NFC Server - 可能是你使用了域名的原因
- ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINLOG_FORM
- 在本机搭建mycat 单机环境,使用mariadb 伪集群
- Boost Log 的 logger 使用细节
- kafka 集群运维和使用
- 集群运维自动化工具ansible使用playbook安装mysql
- 安装ClouderaManager以及使用ClouderaManager安装分布式集群的若干细节
- 使用Chef管理windows集群 | 运维自动化工具
- ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINLOG_FORM
- 集群运维自动化工具ansible之使用playbook安装zabbix客户端
- 使用MONGODB 集群的OPLOG 日志进行数据恢复
- JMS之—— ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINL
- 使用Chef管理windows集群 | 运维自动化工具
- 从cssd的log中检查是否使用了第三方集群件