草庐IT

Replication

全部标签

mysql - 自己做MySQL行复制的问题

我正在尝试使用MySQLReplicationListenerLibrary在HostA和HostB之间做数据复制。复制基于行而非语句。我知道MySQL本身有这样的内置功能,但我想自己做---从HostA的bin日志中读取所有行更改并将所有这些更改应用到HostB。我遇到的问题是,我无法暂时禁用触发器,这会导致数据不同步。举个例子,假设要同步的数据库是TestSyncDB,里面有两个表Data和DataOp。数据表有一个触发器,一旦一条记录插入到该表中,触发器就会为DataOp生成一条新记录。现在一条新记录被插入到HostA.TestSyncDB.Data中,因为有一个触发器,所以实际

mysql - 自己做MySQL行复制的问题

我正在尝试使用MySQLReplicationListenerLibrary在HostA和HostB之间做数据复制。复制基于行而非语句。我知道MySQL本身有这样的内置功能,但我想自己做---从HostA的bin日志中读取所有行更改并将所有这些更改应用到HostB。我遇到的问题是,我无法暂时禁用触发器,这会导致数据不同步。举个例子,假设要同步的数据库是TestSyncDB,里面有两个表Data和DataOp。数据表有一个触发器,一旦一条记录插入到该表中,触发器就会为DataOp生成一条新记录。现在一条新记录被插入到HostA.TestSyncDB.Data中,因为有一个触发器,所以实际

mysql - 如何使用选择查询了解 MySQL 复制状态?

是否可以从任何系统数据库表中获取复制状态?使用它我可以确定复制是向上还是向下。我需要知道系统表中的SLAVE_IO_RUNNING和SLAVE_SQL_RUNNING=YES是否存在。 最佳答案 这是我根据Manasi的最佳答案使用的陈述。SELECTvariable_valueFROMinformation_schema.global_statusWHEREvariable_name='SLAVE_RUNNING'; 关于mysql-如何使用选择查询了解MySQL复制状态?,我们在St

mysql - 如何使用选择查询了解 MySQL 复制状态?

是否可以从任何系统数据库表中获取复制状态?使用它我可以确定复制是向上还是向下。我需要知道系统表中的SLAVE_IO_RUNNING和SLAVE_SQL_RUNNING=YES是否存在。 最佳答案 这是我根据Manasi的最佳答案使用的陈述。SELECTvariable_valueFROMinformation_schema.global_statusWHEREvariable_name='SLAVE_RUNNING'; 关于mysql-如何使用选择查询了解MySQL复制状态?,我们在St

mysql - 为什么 Master 认为它是 Reboot 的 Slave?

在一个简单的MySQL复制主从配置中,我遇到了一个问题,即主尝试在重新启动时作为从属连接到自身。所以当我在Master上重新启动MySQL时,我看到与试图复制到自身的同一台服务器相关的错误,我必须在每次重新启动MySQL时手动运行mysql-e"STOPSLAVE;".如何永久禁用master上的slave?这是my.cnf的相关部分:##Loggingbinlog_format=mixedlog_bin=/var/log/mysql/mysql-bin.logsync_binlog=1pid_file=/var/run/mysqld/mysqld.pidlog_error=/var/

mysql - 为什么 Master 认为它是 Reboot 的 Slave?

在一个简单的MySQL复制主从配置中,我遇到了一个问题,即主尝试在重新启动时作为从属连接到自身。所以当我在Master上重新启动MySQL时,我看到与试图复制到自身的同一台服务器相关的错误,我必须在每次重新启动MySQL时手动运行mysql-e"STOPSLAVE;".如何永久禁用master上的slave?这是my.cnf的相关部分:##Loggingbinlog_format=mixedlog_bin=/var/log/mysql/mysql-bin.logsync_binlog=1pid_file=/var/run/mysqld/mysqld.pidlog_error=/var/

mysql - 我可以使用 master 的 mysql binlog 作为 slave 的中继日志吗?

我有以下Mysql复制模式:A(master)->B(slave/master)->C(slave)A写入binlogB读取A的binlog应用relaylog写入自己的binlogC从B中读取并应用。如果复制由于某种原因(A->B)被破坏,我可以复制A的binlog,找到B最后执行的语句对应的位置并重放它。bin/relay日志中的事务/语句的顺序在所有复制链中是否相同?(复制使用一个线程,所以它可能是相同的顺序。)更新:我应该问这样的问题:“binlog中的语句/事务的顺序在所有复制链中是否相同?我们可以在任何主机上重放任何日志并重新指向任何从属设备(c)掌握(A)"似乎答案是:"

mysql - 我可以使用 master 的 mysql binlog 作为 slave 的中继日志吗?

我有以下Mysql复制模式:A(master)->B(slave/master)->C(slave)A写入binlogB读取A的binlog应用relaylog写入自己的binlogC从B中读取并应用。如果复制由于某种原因(A->B)被破坏,我可以复制A的binlog,找到B最后执行的语句对应的位置并重放它。bin/relay日志中的事务/语句的顺序在所有复制链中是否相同?(复制使用一个线程,所以它可能是相同的顺序。)更新:我应该问这样的问题:“binlog中的语句/事务的顺序在所有复制链中是否相同?我们可以在任何主机上重放任何日志并重新指向任何从属设备(c)掌握(A)"似乎答案是:"

mysql - 锁是否通过复制传播?

我有一个带有MyISAM表的Mysql主从复制。所有更新都在主服务器上完成,选择在主服务器或从服务器上完成。当我们进行某些更新时,我们可能需要手动锁定一些表。虽然此写锁定在表上,但锁定的表上不会发生任何选择。但是关于奴隶呢?锁是否传播出去?假设我有table_A和table_B。我在master上的table_A和table_B上启动锁定并开始执行更新。这时候没有其他连接可以从master上读取table_A和table_B?但是,如果此时另一个连接尝试从从站读取表,他们可以这样做吗? 最佳答案 MySQL复制的所有内容都可以在二进

mysql - 锁是否通过复制传播?

我有一个带有MyISAM表的Mysql主从复制。所有更新都在主服务器上完成,选择在主服务器或从服务器上完成。当我们进行某些更新时,我们可能需要手动锁定一些表。虽然此写锁定在表上,但锁定的表上不会发生任何选择。但是关于奴隶呢?锁是否传播出去?假设我有table_A和table_B。我在master上的table_A和table_B上启动锁定并开始执行更新。这时候没有其他连接可以从master上读取table_A和table_B?但是,如果此时另一个连接尝试从从站读取表,他们可以这样做吗? 最佳答案 MySQL复制的所有内容都可以在二进