标签: replication

使用 mysqldump 设置一个 MySQL slave 来获取初始数据

我有一个主数据库,其中已经有一些数据。master 数据库中的表包括 MyISAM 和 InnoDB 引擎。现在我想使用mysqldump来转储我的从 MySQL 服务器的初始数据。我应该传递给 mysqldump 的参数是什么?目前我使用的是下面列出的。

mysqldump --host=localhost --user=root --password=pa4word --single-transaction --lock-all-tables --master-data=1 mydb > result.sql
Run Code Online (Sandbox Code Playgroud)

这个命令可以吗?我不知道这是否适合我的环境(MyISAM 和 InnoDB 引擎表在一个数据库中)。

谢谢,

mysql innodb myisam replication mysqldump

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

mysql 复制在什么情况下可能会中断?

我在主/从配置模式下运行 mysql 服务器。有多个从主从复制。它们工作正常并且它们的复制状态受到监控。

其中一名奴隶为特殊目的服务。开发人员给了我一组要在从属 A 上复制的从属数据库上运行的更新查询。

他们正在更新数据库表中的旧记录(修改大量记录的列数据)。

问题

  • 有什么办法可以弄清楚给定的查询是否会破坏复制?
  • 对于将来,我如何确定查询是否会破坏复制?

mysql replication

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

MySQL Slave 复制:需要确定复制在哪里停止以在正确的位置启动从属

我白痴重新引导用作MySQL从一台机器,而无需运行STOP SLAVEFLUSH TABLES第一。

我原以为 MySQL 会在机器重启期间自动处理所有这些,但显然它没有,至少在我使用的配置中没有,因为 SLAVE 没有启动备份。

mysqld确实启动了,但日志中有一条错误消息,表明从属部分由于重复的主键问题而停止。这意味着它正在尝试插入已经添加的数据。

以下是mysql日志中产生的错误:

120104 11:07:54 [Warning] Slave: Duplicate entry '94459' for key 'PRIMARY' Error_code: 1062
120104 11:07:54 [ERROR] Error running query, slave SQL thread aborted.
    Fix the problem, and restart the slave SQL thread with "SLAVE START".
    We stopped at log 'mysql1-bin.000362' position 3384732
Run Code Online (Sandbox Code Playgroud)

如何确定进程需要从主二进制日志中的哪个位置开始运行CHANGE MASTER语句?我知道我可能会使用 跳过日志条目,sql_slave_skip_counter但不知道要跳过多少,我需要一个一个地进行,这可能需要一整天。

mysql replication

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

PostgreSQL 流复制损坏:无效幻数,乱序时间线 ID

出于某种原因,我的 PostgreSQL 从站不再流式复制主站上的更改。之前可以用,有段时间了,最​​近发现slave的数据库内容很旧,slave的日志文件有错误,分别是“无效幻数0000 ”和“乱序时间线ID 1(之后2) ”。

你知道我该如何解决这个问题吗?或者为什么会发生?

详情如下。

日志文件错误消息:(在从站上,pg_log/postgresql-Sat.log)

LOG:  entering standby mode
LOG:  redo starts at 0/1C78848
LOG:  consistent recovery state reached at 0/1C7FA30
LOG:  database system is ready to accept read only connections
LOG:  invalid magic number 0000 in log file 0, segment 1, offset 14942208
LOG:  streaming replication successfully connected to primary
LOG:  out-of-sequence timeline ID 1 (after 2) in log file 0, segment 1, offset 0
FATAL:  terminating walreceiver process due to administrator …
Run Code Online (Sandbox Code Playgroud)

postgresql replication

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

为什么 MySQL 上不是默认的混合模式复制

众所周知,从 MySQL 5.1.12 到 MySQL 5.1.28 的默认混合模式复制。然而,这被恢复了,并且在当前时刻,基于语句的复制是默认的。

在声明默认基于语句的复制中,Oracle声称这只是因为混合模式复制构成了一种行为改变,可能会引起一些用户不知道。(另请参阅Bug 39812。)然而,MySQL 5.1 有许多行为变化,因为混合基复制的好处如此明显(我相信每个 DBA 都遇到过复制失败的情况,因为用户提交了一个查询没有正确复制并导致他们的数据库出现分歧),这似乎不是一个特别有力的理由。

有一些人抱怨混合复制“可以提供两全其美,但需要测试”,但我们已经在 MySQL 5.1.61 上,人们希望现在所有错误都已解决。所以这让我们很困惑。为什么混合模式复制不是默认的?

mysql replication mysql-5.1

6
推荐指数
2
解决办法
4184
查看次数

在 MySQL 上使用 Tungsten 将更改从另一个主服务器中继到从服务器

我正在尝试设置多主类型的复制,每个主都有一个使用 Tungsten 的附加从。例如,假设我有 4 台主机(A、B、C、D),主机 A 和 C 是主机,B 是 A 的从属,D 是 C 的从属。

使用我当前的配置,我将向 A 添加数据。这被复制到它的从属 B 和另一个主 C 没有问题。我将数据添加到 C 时也会发生同样的情况,它的从站 D 得到更新,另一个主站 A 得到更新。问题是当 A 更新时,D 将看不到更改。我不希望 A 更新 D,而是让 D 从 C 获取所有更新,这也会让 B 从 A 获取所有更新。

这是我一直在研究的配置脚本。

MASTER1='master1-ca' #<-- 'A' from example
MASTER2='master2-va' #<-- 'C' from example
SLAVE1='slave1-ca'   #<-- 'B' from example
SLAVE2='slave2-va'   #<-- 'D' from example

./tools/tpm configure defaults  \
    --reset \
    --replication-user=tungsten \
    --replication-password=password \
    --home-directory=/home/tungsten/PCS_DB \
    --datasource-mysql-conf=/etc/mysql/my.cnf \
    $( cat ./cookbook/security.options …
Run Code Online (Sandbox Code Playgroud)

mysql replication tungsten-replicator

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

MySQL 复制:重复条目 - SQL_SLAVE_SKIP_COUNTER 或删除行?

我有一个系统将一个数据库复制到四个从服务器。时不时地,当流量很高时,一个或多个从服务器遇到重复插入错误并且从服务器停止运行。

发生这种情况时,我有两个选择 - 我可以SET GLOBAL SQL_SLAVE_SKIP_COUNTER或者我可以删除从属设备中的违规行。两者似乎都可以工作,我的逻辑说,如果发生了一些事情导致了这个问题,那么从站中的数据可能已损坏。鉴于这只能发生在 INSERT 上,通过删除该行,我保证一旦复制恢复,从属数据将与主数据相匹配。通过跳过,如果该行的数据在从站中损坏,它将保持损坏状态。

我错过了什么吗?

此外,鉴于这在两个特定表上每几个月发生一次,是否有任何理由我不应该自动执行在遇到此错误时触发的过程,删除从属中的该行并重新启动从属?

编辑:我相信 MySQL 5.5.29 和语句复制。

mysql replication

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

MySQL:设置 skip-errors=1062 时行会发生什么

我发现我可以skip-errors=1062在中设置,my.cnf但我需要知道发生错误时该行会发生什么。它会被悄悄丢弃吗?或者那个配置选项相当于STOP SLAVE;SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;

mysql replication

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

当中断对 Master 的查询时,它会复制到 Slave 吗?

在 MySQL 中,master 什么时候向 slaves 发送查询?

这是我试图理解的一个特定场景。

  • 管理员在 master 上输入了一个需要很长时间才能执行的更新。
  • 管理员点击Ctrl-C停止查询。

我看到可能发生的四种情况:

  1. 从站上什么也没发生,因为主站等待查询执行完毕,然后再将查询发送给从站。
  2. 从站上发生了巨大的更新,因为主站立即传递了查询,并没有将查询传递^C给从站。
  3. 在从站上发生与主站相同的更新,因为主站立即将查询传递^C给从站,并将查询传递给从站。
  4. 在从站上发生与主站相同的更新,因为主站将每个单独的更新传递给从站。

其中哪一项是实际发生的?

mysql replication

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

MySQL 复制工作正常,但在 280000 秒时仍显示“Waiting for master to send event”

重复标题:MySQL 复制工作正常,但 mytop 仍然显示一个线程“等待主发送事件”。这几天一直这样,现在是280000秒。但是复制就好了。

我可以看到另一个正在执行复制工作的线程,现在它位于“从属已读取所有中继日志;正在等待从属 I/O 线程对其进行更新”但它一直在运行查询,我可以验证从站只是通过查看数据是最新的。

我可以终止这个进程吗?

我最近不得不重新设置复制,这涉及创建一个新的复制用户,所以我不确定这是否是导致这个“幽灵复制过程”的原因。

mysql replication

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