TL / DR:这个问题不是关于主从复制。 这是关于多主群组复制的新function(可从v5.7.17开始)。 我们有解决方法,但由于大量数据需要导入两次,所以需要花费数小时,所以问题在于find正确的方法来解决这个问题。 我们已经使用group replication设置了生产MySQL multi-master集群(仅提供5.7.17和更高版本)。 但是,当向此群集添加新节点时,出现ERROR 3094 (HY000): The START GROUP_REPLICATION command failed as the applier module failed to start. 尝试使用在设置传统主从复制时使用的类似错误的解决scheme[1] [2] 不起作用 。 我发现唯一的工作解决scheme是运行reset + source命令TWICE。 这需要花费数小时才能完成(数据库非常大)。 见下面的细节。 我们添加新节点的过程如下: On existing node: # mysqldump –all-databases –triggers –routines –events -u root -p > /home/user/dump.sql Copy dump to new node Setup new node […]
我目前正在设置一个主站和2个从站(性能读取查询) – 主站 – > 1个从站已经工作。 但现在我想添加第二个奴隶,我不能连接寿。 我必须为此创build第二个用户吗? 像这样 grant replication slave on *.* TO {slave2}@'{192.168.2.12}' identified by '{mypass}'; FLUSH PRIVILEGES; 还是应该与同一个用户一起工作? 我想我已经知道答案了,因为它是绑定到IP 192.168.2.12 – 但无论如何 – 对于内部testing设置为0.0.0.0 /%?
我已经将testing数据库备份转储到新创build的testing从属服务器,但是我无法使复制移动。 自转储以来,我只向主数据库添加了一条logging,以尝试启动复制。 我得到的奴隶的Last_SQL_Error: Error 'Can't create database 'products'; database exists' on query. Default database: 'products'. Query: 'create database products'是: Last_SQL_Error: Error 'Can't create database 'products'; database exists' on query. Default database: 'products'. Query: 'create database products' Last_SQL_Error: Error 'Can't create database 'products'; database exists' on query. Default database: 'products'. Query: 'create database products' Last_SQL_Error: Error […]
3asynchronous数据库复制MySQL 5.6 A是B的主人,B是A的主人 A是C的主人 我们正在考虑将我们的复制转换成GTID复制,而不是传统的复制,但有一点我们想了解。 假设服务器A和C上有数据库X,但数据库X上的写入只能在服务器C上完成,因为它仅用于ETL目的。 如果我们正确理解,如果我们想要推动服务器C掌握,从而将复制更改为以下内容: C是A的主人 A是B的主人 本质上,我们要做的是停下来; 在服务器C和服务器A上,检查slave_is_subset是否使用GTID_SUBSET()返回1,并将服务器A上的MASTER_HOST更改为C,并在服务器A上启动slave。在这种情况下,服务器A将接收数据库X的事务服务器C,有没有办法不让这种情况发生,并使其function有点像传统的二进制日志复制,你从一个特定的点开始? 我们知道这可能违背了GTID的目的,GTID不需要从哪里继续复制,但我们想要了解GTID的灵活性。
我devise了三个mysql,如下所示。 mysql1(主):原版主 mysql2(slave):mysql2同步到mysql1几个小时后。 mysql3(slave):mysql3立即同步到mysql1。 上面的mysql现在放在公司的服务器Util中。 在公司的mysql3服务器中执行以下命令。 >show slave status\G; ・ ・ Seconds_Behind_Master: 0 这是0秒.Mysql3正在同步,没关系。 但是我在几个星期前把mysql3移到了GCE,之后就发生了一个问题。 在mysql3中执行以下命令,将其移至GCE。 >show slave status\G;・・Seconds_Behind_Master: 30891 这是30891秒。复制显然落后于计划。 我还没有明白原因。请告诉我为什么。这是GCE特有的问题吗? INFROMATION 在mysql版本中没有改变 $ mysql –version mysql Ver 14.14 Distrib 5.7.20,用于Linux(x86_64),使用EditLine包装器 diskI / O $ for i in `echo {1..10}`; do sleep 5; echo $'\n\n' $i; date; time dd if=/dev/zero of=/tmp/hdparm_write$i.tmp ibs=1M obs=1M count=1024 […]
我正在维护一个testingEnv在我的公司。 而且我正在将testing数据库提升为生产版本的奴隶。 我需要知道的是,如果有任何更新这个特定的奴隶,每天只有一两次,几乎不是实时的,现在呢? 问候,佩德罗
我可以使用mysqlhotcopy备份文件到不同的MySQL版本的机器吗? 谢谢。
我有一个奇怪的例子。 每当我的同事执行这一行时: 显示奴隶状态; 从他们的MySQL客户端,它工作顺利。 但是如果我这样做,它说: 错误1227(42000):访问被拒绝; 您需要SUPER,REPLICATION CLIENT权限执行此操作 我们都在反对相同的数据库,如果我检查特权,我可以看到: 授予所有特权。 TO'usermysql'@'%'IDENTIFIED BY PASSWORD'password' 我的电脑有问题..但我不能确定它在哪里.. 谢谢 编辑: 这有点奇怪..它远程通过VPN。 但是,如果我改变了互联网连接,那么它的工作原理..如果以前的互联网连接恢复,它不.. 我们可以把这个分类在世界的奥秘之中吗? 或者有人有一个想法?
我有一个运行的MySQL系统,没有任何日志logging打开。 如何在不重新启动服务器的情况下启用日志logging? 我需要找出为什么MySQL复制失败。 BTW。 我试过/etc/init.d/mysqld重载 但重新加载不是一个有效的选项。 这个系统运行电话,所以重新启动它很可能会掉电话,我不能做。 也尝试在mysql命令提示符下设置log_error ='/ var / log / mysql / error.log',但它回来并说没有这样的系统variables。 然而,显示variables列出它。
build议我解决scheme来跟踪testing数据库中的变化,并在另一个数据库中复制… 我的客户需要一个脚本或任何解决scheme,如果他有两个数据库,一个testing数据库,他在testing门户网站上testing他的数据,如果他觉得合适的话,他可以在主数据库中使用这些变化在Live网站上显示。 Fior这个他需要解决scheme来logging或者跟踪所有的更新/删除/插入,这样他可以在主DB中做同样的事情,如果find合适的话, NOTE: 我们只有一个服务器,没有单独的服务器,因此二进制日志复制似乎没有为我的情况工作..