标签: replication

执行查询时合并复制失败

今天早上我的合并复制工作正常。从一两个小时前开始,我的同步状态窗口一直显示此消息:

线程 ID 3108 将等待 15 秒,然后重试发布者“MSI-SQL-MAS01”上的查询。

谁能告诉我这是怎么回事?该数据库大小为 500Gb,而且使用率也很高。但是,复制必须工作,我们需要保持订阅者处的数据库同步。

这也是我在一分钟左右后看到的:

在发布者 'MSI-SQL-MAS01' 上执行的查询失败,因为连接被选为死锁的受害者。如果在合并过程进行内部重试后仍然看到此错误,请重新运行合并过程。

就像我刚才说的,今天早上复制工作正常。我还像建议的错误一样重新启动了合并代理,但没有结果。

我也试过

更新 sysmergepublications 集 [generation_leveling_threshold] = 0

在订阅者和发布者数据库中,但似乎没有运气……有时也会出现以下错误:

合并进程正在重试对文章“xx”所做的失败操作 - 原因:“合并进程无法同步行。”。

提前致谢。


我再也看不到我以前的错误了。我现在唯一得到的是:

“合并进程正在重试对文章 'xx' 进行的失败操作 - 原因:'合并进程无法同步该行。'。”

探查器对我来说毫无意义。我没有看到任何相关信息。

如果我重新初始化订阅,它会做什么?我希望我不需要为此创建新快照,因为此时这是不可能的。数据库大小超过 500Gb,快照需要 9 多个小时才能完成。数据库一直在生产中并且使用非常频繁,因此锁定数据库以创建快照实际上是行不通的。


好吧,这就是我在冲突查看器中看到的:

'master_server' 和 'slave_server' 都更新了同一行。解析器选择来自“master_server”的更新作为获胜者。

当我们的应用程序连接到主服务器时,如何在主服务器和从服务器上更新同一行?看起来有些东西正在用不同的内容更新两台服务器上的同一行并导致合并代理崩溃?

replication sql-server merge

7
推荐指数
1
解决办法
3788
查看次数

备份/还原使用复制的数据库时 SQL Server 的注意事项

如果我需要还原涉及复制的数据库,我需要牢记哪些注意事项?

  • 我需要保留发布者和订阅者的备份吗?
  • 我可以只恢复发布者并让订阅者自动同步吗?
  • 如果订阅者崩溃,是否可以从备份中恢复并自动同步?

replication sql-server backup sql-server-2008-r2 restore

7
推荐指数
1
解决办法
1608
查看次数

一些 MySQL 从站错误?

  • 主版本:mysql-server-5.5.14-1.el5.remi
  • 从版本:Percona-XtraDB-Cluster-server-5.5.24-23.6.340
  • Binlog格式:基于ROW

我正在使用PRM为 MySQL 设置 HA。

有时,MySQL slave 因一些错误而停止:

Error executing row event: 'Table 'reportingdb.tvc_ads_tag_date' doesn't exist'
Run Code Online (Sandbox Code Playgroud)

[Warning] Slave SQL: Could not execute Update_rows event on table reportingdb.7k_banner_channel_tmp; Can't find record in '7k_banner_channel_tmp', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000854, end_log_pos 859094925, Error_code: 1032

120828 0:36:13 [Warning] Slave SQL: Could not execute Write_rows event on table reportingdb.7k_bookings_ver; Duplicate entry '1518' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.001022, end_log_pos …

mysql replication mysql-5.5

7
推荐指数
2
解决办法
3万
查看次数

为什么复制删除需要系统管理员访问

我正在使用 SQL 2012 运行合并复制。

在 SQL 2012 中为复制添加的删除触发器似乎有一个令人讨厌的后果。

在删除触发器里面是这样的,

select @xe_message = CAST('replica_id: ' + convert(nvarchar(100), @replnick) + ', article_id: ' + convert(nvarchar(100), @tablenick) + ', rowguid: ' + case when @article_rows_deleted = 1 then convert(nvarchar(100), @rowguid) else N'0' end + ', generation: ' + case when @is_mergeagent = 1 then N'0' else convert(nvarchar(100), @newgen) end + ', Reason: -1' AS varbinary(1000));
        exec master..sp_repl_generateevent 1, N'Event : ppm_insert', @xe_message
Run Code Online (Sandbox Code Playgroud)

如果某人不在系统管理员角色中进行删除,则会发生错误,

Msg 8189, Level 14, State 10, Procedure sp_repl_generateevent, Line 1 …
Run Code Online (Sandbox Code Playgroud)

replication sql-server merge-replication

7
推荐指数
1
解决办法
1207
查看次数

事务复制不发送所有命令

我有一个事务复制拓扑如下:

纽约出版数据库同一台服务器拥有分销商

纽约 - 订阅者
LON - 订阅者
HK - 订阅者

我们正在使用沼泽标准的单向事务复制。所有机器 SQL 2008 R2

快照可以很好地应用于所有订阅者,然后开始分发命令,正如您所期望的那样,但仅对于一个订阅者(伦敦),一大堆 2000-400 万个命令就会“卡住”。您可以在 msrepl_commands 中看到命令,在 msrepl_transaction 中可以看到事务。复制监视器显示有 xxxxx 未传递的命令。所有命令都被毫无问题地传递给其他 2 个订阅者。

问题是他们只是呆在那里。复制监视器说没有什么可复制的,什么也没有发生,它们只是停留在原地。我找到的唯一方法是拆除订阅并重新初始化!?!

我知道 NY 和 Lon 之间存在网络“信号”,我可以在 msrepl_errors 中看到存在一些通信故障。但是,我希望复制能够将它们恢复原状?分发代理运行良好。

我如何解决这个问题,并强制 SQL Server 选择这些命令并交付它们。

replication sql-server sql-server-2008-r2 transactional-replication

7
推荐指数
1
解决办法
2195
查看次数

RDS 上的 MySQL,作为生产作业从一个实例到另一个实例的数据传输

我有一个 MySQL RDS 实例(“生产”),我需要从中将增量数据复制到另一个 MySQL RDS 实例(“报告”)。“增量数据”是某些表中的新行。目前,我通过一个 PHP 脚本完成此操作,该脚本根据上次更新时间从“生产”查询并将 CSV 文件写入磁盘,然后使用 mysqlimport.exe 将文件导入“报告”。

我目前的方法需要大约 80 秒。这是最强大和最有效的方法吗?我找到了其他用于“一次性”传输的工具,但没有找到“企业增量数据库复制”工具。

由于报告端的批处理操作,我们当前的过程不是“连续”复制。不过这可能是可以协商的。放松这种限制会打开工具,使这变得容易吗?

相关相关文章/问题:亚马逊关于导入数据的文章好像主要是处理批处理(初始加载)的情况。 http://aws.amazon.com/articles/2933

当在同一实例上从一个数据库移动到另一个数据库时,这可以通过存储过程来完成(我的问题是它们是不同的实例)。请参阅:保持 MySQL 暂存数据库在同一台服务器上从生产更新
我不能将两个数据库放在同一个实例上,因为我们的实例负载相当大。

mysql replication aws amazon-rds

7
推荐指数
1
解决办法
5272
查看次数

SQL Server 复制订阅标记为非活动

有什么方法可以强制 SQL Server 永远不要将订阅标记为非活动状态?

当出现连接问题并且我不想每次都重新初始化订阅时,它会偶尔发生。

请注意,我不是在谈论订阅被标记为过期......就像不活动一样。

我们将保留设置为 0(无限)。我宁愿拥有一个大型分发数据库,​​也不愿通过 WAN 为订阅者重新初始化 15GB 的数据库。无论如何,这里真正的问题是,它们有时会在短短几个小时内被标记为不活动……或者有时是几天……这似乎是零星的。有什么方法可以告诉为什么 SQL 决定将它们标记为非活动状态?

replication sql-server-2005 sql-server

7
推荐指数
2
解决办法
3万
查看次数

用于异地复制的 SQL Server 复制

我们内部拥有主 SQL Server(目前有 15 个主服务器(总共约 500 个数据库),大多数服务器具有十六进制核心处理器)。

这些被镜像到附近建筑物中的其他备份服务器(通过专用的 0ms 光纤链路)。

我们想要做的是在数英里外的异地数据中心维护我们数据的实时副本(作为更大的 DR 项目的一部分 - 即如果我们所在地区存在通信问题)。

目前我们使用 SQL Server 2008 R2 - 标准版。

显然,使用 SQL Server 2008 R2 的“标准版”将我们限制为同步镜像,因为异步是“企业版”功能。

我们已经完成了异地同步镜像的测试,但延迟使它成为不可能。

我很想升级到 SQL Server 2012 Enterprise 并实施 AlwaysOn 可用性组,但该公司不愿意花费 100,000 英镑以上来升级 SQL 许可(2012 年的每核许可 + 我们的六核处理器 = 史诗般的失败)-他们甚至不愿意花钱升级到 2008 Enterprise,所以这也是窗口之外的异步镜像。

因此,由于这些财务限制,我的手被束缚在 2008 R2 标准版上。

留给我的唯一选择是日志传送和复制(如果我遗漏了什么,请纠正我)——日志传送很粗糙——但是如果管理得当是可行的——所以我们现在把它放在次要位置。

我的问题:

  1. SQL Server 2008 R2 Standard 是否具有我们进行异地复制所需的所有复制功能?
  2. 在不以任何方式影响主服务器性能的情况下,将内部服务器复制到异地数据中心(20-30 毫秒延迟)是否可行(我们是否可以在“原则”服务器上设置复制分发服务器)?
  3. 鉴于复制不是实例级复制解决方案 - 这是否会超过 1 个 DBA 可以处理的管理?(鉴于我已经在管理 15 台 Principle 服务器及其镜像服务器 - 诚然有很多自动化)
  4. 是否可以在不影响现有镜像配置的情况下从我们的主复制 - 我的理解是最佳实践是镜像订阅服务器而不是发布服务器 - 这是正确的吗? …

replication sql-server mirroring sql-server-2008-r2 high-availability

7
推荐指数
1
解决办法
2180
查看次数

为什么我会收到“发布的初始快照尚不可用。”?

我们正在使用具有可更新订阅的事务复制。1 个发布者,1 个订阅者。

SQL 复制在 3/6 上午 10 点开始遇到约束错误,因为两个不同办公室的人员输入了违反唯一约束的数据。完全符合预期。

但是,在 3/6 的下午 12:08,SQL Replication 停止报告该错误,而是说:

“发布'TheDB'的初始快照尚不可用。”

为什么它会停止重试复制,而是开始抛出此错误?现在我们需要重新生成快照。

  • 此时未执行数据库备份或还原
  • 几个月前,当最初设置复制时,快照已成功应用于订阅者。
  • 3/6 12:07 的日志里有一条消息说

[000] 请求运行作业 COTOPSVR\TheDB-TheDB-COTCPSVR\DB-3(来自用户 CTOB\Administrator)被拒绝,因为该作业已经根据用户 sa 的请求运行

  • 没有人在下午 12:06 手动启动任何工作或做任何事情。

有任何想法吗?我知道如何解决这个问题……我想防止这种情况再次发生。

replication sql-server-2008 sql-server transactional-replication

7
推荐指数
2
解决办法
3万
查看次数

将监控复制状态的 MySQL 用户的权限?

我想使用脚本来监控 MySQL 数据库的复制状态,就像在这个 bash 脚本中一样:https : //gist.github.com/wesdeboer/1791632

我想创建一个仅用于查询复制状态的用户。所以基本上这个用户只需要运行以下命令:

"SHOW SLAVE STATUS \G"
Run Code Online (Sandbox Code Playgroud)

我需要授予用户的最低权限集是什么?

(这甚至是可以GRANT编辑的东西吗?

mysql replication permissions

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