针对 Amazon RDS Custom for SQL Server 排查数据库的问题
RDS Custom 的责任共担模型提供了操作系统外壳级别的访问权限和数据库管理员访问权限。RDS Custom 会在您的账户中运行资源,与 Amazon RDS 不同,因为后者会在系统账户中运行资源。访问权限更多,责任也更大。在下面的各个部分中,您可以了解如何排查 Amazon RDS Custom for SQL Server 数据库实例的问题。
注意
本节介绍如何排查 RDS Custom for SQL Server 的问题。有关排查 RDS Custom for Oracle 的问题,请参阅针对 Amazon RDS Custom for Oracle 排查数据库问题。
主题
查看 RDS Custom 事件
对于 RDS Custom 和 Amazon RDS 数据库实例而言,查看事件的流程是相同的。有关更多信息,请参阅查看 Amazon RDS 事件。
要使用 AWS CLI 查看 RDS Custom 事件通知,请使用 describe-events
命令。RDS Custom 推出了几项新事件。事件类别与 Amazon RDS 的事件类别相同。有关事件列表,请参阅 Amazon RDS 事件类别和事件消息。
以下示例检索指定 RDS Custom 数据库实例发生的事件的详细信息。
aws rds describe-events \ --source-identifier my-custom-instance \ --source-type db-instance
查看 RDS Custom 事件
对于 RDS Custom 和 Amazon RDS 数据库实例而言,订阅事件的流程是相同的。有关更多信息,请参阅订阅 Amazon RDS 事件通知。
要使用 CLI 订阅 RDS Custom 事件通知,请使用 create-event-subscription
命令。包括以下必需参数:
-
--subscription-name
-
--sns-topic-arn
以下示例为当前的 AWS 账户中的 RDS Custom 数据库实例创建了备份和恢复事件的订阅。您也可以将通知发送到 --sns-topic-arn
指定的 Amazon Simple Notification Service (Amazon SNS) 主题。
aws rds create-event-subscription \ --subscription-name my-instance-events \ --source-type db-instance \ --event-categories '["backup","recovery"]' \ --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events
RDS Custom for SQL Server 的 CEV 错误故障排除
当您尝试创建 CEV 时,可能会失败。在这种情况下,RDS Custom 会发出 RDS-EVENT-0198
事件消息。有关查看 RDS 事件的更多信息,请参阅 Amazon RDS 事件类别和事件消息。
以下信息可帮助您解决可能的原因。
消息 | 故障排除建议 |
---|---|
|
在您从 AMI 创建的 EC2 实例上运行 Sysprep。有关使用 Sysprep 准备 AMI 的更多信息,请参阅使用 Sysprep 创建标准化的 Amazon 机器映像(AMI)。 |
|
验证您用于创建的账户和配置文件对所选 AMI 的 |
|
确认 |
|
确保 AMI 存在于同一个客户账户中。 |
|
AMI 的名称不正确。确保提供正确的 AMI ID。 |
|
选择支持的 AMI,该 AMI 具有 Windows Server 以及 SQL Server Enterprise、Standard 或 Web 版。从 EC2 Marketplace 选择具有以下使用情况操作代码之一的 AMI:
|
|
使用包含支持的 SQL Server 版本的 AMI。有关更多信息,请参阅RDS Custom for SQL Server CEV 的版本支持。 |
|
不支持经典 RDS Custom for SQL Server 引擎版本。例如,版本 15.00.4073.23.v1。使用支持的版本号。 |
|
CEV 必须处于 |
|
目标 CEV 无效。检查对有效升级路径的要求。 |
|
遵循所需的 CEV 命名约定。有关更多信息,请参阅RDS Custom for SQL Server CEV 的要求。 |
|
提供了不支持的数据库引擎版本。使用支持的数据库引擎版本。 |
|
使用基于 x86_64 架构构建的 AMI。 |
|
从您拥有权限的 AMI 创建 EC2 实例。在 EC2 实例上运行 Sysprep 以创建和保存基本映像。 |
|
使用在 Windows 平台上构建的 AMI。 |
|
使用 EBS 设备类型创建 AMI。 |
|
选择支持的 AMI,该 AMI 具有 Windows Server 以及 SQL Server Enterprise、Standard 或 Web 版。从 EC2 Marketplace 选择具有以下使用情况操作代码之一的 AMI:
|
|
确保 AMI 的状态为 |
|
使用支持的 Windows 操作系统。 |
|
确认日志文件在 |
|
使用操作系统编译版本最低为 14393 的 AMI。 |
|
使用最低操作系统主版本为 10.0 或更高版本的 AMI。 |
修复 RDS Custom for SQL Server 中不支持的配置
由于责任共担模式,您应负责修复导致 RDS Custom for SQL Server 数据库实例进入 unsupported-configuration
状态的配置问题。如果问题与 AWS 基础设施有关,则您可以使用控制台或 AWS CLI 修复该问题。如果问题与操作系统或数据库配置有关,则您可以登录到主机进行修复。
注意
本节介绍如何修复 RDS Custom for SQL Server 中不支持的配置。有关 RDS Custom for Oracle 的信息,请参阅修复 RDS Custom for Oracle 中不支持的配置。
在下表中,您可以找到支持外围所发送的通知和事件以及如何修复这些问题的说明。这些通知和支持外围可能会更改。有关支持外围的背景,请参阅RDS Custom 支持外围。有关事件描述,请参阅Amazon RDS 事件类别和事件消息。
配置区域 | RDS 事件消息 | 描述 | 操作 |
---|---|---|---|
数据库。 | |||
数据库运行状况 |
|
支持外围会监控数据库实例状态。其还将监控前一小时和一天中发生的重启次数。 当实例处于仍然存在的状态时,您会收到通知,但您无法与其交互。 |
登录主机,并检查您的 RDS Custom for SQL Server 数据库的状态。
如有必要,请重启您的 RDS Custom for SQL Server 数据库实例,使其重新运行。有时您可能需要重启主机。 重启后,RDS Custom 代理会检测到数据库实例不再处于无响应状态。然后,它会通知支持外围以重新评估数据库实例状态。 |
数据库文件位置 |
|
预设情况下,所有 SQL Server 数据库文件都存储在 D: 驱动器上,位于 如果您创建或更改数据库文件位置,使其位于 D: 驱动器以外的任何位置,则 RDS Custom 会使数据库实例处于支持外围之外。 我们强烈建议您不要在 C: 驱动器上保存任何数据库文件。在某些操作(例如硬件故障)期间,您可能会丢失 C: 驱动器上的数据。C: 驱动器上的存储不能提供与 D: 驱动器上相同的持久性,后者为 EBS 卷。 此外,如果找不到数据库文件,RDS Custom 会使数据库实例处于支持外围之外。 |
请将所有 RDS Custom for SQL Server 数据库文件都存储在 D: 驱动器上。 |
共享内存连接 |
|
EC2 主机上的 RDS Custom 代理使用共享内存协议连接到 SQL Server。 如果此协议关闭(已启用设置为否),则 RDS Custom 无法执行其管理操作,并会将数据库实例置于支持外围之外。 |
要将 RDS Custom for SQL Server 数据库实例带回到支持外围内,请通过将已启用设置为是,在共享内存属性窗口的协议页面开启共享内存协议。启用协议后,重启 SQL Server。 |
操作系统 | |||
RDS Custom 代理状态 |
|
RDS Custom 代理必须始终运行。 支持外围会每隔 1 分钟监控主机上的 RDS Custom 代理进程状态。 在 RDS Custom for SQL Server 上,监控服务会恢复已停止的代理。如果卸载 RDS Custom 代理,则数据库实例将超出支持外围。 |
登录到主机并确保 RDS Custom 代理正在运行。 您可以使用以下命令查找代理的状态。
如果状态不是
|
SSM 代理状态 |
|
SSM 代理必须始终运行。RDS Custom 代理负责确保 Systems Manager 代理正在运行。 支持外围每隔 1 分钟会监控主机上的 SSM 代理进程状态。 |
有关更多信息,请参阅 SSM Agent 故障排除。 |
AWS 资源 | |||
Amazon EC2 实例状态 |
|
支持外围将监控 EC2 实例状态变更通知。EC2 实例必须始终运行。 与 CEV 关联的 AMI 应始终处于活动状态且可用。 |
如果 EC2 实例已停止,请开启该实例并重新挂载二进制文件卷和数据卷。 如果 EC2 实例被终止,RDS Custom 将执行自动恢复以预调配新的 EC2 实例。 |
Amazon EC2 实例属性 |
|
支持外围将监控运行 RDS Custom 数据库实例的 EC2 实例的实例类型。EC2 实例类型必须与您在 RDS Custom 数据库实例创建期间设置的类型保持一致。 |
使用 EC2 控制台或 CLI 将 EC2 实例类型更改回原始类型。 要根据扩缩要求更改实例类型,请执行 PITR 并指定新的实例类型和类。但是,这样做会产生一个带有新主机和域名系统 (DNS) 名称的新 RDS Custom 数据库实例。 |
Amazon Elastic Block Store(Amazon EBS)卷 |
|
除了从 Amazon Machine Image (AMI) 创建的根卷之外,RDS Custom 还创建了两种类型的 EBS 卷,并将它们与 EC2 实例关联。 二进制卷是数据库软件二进制文件所在的位置。数据卷是数据库文件所在的位置。您在创建数据库实例时设置的存储配置将用于配置数据卷。 支持外围将监控以下内容:
|
如果已分离任何初始 EBS 卷,请联系 AWS Support。 如果您修改了 EBS 卷的存储类型、预置 IOPS 或存储吞吐量,请将修改恢复为原始值。 如果已修改 EBS 卷的存储大小,请联系 AWS Support。 |