针对 Amazon RDS Custom for SQL Server 排查数据库的问题 - Amazon Relational Database Service

针对 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 事件类别和事件消息

以下信息可帮助您解决可能的原因。

消息 故障排除建议

Custom Engine Version creation expected a Sysprep’d AMI. Retry creation using a Sysprep’d AMI.

在您从 AMI 创建的 EC2 实例上运行 Sysprep。有关使用 Sysprep 准备 AMI 的更多信息,请参阅使用 Sysprep 创建标准化的 Amazon 机器映像(AMI)

EC2 Image permissions for image (AMI_ID) weren't found for customer (Customer_ID). Verify customer (Customer_ID) has valid permissions on the EC2 Image.

验证您用于创建的账户和配置文件对所选 AMI 的 create EC2 InstanceDescribe Images 具有所需的权限。

Failed to rebuild databases with server collation (collation name) due to missing setup.exe file for SQL Server.

确认 setup 文件在 C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\SQLnnnn\setup.exe 中可用。

Image (AMI_ID) doesn't exist in your account (ACCOUNT_ID). Verify (ACCOUNT_ID) is the owner of the EC2 image.

确保 AMI 存在于同一个客户账户中。

Image id (AMI_ID) isn't valid. Specify a valid image id, and try again.

AMI 的名称不正确。确保提供正确的 AMI ID。

Image (AMI_ID) operating system platform isn't supported. Specify a valid image, and try again.

选择支持的 AMI,该 AMI 具有 Windows Server 以及 SQL Server Enterprise、Standard 或 Web 版。从 EC2 Marketplace 选择具有以下使用情况操作代码之一的 AMI:

  • RunInstances:0102 - 含有 SQL Server Enterprise 的 Windows

  • RunInstances:0006 - 含有 SQL Server Standard 的 Windows

  • RunInstances:0202 - 有 SQL Server Web 的 Windows

SQL Server Web Edition isn't supported for creating a Custom Engine Version using Bring Your Own Media. Specify a valid image, and try again.

使用包含支持的 SQL Server 版本的 AMI。有关更多信息,请参阅RDS Custom for SQL Server CEV 的版本支持

The custom engine version can't be the same as the OEV engine version. Specify a valid CEV, and try again.

不支持经典 RDS Custom for SQL Server 引擎版本。例如,版本 15.00.4073.23.v1。使用支持的版本号。

The custom engine version isn't in an active state. Specify a valid CEV, and try again.

CEV 必须处于 AVAILABLE 状态才能完成操作。将 CEV 从 INACTIVE 修改为 AVAILABLE

The custom engine version isn't valid for an upgrade. Specify a valid CEV with an engine version greater or equal to (X), and try again.

目标 CEV 无效。检查对有效升级路径的要求。

The custom engine version isn't valid. Names can include only lowercase letters (a-z), dashes (-), underscores (_), and periods (.). Specify a valid CEV, and try again.

遵循所需的 CEV 命名约定。有关更多信息,请参阅RDS Custom for SQL Server CEV 的要求

The custom engine version isn't valid. Specify valid database engine version, and try again. Example: 15.00.4073.23-cev123.

提供了不支持的数据库引擎版本。使用支持的数据库引擎版本。

The expected architecture is (X) for image (AMI_ID), but architecture (Y) was found.

使用基于 x86_64 架构构建的 AMI。

The expected owner of image (AMI_ID) is customer account ID (ACCOUNT_ID), but owner (ACCOUNT_ID) was found.

从您拥有权限的 AMI 创建 EC2 实例。在 EC2 实例上运行 Sysprep 以创建和保存基本映像。

The expected platform is (X) for image (AMI_ID), but platform (Y) was found.

使用在 Windows 平台上构建的 AMI。

The expected root device type is (X) for image %s, but root device type (Y) was found.

使用 EBS 设备类型创建 AMI。

The expected SQL Server edition is (X), but (Y) was found.

选择支持的 AMI,该 AMI 具有 Windows Server 以及 SQL Server Enterprise、Standard 或 Web 版。从 EC2 Marketplace 选择具有以下使用情况操作代码之一的 AMI:

  • RunInstances:0102 - 含有 SQL Server Enterprise 的 Windows

  • RunInstances:0006 - 含有 SQL Server Standard 的 Windows

  • RunInstances:0202 - 含有 SQL Server Web 的 Windows

The expected state is (X) for image (AMI_ID), but the following state was found: (Y).

确保 AMI 的状态为 AVAILABLE

The provided Windows OS name (X) isn’t valid. Make sure the OS is one of the following: (Y).

使用支持的 Windows 操作系统。

Unable to find bootstrap log file in path.

确认日志文件在 C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\Log\Summary.txt 中可用。

RDS expected a Windows build version greater than or equal to (X), but found version (Y)..

使用操作系统编译版本最低为 14393 的 AMI。

RDS expected a Windows major version greater than or equal to (X), but found version (Y)..

使用最低操作系统主版本为 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 事件消息 描述 操作
数据库

数据库运行状况

您需要手动恢复 EC2 实例 [i-xxxxxxxxxxxxxxxxx] 上的数据库。

数据库实例已重启。

支持外围会监控数据库实例状态。其还将监控前一小时和一天中发生的重启次数。

当实例处于仍然存在的状态时,您会收到通知,但您无法与其交互。

登录主机,并检查您的 RDS Custom for SQL Server 数据库的状态。

ps -eo pid,state,command | grep smon

如有必要,请重启您的 RDS Custom for SQL Server 数据库实例,使其重新运行。有时您可能需要重启主机。

重启后,RDS Custom 代理会检测到数据库实例不再处于无响应状态。然后,它会通知支持外围以重新评估数据库实例状态。

数据库文件位置

RDS Custom 实例已超出外围,因为数据库文件位置使用了不受支持的配置。

预设情况下,所有 SQL Server 数据库文件都存储在 D: 驱动器上,位于 D:\rdsdbdata\DATA 目录中。

如果您创建或更改数据库文件位置,使其位于 D: 驱动器以外的任何位置,则 RDS Custom 会使数据库实例处于支持外围之外。

我们强烈建议您不要在 C: 驱动器上保存任何数据库文件。在某些操作(例如硬件故障)期间,您可能会丢失 C: 驱动器上的数据。C: 驱动器上的存储不能提供与 D: 驱动器上相同的持久性,后者为 EBS 卷。

此外,如果找不到数据库文件,RDS Custom 会使数据库实例处于支持外围之外。

请将所有 RDS Custom for SQL Server 数据库文件都存储在 D: 驱动器上。

共享内存连接

RDS Custom 实例已超出外围,因为共享内存协议使用了不受支持的配置。

EC2 主机上的 RDS Custom 代理使用共享内存协议连接到 SQL Server。

如果此协议关闭(已启用设置为),则 RDS Custom 无法执行其管理操作,并会将数据库实例置于支持外围之外。

要将 RDS Custom for SQL Server 数据库实例带回到支持外围内,请通过将已启用设置为,在共享内存属性窗口的协议页面开启共享内存协议。启用协议后,重启 SQL Server。
操作系统

RDS Custom 代理状态

RDS Custom 实例已超出外围,因为 RDS Custom 代理使用了不受支持的配置。

RDS Custom 代理必须始终运行。

支持外围会每隔 1 分钟监控主机上的 RDS Custom 代理进程状态。

在 RDS Custom for SQL Server 上,监控服务会恢复已停止的代理。如果卸载 RDS Custom 代理,则数据库实例将超出支持外围。

登录到主机并确保 RDS Custom 代理正在运行。

您可以使用以下命令查找代理的状态。

$name = "RDSCustomAgent" $service = Get-Service $name Write-Host $service.Status

如果状态不是 Running,则可使用以下命令启动该服务:

Start-Service $name

SSM 代理状态

RDS Custom 实例已超出外围,因为 SSM 代理使用了不受支持的配置。

SSM 代理必须始终运行。RDS Custom 代理负责确保 Systems Manager 代理正在运行。

支持外围每隔 1 分钟会监控主机上的 SSM 代理进程状态。

有关更多信息,请参阅 SSM Agent 故障排除

AWS 资源

Amazon EC2 实例状态

EC2 实例 [i-xxxxxxxxxxxxxxxxxxxxx] 的状态已从 [RUNNING] 更改为 [STOPPING]。

Amazon EC2 实例 [i-xxxxxxxxxxxxxxxxxxxxx] 已终止且无法找到。删除数据库实例以清理资源。

Amazon EC2 实例 [i-xxxxxxxxxxxxxxxxxxxxx] 已停止。开启实例,然后恢复主机配置。有关更多信息,请参阅故障排除文档。

支持外围将监控 EC2 实例状态变更通知。EC2 实例必须始终运行。

与 CEV 关联的 AMI 应始终处于活动状态且可用。

如果 EC2 实例已停止,请开启该实例并重新挂载二进制文件卷和数据卷。

如果 EC2 实例被终止,RDS Custom 将执行自动恢复以预调配新的 EC2 实例。

Amazon EC2 实例属性

RDS Custom 实例已超出外围,因为 EC2 实例元数据使用了不受支持的配置。

支持外围将监控运行 RDS Custom 数据库实例的 EC2 实例的实例类型。EC2 实例类型必须与您在 RDS Custom 数据库实例创建期间设置的类型保持一致。

使用 EC2 控制台或 CLI 将 EC2 实例类型更改回原始类型。

要根据扩缩要求更改实例类型,请执行 PITR 并指定新的实例类型和类。但是,这样做会产生一个带有新主机和域名系统 (DNS) 名称的新 RDS Custom 数据库实例。

Amazon Elastic Block Store(Amazon EBS)卷

RDS Custom 实例已超出外围,因为 EBS 卷元数据使用了不受支持的配置。

除了从 Amazon Machine Image (AMI) 创建的根卷之外,RDS Custom 还创建了两种类型的 EBS 卷,并将它们与 EC2 实例关联。

二进制卷是数据库软件二进制文件所在的位置。数据卷是数据库文件所在的位置。您在创建数据库实例时设置的存储配置将用于配置数据卷。

支持外围将监控以下内容:

  • 使用数据库实例创建的初始 EBS 卷仍处于关联状态。

  • 初始 EBS 卷仍具有与最初设置相同的配置:存储类型、大小、预置 IOPS 和存储吞吐量。

如果已分离任何初始 EBS 卷,请联系 AWS Support。

如果您修改了 EBS 卷的存储类型、预置 IOPS 或存储吞吐量,请将修改恢复为原始值。

如果已修改 EBS 卷的存储大小,请联系 AWS Support。