我们在 Azure SQL(平台即服务)中有一个异地复制数据库。这是主/从类型排列,因此异地复制数据库是只读的。
我们希望定期从该 Azure SQL 数据库下载数据到具有相同架构的本地 SQL Server 数据库,而不会对性能产生太大影响(Azure 数据库是应用程序使用的主数据库)。
我们最初查看 Azure SQL 数据同步,希望从异地复制数据中读取数据并将其拉到本地,但它需要创建触发器 + 跟踪表。我对此并不太满意,因为不可能对只读从数据库运行它,因此必须在事务主数据库上设置它(影响应用程序性能),这反过来又会重新- 在异地复制数据库上创建这些额外的数据同步工件。看起来很混乱,数据臃肿(我们有大量的表和数据,Azure PaaS 数据库的大小受到限制),而且我们还使用 Redgate 数据库生命周期管理,这可能会破坏这些架构对象和跟踪表每次我们执行发布时,因为他们
还有哪些其他可行的选择(除了远离 PaaS 并在本地和云上创建集群 IaaS VM 环境,安装 SQL Server,打补丁等)。请记住,我们在人员方面资源紧张,这就是为什么 PaaS 最初是我们数据库的理想场所。
我应该提一下,我们希望本地数据库与 Azure 数据库“相对”同步,但本地数据最多可以是一小时前的数据。
在我的脑海中,一些选项可能是 SSIS 包?或者以某种方式定期下载数据库的 Bacpac 并每 30 分钟在本地恢复一次(但它是一个非常大的数据库)。
请注意,在这个阶段它只需要是单向的(从 Azure 到本地)。