Amazon RDS - MS SQL DBA 任务

作为 RDS 服务,MSSQL DB 有许多 DBA 任务可用作托管服务。您无法通过 shell 访问 DB,但可以通过控制台或客户端软件中的命令执行各种 DBA 活动。以下是在 Amazon RDS Ms SQL 服务器中执行的最常见和最常用的 DBA 任务。

更改数据捕获

CDC 捕获对表中数据所做的更改。对用户表所做的更改会捕获到相应的更改表中。这些更改表提供了随时间推移的更改的历史视图。 SQL Server 提供的变更数据捕获功能使变更数据能够轻松、系统地使用。

在连接到 RDS MSSQL 服务器的 SSMS 中使用以下命令来启用和禁用 CDC。

#为 RDS DB 实例启用 CDC
exec msdb.dbo.rds_cdc_enable_db '<数据库名称>'

#为 RDS DB 实例禁用 CDC
exec msdb.dbo.rds_cdc_disable_db '<数据库名称>'

接下来,为了跟踪特定表中的更改,我们使用存储过程 sp_cdc_enable_table 和以下命令。

#开始跟踪表
exec sys.sp_cdc_enable_table   
   @source_schema           = N''
,  @source_name             = N'
' , @role_name = N'' , @captured_column_list = '' ;

修改 tempdb 数据库选项

tempdb 系统数据库是一种全局资源,可供连接到 SQL Server 实例的所有用户使用,并用于保存以下内容

  • 明确创建的临时用户对象,例如:全局或本地临时表、临时存储过程、表变量或游标。

  • 由 SQL Server 数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。

  • 使用行版本隔离或快照隔离事务的读取提交的数据库中的数据修改事务生成的行版本。

以下是如何针对各种 DBA 活动修改 RDS MSSQL tempdb 的示例。

# 将大小设置为 100 GB,文件增长率设置为 10%。
alter database[tempdb] 修改文件 (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

# 设置 MAXSIZE 属性以防止 tempdb 数据库使用所有可用磁盘空间。
alter database [tempdb] 修改文件 (NAME = N'templog', MAXSIZE = 2048MB)

# 缩小 tempdb 数据库文件大小并请求新大小
exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;

离线到在线转换

您可以使用以下命令将 Amazon RDS DB 实例上的 Microsoft SQL Server 数据库从离线转换为在线。

EXEC rdsadmin.dbo.rds_set_database_online name

非英语字符集

在创建 RDS MSSQL 实例期间,为数据库标记的默认排序规则是英语。但可以通过应用 COLLATE 子句以及排序规则名称将其更改为另一种非英语语言。以下示例说明了这一点。

CREATE TABLE [dbo].[Account]
(
    [AccountID] [nvarchar](10) NOT NULL,
    [AccountName] [nvarchar](100) COLLATE Japanese_CI_AS NOT NULL 
) ON [PRIMARY];