云服务器内容精选

  • 字符集排序规则 表2 排序规则说明 排序规则选项 说明 区分大小写(_ CS ) 区分大写字母和小写字母。 如果指定此项,排序时小写字母将在其对应的大写字母之前。 如果未指定此选项,排序规则将不区分大小写。 即RDS for SQL Server 在排序时将大写字母和小写字母视为相同。 通过指定 _CI,可以显式选择不区分大小写。 区分重音(_AS) 区分重音字符和非重音字符。 例如,“a”和“ấ”为不同字符。 如果未指定此选项,则排序规则将不区分重音。 即RDS for SQL Server 在排序时将字母的重音形式和非重音形式视为相同。 通过指定 _AI,可以显式选择不区分重音。
  • 服务器级别排序规则 下表为部分操作系统(OS)区域设置确定的默认排序规则。 表4 操作系统排序规则 Windows区域设置 默认排序规则 南非荷兰语(南非) Latin1_General_CI_AS 阿尔萨斯语(法国) Latin1_General_CI_AS 巴斯克语(巴斯克) Latin1_General_CI_AS 波斯尼亚语(波斯尼亚和黑塞哥维那,拉丁语) Latin1_General_CI_AS 保加利亚语(保加利亚) Cyrillic_General_CI_AS 中文(澳门特别行政区) Latin1_General_CI_AI 中文(中华人民共和国) Chinese_PRC_CI_AS 荷兰语(荷兰) Latin1_General_CI_AS 英语(澳大利亚) Latin1_General_CI_AS 英语(印度) Latin1_General_CI_AS 英语(加拿大) Latin1_General_CI_AS 英语(新西兰) Latin1_General_CI_AS 英语(英国) Latin1_General_CI_AS 英语(美国) Latin1_General_CI_AS 菲律宾语(菲律宾) Latin1_General_CI_AS 意大利语(意大利) Latin1_General_CI_AS 泰语(泰国) Thai_CI_AS
  • 支持的实例字符集 RDS for SQL Server当前支持的实例字符集如表1所示: 表1 支持的实例字符集 实例字符集 说明 Chinese_PRC_90_CI_AI Chinese-PRC-90,不区分大小写、不区分重音(兼容SQL Server 2005)。 Chinese_PRC_CI_AI Chinese-PRC,不区分大小写、不区分重音。 Chinese_PRC_CI_AS Chinese-PRC,不区分大小写、区分重音。 Chinese_PRC_CS_AS Chinese-PRC,区分大小写、区分重音。 Cyrillic_General_CI_AS Cyrllic_General,不区分大小写,区分重音。 SQL_Latin1_General_CP1_CI_AS 对于Unicode 数据为 Latin1_General,不区分大小写,区分重音。 THAI_CI_AS THAI,不区分大小写、区分重音。
  • 操作背景 公共语言运行库(CLR)是Microsoft .NET Framework 的核心,为所有.NET Framework代码提供执行环境。在CLR中运行的代码称为托管代码。CLR提供执行程序所需的各种函数和服务,包括实时(JIT)编译、分配和管理内存、强制类型安全性、异常处理、线程管理和安全性。 SQL CLR(SQL Common Language Runtime)是自SQL Server 2005才出现的新功能,它将.NET Framework中的CLR服务注入到SQL Server中,让SQL Server的部分数据库对象可以使用.NET Framework的编程语言开发(当前只支持VB.NET和C#),包括预存程序、用户自定义函数、触发程序、用户自定义类型以及用户自定义汇总函数等功能。但是要想执行CLR代码,首先要开启CLR特性。 更多介绍请参见Microsoft SQL Server官网公共语言运行时 (CLR) 集成编程概念。 CLR集成安全性相关内容请参见Microsoft SQL Server官网CLR 集成安全性。
  • 操作步骤 创建c#函数,编译出一个RDS for SQL Server的dll。 图1 c#函数代码 创建函数详细说明请参见官方文档。 使用S SMS 等工具连接数据库。 图2 连接数据库 选择需要创建程序集的数据库,添加对应的程序集。 只能创建safe模式(权限集显示为安全),不能创建其他模式。 dll文件会以十六进制的形式存入。如图4所示。 图3 新建程序集 图4 dll文件 执行程序,如图5所示表示执行成功。程序集中新增一个TESTS程序集,如图6所示。 图5 执行结果 图6 TESTS程序集
  • 数据库迁移 迁移上云完成后,需要进行以下检查: 需要检查权限完整性。权限会影响对于数据库的方案,迁移仅会完成数据恢复,数据库用户恢复,登录名等其他服务级权限需要重新创建,并且关联数据库账户。 需要对索引进行重建。由于迁移完成后数据文件的物理环境发生了改变,数据库索引会失效,需要对索引进行重建,否则可能会导致数据库性能有明显下降。 对比参数配置。迁移上云后RDS for SQL Server会使用云上的参数组,需要及时对比云下参数配置和云上是否匹配。由于云下参数配置是经过长期验证,所以请及时更新云上的参数配置。
  • 使用建议 不推荐创建加域实例,云数据库 RDS for SQL Server支持创建加域实例,加域实例的域控服务器在用户侧,用户拥有较高权限,域控服务器组策略配置会影响加入该域的机器,用户侧域控规则修改会导致数据库实例的权限安全风险增加。 单实例数据库数量不要超过100个。单实例可以承载的数据库数量跟实例规格相关,数据库数量过多会导致实例性能下降,占用Worker Thread等资源。 应用不能依赖SysAdmin权限。具有SysAdmin角色的账号有超级管理员权限,使用不当会导致数据库安全与稳定性受到威胁,云数据库不开放超级管理员权限,应用使用数据库不能依赖于此权限。 不要在系统库创建表。用户数据请创建用户自定义库存放,不要在系统库创建任何表写入数据,虽然开放了使用系统库的权限,但是任何在系统库存放的数据都是不安全的。 数据库不要打开Auto Close属性。用户库可以设置Auto Close属性,打开该属性后会导致包括建立复制关系无法建立的问题,并且该属性设置后不能正常的使用该库,强烈建议不要设置。 不要将数据库设置为Single User模式。Single User模式只允许一个Session访问数据库,会导致其他Session无法访问造成云数据库的运维问题。设置Single User模式请及时恢复到Multi User模式。 慢日志不要长时间打开。慢日志可以帮助进行慢SQL分析,但是长时间打开会导致性能损失,建议在不需要跟踪分析SQL问题时关闭慢日志。 定时重建索引。数据库在长时间使用后可能会产生较多的索引碎片,导致数据库访问性能下降,需要定时进行索引重建,可以采用创建SQL Agent Job的方式定时重建索引,建议一个月重建一次索引。 定时更新统计信息。数据库统计信息需要经常更新对于性能有益。建议采用创建SQL Agent Job的方式每周更新一次统计信息。 关注数据库大小,及时收缩数据库。数据库长时间使用可能会有一些物理空间无法及时释放,需要执行收缩数据库操作才能释放物理空间。需要关注日志文件大小及物理文件大小,发现文件膨胀迅速可以在业务低峰期收缩数据库。 数据库名长度不要超过64个字符,且数据库名当前仅支持数字、大小写字母、中划线(-)和下划线(_),不支持其他特殊字符。 建议修改默认端口。RDS for SQL Server默认端口为1433,公网上一些不安全的程序可能会扫描RDS for SQL Server的默认端口,建议修改默认端口。 推荐使用高可用主备实例。相比于单机实例,高可用实例可以极大提高生产业务的可用性和可靠性。 高可用实例请跨AZ部署,进行AZ级别的容灾。 建议长时间运行的实例在业务低峰期可以重启。实例长时间运行后可能会出现性能下降,推荐每三个月能够在业务低峰期重启一次实例。 设置最大并行度。最大并行度参数影响业务的CPU使用率。默认值为0允许Session使用所有CPU,可能由于某个SQL的问题导致CPU无法分配给其他Session使用。建议根据规格配置,如核数除以2。 临时库(TempDB)创建多个ndf辅助文件。 当执行操作出现权限问题时,请优先参考存储过程的使用,查找使用合适的存储过程。 如需修改SQL Server参数,请在控制台进行修改,不支持通过执行SQL命令方式修改。 备份恢复相关操作请通过管理控制台下发或调用RDS API接口、SDK接口下发,不能通过SSMS或执行SQL直接操作。迁移上云请参考 数据复制服务 (DRS)。 恢复数据到已有实例请谨慎操作,避免错误覆盖已有数据导致影响业务。建议使用恢复到新实例功能。 数据库恢复模式(Recovery model)不要设置为simple模式,建议使用full模式。 设置为simple模式将不会对该库执行增量备份,因此该库无法恢复到指定时间点。 对于主备实例或者集群实例,设置数据库恢复模式是simple模式后,会导致该库不会建立复制关系,进而无法操作主备切换或者规格变更。 因此,请谨慎使用simple模式。 不建议使用长事务或长时间未提交事务。长事务会长时间占用数据库的事务日志,造成事务日志膨胀并且无法阶段回收空间,最终导致磁盘满并造成大量锁等待,阻塞其他SQL执行。如果kill掉后会导致回滚时间更长,至少是事务执行的1.5倍,造成主备复制延迟增大,导致主备切换失败、主备的规格变更失败。