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