在事务复制期间,我们将数据从服务器 A 传输到服务器 B。
假设我们要在服务器 A 上的表上重新植入身份列(无论出于何种原因),这将如何影响服务器 B 上的数据?
我的直觉是,服务器 A 上的数据将使用新播种的身份,并将按原样发送到服务器 B(服务器 B 将具有使用新身份的内容),但我不确定这是否是正确的。
这个问题(SQL Server 事务复制分发器)提到了一篇博客文章HERE,其中讨论了分发数据库如何与发布者和订阅者相关的工作方式。看起来很清楚。
这是Distributor一个成熟的 SQL Server 实例吗?我知道它可以在单独的服务器上运行,所以看起来就像这样。如果不是,分发服务器和 SQL Server 实例之间有什么区别?
我从这篇文章中猜想,发布者的事务日志存储在分发数据库中,然后由订阅者读取。这就是所谓的“事务复制”吗?还有其他类型的复制吗?
是否可以复制 SQL Server 数据库并让副本拥有临时/历史表?
详细信息:
我有一个生产系统,运行 SQL Server 2014。我想要一个副本数据库,并且我还想跟踪历史更改。
将生产数据库复制到 SQL Server 2016 实例并跟踪时态/历史表的更改将是理想的选择。
这可能吗?
这在 Azure 上可能吗?
编辑:第 2 部分
在大卫·布朗的出色回答和进一步阅读之后,我有了更多的方向和更多的问题。我将使用 Azure SQL 数据库/逻辑服务器。我将使用事务复制,因为 1. Azure SQL 数据库支持它,2. 我们可以在发布者 (Sql Server 2014) 上禁用时态表,并在订阅者 (Azure SQL 数据库/逻辑服务器) 上启用时态表。大卫·布朗的出色回答。
第 2 部分问题:当“发布者”数据库成为发布者时,它会承受多少额外负载?
设置此功能时如何避免停机和锁定发布者?
我有多个“发布者”数据库。我可以在一个 Azure SQL 数据库/逻辑服务器实例上拥有多个订阅者数据库吗?
replication sql-server sql-server-2014 temporal-tables sql-server-2016
我已经安装了 SQL Server 2019 RC1,但无法创建快照。当我运行快照代理时,我不断收到相同的消息:
2019-10-30 12:32:41.59 Microsoft (R) SQL Server Snapshot Agent
2019-10-30 12:32:41.59 [Assembly Version = 15.0.0.0, File Version = 15.0.1900.25]
2019-10-30 12:32:41.59 Copyright (c) 2016 Microsoft Corporation.
2019-10-30 12:32:41.59 The timestamps prepended to the output lines are expressed in terms of UTC time.
2019-10-30 12:32:41.59 User-specified agent parameter values:
2019-10-30 12:32:41.59 --------------------------------------
2019-10-30 12:32:41.59 -Publisher DB100
2019-10-30 12:32:41.59 -PublisherDB REF3_DB
2019-10-30 12:32:41.59 -Publication REF3_PDR4
2019-10-30 12:32:41.59 -Distributor DB100
2019-10-30 12:32:41.59 -DistributorSecurityMode 1
2019-10-30 12:32:41.59 -XJOBID 0xA694274CD89FAF418C8B059F22C01B85
2019-10-30 …Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
ERROR: canceling statement due to conflict with recovery.
Detail: User query might have needed to see row versions that must be removed.;
nested exception in org.postgresql.util.PSQLException:ERROR:canceling statement due to conflict with recovery.
Detail: User query might have needed to see row versions that must be removed.
Run Code Online (Sandbox Code Playgroud)
当我们使用长查询时,此错误发生在备用数据库上。我们使用 PostgreSQL 版本 12.0。一台主服务器和两台备用服务器。
您能给我们解决方案吗?
由于 mysql 错误日志中的一些警告,我有点恼火。示例 1:
[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
The statement is unsafe because it uses a LIMIT clause.
This is unsafe because the set of rows included cannot be predicted.
Statement: UPDATE `table` SET `status` = '1' WHERE `ID` = '15800' LIMIT 1
Run Code Online (Sandbox Code Playgroud)
我的同事写了这些语句,我一直想知道在使用显式 ID 时限制语句的目的。尽管如此,不使用 LIMIT也会出现此警告。
示例 2:
[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
The statement is …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 mysql 5.5 中安装半同步复制并尝试执行以下命令:
INSTALL PLUGIN 'rpl_semi_sync_master' SONAME 'semisync_master.so'
Run Code Online (Sandbox Code Playgroud)
但此命令引发以下错误:
Error Code: 1064. You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
''rpl_semi_sync_master' SONAME 'semisync_master.so'' at line 1
Run Code Online (Sandbox Code Playgroud)
请帮助解决这个问题。我们使用的是 Win7 Professional SP1 32 位操作系统。
谢谢你
我们有一个中等大小的 postgres 9.1 db,目前为 3TB,并且在未来几年内可能会变得更大。我们需要一个可靠且快速的解决方案来将这些数据移动到 oracle 11G 或 sql server 2012 数据库中。我们需要一个基于日志的解决方案,如复制或 CDC,具有最小的 postgres 服务器占用空间,而不是寻找基于代码的 ETL 解决方案,如 SSIS 或 SAP 数据服务。
它还应该能够有效地处理存储在 postgres 中的 blob/空间数据
我有一个 prod 数据库,比如 appdb,我只关心那个数据库中的数据。如某些教程所示,replicate-ignore-db为每个声明是否安全mysql,information_schema,performance_schema,test?我在从站上定义自己的分析用户并在那里管理权限。我不想要额外的用户或从主人那里调整人工制品,事实上我可以单独调整奴隶......但是,我不能背诵replicate-do-db和replicate-ignore-db在我的睡眠中的危险,正如这里的一些答案所建议的那样,所以我想知道我还应该做什么关心这种情况!
有谁知道设置 postgresql 9.3 从属设备来从 postgresql 9.2 主设备进行流式复制是否有问题?
replication ×10
sql-server ×4
mysql ×3
postgresql ×3
mysql-5.5 ×2
identity ×1
innodb ×1
logs ×1
ssms ×1
windows ×1