【发布时间】:2015-06-20 08:31:57
【问题描述】:
我有一个存在于第三方的数据库的“日志传送”副本。日志传送每 15 分钟运行一次,此时与数据库的所有连接都将被删除。该数据库用于报告目的。
我决定将一些数据从日志传送(只读)数据库中提取到一个每晚刷新的新数据库中。这将允许用户连接到新数据库,而不会因日志传送而失去连接的风险。 (它还允许使用更精细的安全权限,因为只读副本无法编辑)
我可以想到 2 种模式来实现这一点。
- 删除表、创建表、创建索引
- 使用 MERGE 语句插入/更新/删除记录
我已经使用上面的方法1实现了解决方案,效果很好。
每天删除所有数据对我来说有点沉重。上述方法 1 是否有任何副作用让我转而使用方法 2?
为了提供规模感,我只同步 3 个表,
Table 1 - 38 columns - 13,110 rows
Table 2 - 82 columns - 17,421 rows
Table 3 - 22 columns - 249 rows
生成的数据库约为 1.3 GB。 (里面还有一些其他的表)
我希望得到有关方法 1 和 2 的指导,以及是否还有其他我没有考虑的方法。
【问题讨论】:
-
您是否研究过事务复制?我没有足够的专业知识来实际提供更多帮助,但它可能是一个值得一看的选择
-
我没有在这个问题的上下文中对此进行研究,因为日志传送是我们的供应商支持为我们获取数据副本的方法。我假设由于日志传送的副本是只读的,我不能将它用于事务复制。
标签: sql-server tsql stored-procedures log-shipping