为什么恢复到启用了log-bin的mariadb示例时,无法恢复到binlog_do_db和UNIQUE_CHECKS=0中的数据库?

j2datikz  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(43)

在Kubernetes中运行了一个mariadb 10.7版本的示例。
最近log-bin被添加到server.cnf中。
恢复脚本停止对不在binlog_do_db中的任何数据库工作,没有错误。
问题似乎与以下方面有关:SET UNIQUE_CHECKS=0;SET FOREIGN_KEY_CHECKS=0;的值。
此外,mariadb日志不包含与恢复相关的错误或消息。
任何想法非常赞赏。

  • 谢谢-谢谢
  • 服务器.cnf*
[mariadb]
log-bin
server_id=1
log-basename=1
binlog-format=mixed
binlog_do_db=db1
binlog_do_db=db2

字符串

  • example.sql*
DROP DATABASE if EXISTS test;
CREATE DATABASE test;
USE test;

CREATE TABLE IF NOT EXISTS `test` (
    `test` INT(11) NULL DEFAULT NULL
);

SET UNIQUE_CHECKS=0;
SET FOREIGN_KEY_CHECKS=0;

INSERT INTO test VALUES (1);

SET FOREIGN_KEY_CHECKS=1;
SET UNIQUE_CHECKS=1;

SELECT * FROM test;

-- if binlog_do_db contains test (or log-bin is not used), the insert works.
-- if log-bin is used and binlog_do_db doesn't contain test, the insert will silently fail.


编辑:添加了mariadb版本10.7。与10.8-rc相同的问题

cyej8jka

cyej8jka1#

我知道这是一个老帖子,但我在MariaDB 10.11.4上遇到了这个问题。
我创建了DB表,但没有加载数据。
如果我将DB添加到binlog-do-db列表中,它将恢复tables + data。
奇怪的是,我在另一台服务器(MariaDB 10.11.4)上有一个几乎完全相同的设置,它在所有DB上都关闭了binlog,而且它是成功的。
有人知道问题出在哪吗?如果我把线拿掉
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0
从转储文件,一切正常。
编辑:我在MariaDB Jira网站上找到了this bug

相关问题