开发者社区> 问答> 正文

阿里云RDS如何与本地数据库执行数据同步

       如题,我在RDS上购买配置了一个Mssql2008R2的实例,配置好账户和数据库,在本地物理机上安装了Mssql2008R2server 通过 SQL Server Management Studio 可以连接到RDS实例上,但目前有这样一个想法,想定期将RDS上的数据同步到本地数据库中。实现数据库的 云端---本地  同步。打算使用mssql的  发布---订阅  功能来实现数据同步。于是在 SQL Server Management Studio上配置发布,却弹出无法连接的错误提示。可我明明已经连接上去了呀。
        


       我对数据库了解的并不是很多,对 云端---本地 同步这样的需求除了“发布---订阅”外,还有什么其他的解决方式。
       还有Mysql如果也要和本地同步有什么类似的方法
      
       望大家 不吝赐教~!谢谢~!!

展开
收起
杰克伦敦 2017-04-07 15:35:48 9008 0
5 条回答
写回答
取消 提交回答
  • 最佳回答:

    首先,从你的功能需求点来讲属于混合云的概念了。目前阿里云RDS SQL Server还没有对混合云的需求有很好的产品支持。

    其次,关于错误的解释,RDS SQL Server 2008R2,用户的连接地址是一个虚拟的地址。因为我们是双机高可用版本,用户的这个地址后面挂了两台SQL Server实例,当主库挂掉以后,会在30秒内切换到备库。所以,SSMS报错(仔细看看错误信息的意思)。

    再次,根据近10年的SQL Server维护经验来看,建议慎重使用发布订阅(其实是Replication技术,中文名叫复制),这个里面有太多的坑和不可控因素,具体体现在:

    1. 每个数据库的Log Reader是单线程,效率非常低,尤其是做大事务操作,写了很多事务日志的时候,LogReader执行超时,挂起。

    2. Replication极易报错,比如:主键冲突,数据不存在,更新冲突检测等

    3. Replication后期维护成本很高,必须依赖于强大的监控系统,错误检测系统,错误自动修复系统等,否则,人为维护工作量太大

    4. Replication是基于表级别的,也就是有新表建立的时候,需要从头建立Replication,走一遍。

    5. Replication对大表支持力度很弱。如果表中有大字段,同步效率更低了。

    最后,最后,关于如何将RDS数据同步到本地,三种方法:

    1. 使用DTS做数据导出,导入到本地

    2. 使用用户控制台,下载数据库全备,然后在本地环境恢复

    3. 使用BCP命令,导出数据,然后BCP导入到本地环境,参见这个视频: https://help.aliyun.com/document_detail/52050.html?spm=5176.doc52050.6.705.7PrxRE

    官方帮助文档地址:阿里云帮助中心

    更多可参考官网:阿里云官网

    2021-04-16 11:50:50
    赞同 展开评论 打赏
  • Re阿里云RDS如何与本地数据库执行数据同步
    非常感谢 风移 提供的建议和指导,让我对MSSQL有了更深层次的认识。回去好好研究下还有没有其他的更好的方式做同步
    2017-08-17 10:48:17
    赞同 展开评论 打赏
  • Re阿里云RDS如何与本地数据库执行数据同步
    记号备用什么鬼
    2017-06-14 14:39:37
    赞同 展开评论 打赏
  • 记号备用--关于如何将RDS数据同步到本地
    2017-06-12 01:22:15
    赞同 展开评论 打赏
  • 阿里云数据库专家,负责SQL Server数据库产品线。SQL Server从业10年,经历过SQL 2000、SQL 2005、SQL 2008、SQL 2008R2、SQL 2012、SQL 2014、SQL 2016和SQL on Linux各个版本。
    Re阿里云RDS如何与本地数据库执行数据同步
    首先,从你的功能需求点来讲属于混合云的概念了。目前阿里云RDS SQL Server还没有对混合云的需求有很好的产品支持。
    其次,关于错误的解释,RDS SQL Server 2008R2,用户的连接地址是一个虚拟的地址。因为我们是双机高可用版本,用户的这个地址后面挂了两台SQL Server实例,当主库挂掉以后,会在30秒内切换到备库。所以,SSMS报错(仔细看看错误信息的意思)。
    再次,根据近10年的SQL Server维护经验来看,建议慎重使用发布订阅(其实是Replication技术,中文名叫复制),这个里面有太多的坑和不可控因素,具体体现在:
    1. 每个数据库的Log Reader是单线程,效率非常低,尤其是做大事务操作,写了很多事务日志的时候,LogReader执行超时,挂起。
    2. Replication极易报错,比如:主键冲突,数据不存在,更新冲突检测等
    3. Replication后期维护成本很高,必须依赖于强大的监控系统,错误检测系统,错误自动修复系统等,否则,人为维护工作量太大
    4. Replication是基于表级别的,也就是有新表建立的时候,需要从头建立Replication,走一遍。
    5. Replication对大表支持力度很弱。如果表中有大字段,同步效率更低了。

    最后,最后,关于如何将RDS数据同步到本地,三种方法:
    1. 使用DTS做数据导出,导入到本地
    2. 使用用户控制台,下载数据库全备,然后在本地环境恢复
    3. 使用BCP命令,导出数据,然后BCP导入到本地环境,参见这个视频: https://help.aliyun.com/document_detail/52050.html?spm=5176.doc52050.6.705.7PrxRE
    2017-05-15 15:56:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载
阿里云企业级自治数据库 RDS 详解 立即下载
阿里云MySQL云数据库产品体系介绍 立即下载

相关镜像