pet*_*ter 2 replication sql-server-2008 sql-server identity
我正在使用事务复制来复制我们的实时数据库。这基本上是为了在服务器出现故障的情况下备份我们的数据库。
复制的数据库是只读的,因此我对其进行了备份、恢复和测试。
我立即注意到标识列不起作用。
例如,原始模式是这样的:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
然后,在复制的副本上,它看起来像这样:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
这意味着标识列已禁用,对吗?
有没有办法解决这个问题并使这个数据库本身成为一个独立的副本?
另外,我注意到没有传播外键。我知道有一些设置,但是既然标识列被禁用(哪些是主键),传播外键是否会成为问题?
如果您想要一份用于 HA/DR 的备用数据副本,那么使用日志传送或数据库镜像会更好。由于这些技术创建了物理数据库副本,因此您可以完全避免您提到的问题。此外,模式更改“复制”要容易得多。
如果您坚持事务复制,请使用备份而不是快照为您的副本做种子。有关分步指南,请参阅如何:从备份初始化事务订阅。
归档时间: |
|
查看次数: |
3615 次 |
最近记录: |