标签: binlog

删除mysql-bin文件是否安全?

我在 mysql 中有 MM 复制,我想在框中挤出一些可用空间以删除不必要的文件,我在mysql-bin里面遇到了这些文件/var/db/mysql/有数百个这样的文件mysql-bin.000123mysql-bin.000223等等。我已经检查了 mysql 复制show master statusshow slave status它们是在某些位置使用一些 mysql-bin 文件,但我猜所有其他 bin 文件都是剩余的,不会再使用了。在这种情况下,删除除复制当前指向的文件之外的所有 mysql-bin 文件是否安全?

如果删除是安全的,那么我可以做些什么来在不使用这些文件时自动删除它们?

mysql replication mysql-5 binlog

124
推荐指数
4
解决办法
17万
查看次数

使用 log_bin 变量禁用 MySQL 二进制日志记录

某些使用 APT 的 debian 包安装的默认 MySQL 配置文件 /etc/mysql/my.cnf 经常设置 log_bin 变量,因此启用了 binlog:

log_bin = /var/log/mysql/mysql-bin.log
Run Code Online (Sandbox Code Playgroud)

当我想在这样的安装上禁用二进制日志记录时,当然注释掉 my.cnf 中的行,但我想知道是否有办法通过将 log_bin 显式设置为 OFF 来禁用二进制日志记录,在 debian 风格中,我的意思是在一个包含文件,如 /etc/mysql/conf.d/myCustomFile.cnf,因此默认 my.cnf 不会更改,如有必要,可以通过 apt 轻松更新。

我试过“log_bin = 0”、“log_bin = OFF”或“log_bin =”,但没有一个有效......

mysql logs binlog debian

52
推荐指数
5
解决办法
12万
查看次数

在运行时切换 binlog 格式的最安全方法是什么?

由于以下警告mysqld.log

[警告] 使用语句格式写入二进制日志的不安全语句,因为 BINLOG_FORMAT = STATEMENT。该语句是不安全的,因为它使用了 LIMIT 子句。这是不安全的,因为无法预测包含的行集。

我想将复制格式切换为MIXED.

但根据 MySQL 文档:

当存在任何临时表时,不建议在运行时切换复制格式,因为仅在使用基于语句的复制时才会记录临时表,而使用基于行的复制时不会记录它们。

那么,问题是如何确定是否存在任何临时表来安全地切换二进制日志格式?

mysql replication binlog

28
推荐指数
2
解决办法
5万
查看次数

更新 expire_logs_days 参数并重新启动 sql 后多久会删除旧的 binlog?

MySQL 5.1.x | InnoDB | 视窗

我的 mysql 数据目录开始被 bin 日志填满。

我目前在 Windows mysql 服务器中配置了以下设置:

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25
Run Code Online (Sandbox Code Playgroud)

我打算将 expire_logs_days 设置更改为expire_logs_days=10并退回 mysql 服务。进行此更改后,我希望旧的 bin 日志多久能清除。

这是否仅作为夜间计划任务的一部分完成?或者这应该是立即的?

mysql replication mysql-5 mysql-5.1 binlog

18
推荐指数
1
解决办法
4万
查看次数

为什么清除或刷新后 MySQL bin 日志文件仍然存在?

我使用过 PURGE BINARY LOGS 和 FLUSH LOGS,但 mysql 目录仍然包含这些文件:

mysql-bin.000025
mysql-bin.000024
mysql-bin.000023
mysql-bin.000022
mysql-bin.000021
mysql-bin.000020
mysql-bin.000019
mysql-bin.index
Run Code Online (Sandbox Code Playgroud)

是否有使用命令不起作用的原因?这些文件占用了大量空间。我想安全地摆脱它们。

mysql binlog mysqlbinlog

14
推荐指数
4
解决办法
5万
查看次数

MySQL 二进制日志 - 跳过一个表

有没有办法跳过二进制日志中的特定表?

我已将二进制日志配置为每晚备份之间的增量备份策略。但是我们有一个巨大的参考表,我们将每晚从批处理(70GB 表)中更新。此表仅供读取,并且每晚使用mysqlimport.

在这个仅供参考的表的更新过程中,二进制日志导致了相当严重的延迟(尤其是当我进行完整的 70GB 更新时)。基本上它必须做两次 70GB。糟糕。

参考表当前正在使用 MyISAM(我阻止 InnoDB 尝试加载它,因此尝试使用 MyISAM)。

mysql logs binlog

9
推荐指数
1
解决办法
1万
查看次数

如何在 /etc/my.cnf 文件中将 binlog-format=ROW 设为启动默认值?

我可以运行查询SET GLOBAL binlog_format = 'ROW'并且它适用于该会话。

停止并重新启动 MySQL 后,如何使此设置保持不变?

注意:我使用的是 MySQL 5.5.19 版本(使用 Moodle),我刚刚从 MyISAM 升级到 InnoDB,因此需要这个新设置。

我曾尝试将这两个命令(单独)添加到 my.cnf 中:binlog-format=ROWbinlog_format=ROW,但都不起作用。每次更改 my.cnf 时,我都会停止并重新启动 MySQL。

我在没有设置的情况下得到的错误是邪恶的错误消息:

调试信息:无法执行语句:无法写入二进制日志,因为 BINLOG_FORMAT = STATEMENT 并且至少一个表使用仅限于基于行的日志记录的存储引擎。当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,InnoDB 仅限于行日志记录。

mysql innodb my.cnf binlog

9
推荐指数
1
解决办法
2万
查看次数

Binlog 有错误的幻数

每当我启动 MySQL 时,我都会收到此错误。

121028  1:38:55 [Note] Plugin 'FEDERATED' is disabled.
121028  1:38:55 InnoDB: The InnoDB memory heap is disabled
121028  1:38:55 InnoDB: Mutexes and rw_locks use Windows interlocked functions
121028  1:38:56 InnoDB: Compressed tables use zlib 1.2.3
121028  1:38:56 InnoDB: Initializing buffer pool, size = 16.0M
121028  1:38:56 InnoDB: Completed initialization of buffer pool
121028  1:38:56 InnoDB: highest supported file format is Barracuda.
121028  1:38:57  InnoDB: Waiting for the background threads to start
121028  1:38:58 InnoDB: 1.1.8 started; log sequence …
Run Code Online (Sandbox Code Playgroud)

mysql windows binlog

6
推荐指数
1
解决办法
7180
查看次数

pt-table-checksum 和基于行的复制

我使用的设置是主从复制配置中的 MySQL 5.5,但我们必须使用“混合”复制(基于语句和行),因为我们使用需要它的应用程序,并且它恰好在我们的同一台上服务器。

我们最近停止了复制,我想确保我们已正确恢复。

我下载并安装了 Percona Toolkit,但在这种情况下我似乎无法使用 pt-table-checksum,特别是因为基于行的复制:

2.27.5 限制使用基于行的复制 pt-table-checksum 的副本需要基于语句的复制,并且它在主服务器上设置 binlog_format=STATEMENT,但由于 MySQL 限制,副本不支持此更改。因此,校验和不会使用基于行的复制来复制任何副本,这些副本是进一步副本的主副本。该工具会自动检查所有服务器上的 binlog_format。请参阅 --[no]check-binlog-format 。(错误 899415)

是否有其他选项可以对基于行的复制表进行校验和?

我在 Percona 论坛上发现了这个,它说它可以工作,但我不能让它改变我的 cnf 文件,因为它声称它可以。当我尝试运行它时,它还会发出以下警告:

副本 mysql-b.example.com 具有 binlog_format MIXED,这可能会导致 pt-table-checksum 中断复制。请阅读该工具文档的限制部分中的“使用基于行的复制的副本”。如果您了解风险,请指定 --no-check-binlog-format 以禁用此检查。

mysql replication binlog percona-toolkit pt-table-checksum

5
推荐指数
1
解决办法
3666
查看次数

MariaDB 二进制日志的最大总大小

我正在寻找一种方法来防止 MariaDB 二进制日志在增长速度比平时更快时占用大量空间。

但是有没有办法设置所有二进制日志文件的“最大整体大小”?或者,也许更简单,最大数量的二进制日志文件,这会超载expire_log_days保留...

mysql mariadb binlog

5
推荐指数
1
解决办法
9101
查看次数