阿里云RDS For SQL Server项目部署注意事项

公司项目是使用的阿里云RDS SQL Server,记录一下在项目中遇到的一些需要注意的地方.

  • 阿里云RDS For SQL Server使用的是SQL Server 2008R2版本

  在开发环境需要与线上保持版本一致,防止因版本不一致造成部署到RDS后语句无法执行。

  • ECS与RDS可能会有时间差

  在ECS上设置阿里云提供的内网NTP服务器进行时间同步。

  • RDS连接之前需要先设置好白名单

  无论是使用ECS内网连接还是外网直连都需要先设置好IP白名单,因此,对应那些直接连接数据库的应用只能采取高风险的0.0.0.0/0或者留空不控制外网连接IP。

  • RDS权限仅支持数据库为对象的“可读写”与“只读”两种设置

  无法通过登录用户,数据库具体架构对象控制权限。

  • 控制台或者SMSS直连不能执行权限操作相关的语句

  由于RDS上是使用的用户实例,所以部署数据库后会在数据库中增加用户。这部分权限控制是由RDS管理的,用户无法控制。

  • 不支持DAC部署和升级

  部署数据库可以通过阿里云的数据库迁移工具进行在线式迁移部署(原数据库可以通过外网访问),或者将数据库导出为脚本进行导入脚本执行部署。

  • RDS的备份还原后与迁移前的数据库是不一致的

  数据与架构是一致的,但是上传到RDS后增加了额外的权限控制对象

  • 部分语句在DMS中执行会提示“不支持支持variant类型”

  使用SMSS直连可以执行,应该是查询优化器对该类型有做处理,而DMS上没有。

  • 不能使用表分区

  官方回复:目前MSSQL RDS 对分区表支持还有一些问题,目前先不建议您使用。

  • 全文索引无法自定义同义词词库

  同义词库需要修改目录下XML文件进行定义,RDS无法直接管理目录文件。

  • 不支持DISABLE TRIGGER ALL ON DATABASE语句

  触发器在升级前需要逐个停用。

  • DMS中无法添加作业

  支持作业,但需要使用SMSS连接后操作。

  • 不支持数据库邮件功能与警报

  性能警报可以使用阿里云提供的平台进行接收,但无法做到根据警报执行任务。邮件通知由于需要sa权限无法使用。

也可以看看