本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 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 活動。
若要使用 檢視 RDS Custom 事件通知 AWS CLI,請使用 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 資料庫執行個體之備份和復原事件的訂閱。通知會傳送至 Amazon Simple Notification Service (Amazon SNS) 主題,由 --sns-topic-arn
指定。
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 Machine Image (AMI)。 |
|
驗證用於建立的帳戶和設定檔是否在所選 AMI 的 |
|
確認 |
|
確定 AMI 存在於相同的客戶帳戶中。 |
|
AMI 的名稱不正確。確定提供了正確的 AMI ID。 |
|
選擇具有 Windows Server 搭配 SQL Server Enterprise、Standard 或 Web Edition 的受支援 AMI。從 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 的要求。 |
|
已提供不受支援的 DB 引擎版本。請使用支援的資料庫引擎版本。 |
|
使用建置在 x86_64 架構上的 AMI。 |
|
從您對其具有許可的 AMI 建立 EC2 執行個體。在 EC2 執行個體上執行 Sysprep,以建立並儲存基礎映像。 |
|
使用透過 Windows 平台建置的 AMI。 |
|
使用 EBS 裝置類型建立 AMI。 |
|
選擇具有 Windows Server 搭配 SQL Server Enterprise、Standard 或 Web Edition 的受支援 AMI。從 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 事件訊息 | 驗證程序 |
---|---|---|---|
|
手動不支援的組態 |
|
若要解決此問題,請建立支援案例。 |
AWS 資源 (基礎設施)
事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 |
---|---|---|---|
|
EC2 執行個體狀態 |
|
若要檢查資料庫執行個體的狀態,請使用 主控台或執行下列 AWS CLI 命令:
|
|
EC2 執行個體狀態 |
|
使用下列 AWS CLI 命令來檢查資料庫執行個體的狀態:
您也可以使用 EC2 主控台檢查 EC2 執行個體的狀態。 若要啟動資料庫執行個體,請使用 主控台或執行下列 AWS CLI 命令:
|
|
EC2 執行個體類別 |
|
使用下列 CLI 命令來檢查預期的資料庫執行個體類別:
|
|
EBS 儲存磁碟區無法存取 |
|
|
|
EBS 儲存磁碟區已分離 |
|
重新連接 EBS 磁碟區後,請使用下列 CLI 命令來檢查 EBS 磁碟區 'volume-id' 是否已正確連接至 RDS 執行個體:
|
|
EBS 儲存磁碟區大小 |
|
使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區大小:
使用下列 CLI 命令來檢視實際配置的磁碟區大小:
|
|
EBS 儲存磁碟區組態 |
|
使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區類型。請確定 EBS 層級的值符合 RDS 層級的值:
若要在 RDS 層級取得儲存輸送量的預期值:
若要在 RDS 層級取得磁碟區 IOPS 的預期值:
若要在 EC2 層級取得目前的儲存類型:
若要在 EC2 層級取得儲存輸送量的目前值:
若要在 EC2 層級取得磁碟區 IOPS 的目前值:
|
|
EBS 儲存磁碟區大小和組態 |
|
使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區類型。請確定 EBS 層級的值符合 RDS 層級的值:
若要在 RDS 層級取得儲存輸送量的預期值:
若要在 RDS 層級取得磁碟區 IOPS 的預期值:
若要在 EC2 層級取得目前的儲存類型:
若要在 EC2 層級取得儲存輸送量的目前值:
若要在 EC2 層級取得磁碟區 IOPS 的目前值:
若要取得預期的已配置磁碟區大小:
若要取得實際配置的磁碟區大小:
|
|
SQS 許可 |
|
|
|
SQS VPC 端點 |
|
作業系統
事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 |
---|---|---|---|
|
SQL 服務狀態 |
|
|
|
RDS 自訂代理程式狀態 |
|
登入主機並確定 RDS Custom 代理程式正在執行。 您可以使用下列命令來檢視客服人員狀態。
如果狀態不是
如果代理程式無法啟動,請檢查 Windows 事件,了解無法啟動的原因。代理程式需要 Windows 使用者才能啟動服務。確保 Windows 使用者存在並具有執行服務的權限。 |
|
SSM 代理程式狀態 |
|
如需詳細資訊,請參閱針對 SSM Agent 進行疑難排解。 若要對 SSM 端點進行故障診斷,請參閱無法連線至 SSM 端點和使用 ssm-cli 對受管節點可用性進行故障診斷。 |
|
RDS 自訂代理程式登入 |
|
|
|
時區 |
|
執行 如需詳細資訊,請參閱RDS Custom for SQL Server 資料庫執行個體的本機時區。 |
|
高可用性軟體解決方案版本 |
|
|
|
高可用性軟體解決方案組態 |
|
|
SP-S2008 |
SQL Server 服務 |
|
您可以使用下列命令來檢視客服人員狀態。
|
SP-2009 |
SSL 憑證 |
|
執行下列 PowerShell 命令來檢閱非自我簽署的憑證 (憑證)。
如需詳細資訊,請參閱嘗試存取 IIS 上託管的網站時的 HTTP 錯誤 403.16 |
SP-2010 |
根磁碟區儲存狀態 |
|
使用下列命令來檢視根 (C:) 磁碟區上的可用儲存。
如需修改 EBS 根磁碟區的詳細資訊,請參閱如何 |
資料庫
事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 |
---|---|---|---|
|
SQL Server 共用記憶體通訊協定 |
|
您可以透過檢查:SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for MSSQLSERVER> Shared Memory as Enabled 來進行驗證。啟用通訊協定後,請重新啟動 SQL Server 程序。 |
|
服務主金鑰 |
|
|
|
服務主金鑰 |
|
|
|
資料庫引擎版本 |
|
執行下列查詢以取得 SQL 版本:
執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本和版本:
如需詳細資訊,請參閱修改 RDS Custom for SQL Server 資料庫執行個體及升級資料庫執行個體引擎版本。 |
|
資料庫引擎版本 |
|
執行下列查詢以取得 SQL 版本:
執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本:
|
|
資料庫引擎版本 |
|
執行下列查詢以取得 SQL 版本:
執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本:
如需詳細資訊,請參閱修改 RDS Custom for SQL Server 資料庫執行個體及升級資料庫執行個體引擎版本。 |
|
資料庫檔案位置 |
|
執行下列查詢,列出不在預設路徑中的資料庫檔案位置:
|
在 RDS Custom for SQL Server Storage-Full
中進行故障診斷
RDS Custom 也會監控根 (C:) 磁碟區。當根磁碟區有少於 500 MiB 的可用磁碟空間時,RDS Custom for SQL Server 資料庫執行個體會移至 unsupported-configuration
狀態。請參閱修正 RDS Custom for SQL Server 中不支援的組態中的Event SP-S2010
。
針對 RDS Custom for SQL Server 中已啟用 TDE 之資料庫的 PENDING_RECOVERY 狀態進行故障診斷
如果自動解密遇到問題,啟用透明資料加密 (TDE) 的 SQL Server 資料庫可能會保持 PENDING_RECOVERY
狀態。如果在還原完成之前刪除存放在您帳戶中 RDS Custom 受管 S3 儲存貯體中的來源資料庫執行個體服務主金鑰 (SMK) 備份檔案,通常會在資料庫執行個體還原之後發生這種情況。
若要啟用自動解密並使已啟用 TDE 的資料庫上線,您需要使用其密碼開啟資料庫主金鑰 (DMK),並使用 SMK 加密 DMK。
使用下列 SQL Server 命令做為參考:
-- Identify PENDING_RECOVERY TDE databases USE MASTER; GO SELECT name, is_encrypted, state_desc FROM sys.databases; GO -- Open DMK using password OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>'; GO -- Encrypt DMK using SMK ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY; GO -- Close SMK CLOSE MASTER KEY; GO -- Bring the TDE databases online ALTER DATABASE <database_name> SET ONLINE; GO -- Verify TDE databases are now in ONLINE state SELECT name, is_encrypted, state_desc FROM sys.databases; GO