如题,我在RDS上购买配置了一个Mssql2008R2的实例,配置好账户和数据库,在本地物理机上安装了Mssql2008R2server 通过 SQL Server Management Studio 可以连接到RDS实例上,但目前有这样一个想法,想定期将RDS上的数据同步到本地数据库中。实现数据库的 云端---本地 同步。打算使用mssql的 发布---订阅 功能来实现数据同步。于是在 SQL Server Management Studio上配置发布,却弹出无法连接的错误提示。可我明明已经连接上去了呀。
我对数据库了解的并不是很多,对 云端---本地 同步这样的需求除了“发布---订阅”外,还有什么其他的解决方式。
还有Mysql如果也要和本地同步有什么类似的方法
望大家 不吝赐教~!谢谢~!!
最佳回答:
首先,从你的功能需求点来讲属于混合云的概念了。目前阿里云RDS SQL Server还没有对混合云的需求有很好的产品支持。
其次,关于错误的解释,RDS SQL Server 2008R2,用户的连接地址是一个虚拟的地址。因为我们是双机高可用版本,用户的这个地址后面挂了两台SQL Server实例,当主库挂掉以后,会在30秒内切换到备库。所以,SSMS报错(仔细看看错误信息的意思)。
再次,根据近10年的SQL Server维护经验来看,建议慎重使用发布订阅(其实是Replication技术,中文名叫复制),这个里面有太多的坑和不可控因素,具体体现在:
每个数据库的Log Reader是单线程,效率非常低,尤其是做大事务操作,写了很多事务日志的时候,LogReader执行超时,挂起。
Replication极易报错,比如:主键冲突,数据不存在,更新冲突检测等
Replication后期维护成本很高,必须依赖于强大的监控系统,错误检测系统,错误自动修复系统等,否则,人为维护工作量太大
Replication是基于表级别的,也就是有新表建立的时候,需要从头建立Replication,走一遍。
Replication对大表支持力度很弱。如果表中有大字段,同步效率更低了。
最后,最后,关于如何将RDS数据同步到本地,三种方法:
使用DTS做数据导出,导入到本地
使用用户控制台,下载数据库全备,然后在本地环境恢复
使用BCP命令,导出数据,然后BCP导入到本地环境,参见这个视频: https://help.aliyun.com/document_detail/52050.html?spm=5176.doc52050.6.705.7PrxRE
官方帮助文档地址:阿里云帮助中心
更多可参考官网:阿里云官网
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。