

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 針對 Amazon RDS Custom for Oracle 的資料庫問題進行故障診斷
<a name="custom-troubleshooting"></a>

RDS Custom 的共同的責任模型提供作業系統殼層層級存取權和資料庫管理員存取權。RDS Custom 會執行您的帳戶中的資源，不像是 Amazon RDS，它會執行系統帳戶中的資源。責任越大，存取權也越大。在下列區段中，您可以了解如何針對 Amazon RDS Custom 資料庫執行個體的問題進行故障診斷。

**注意**  
本節說明如何對 RDS Custom for Oracle 進行故障診斷。若要對 RDS Custom for SQL Server 進行故障診斷，請參閱 [針對 Amazon RDS Custom for SQL Server 的資料庫問題進行故障診斷](custom-troubleshooting-sqlserver.md)。

**Topics**
+ [檢視 RDS Custom 事件](#custom-troubleshooting.support-perimeter.viewing-events)
+ [訂閱 RDS Custom 事件](#custom-troubleshooting.support-perimeter.subscribing)
+ [對資料庫執行個體建立問題進行故障診斷](#custom-troubleshooting.creation-issues)
+ [針對 RDS Custom for Oracle 的自訂引擎版本建立進行故障診斷](#custom-troubleshooting.cev)
+ [修正 RDS Custom for Oracle 中不支援的組態](#custom-troubleshooting.fix-unsupported)
+ [針對 RDS Custom for Oracle 升級進行故障診斷](#custom-troubleshooting-upgrade)
+ [RDS Custom for Oracle 複本提升的故障診斷](#custom-troubleshooting-promote)

## 檢視 RDS Custom 事件
<a name="custom-troubleshooting.support-perimeter.viewing-events"></a>

RDS Custom 和 Amazon RDS 資料庫執行個體的檢視事件程序相同。如需詳細資訊，請參閱[檢視 Amazon RDS 事件](USER_ListEvents.md)。

若要使用 檢視 RDS Custom 事件通知 AWS CLI，請使用 `describe-events`命令。RDS Custom 引入數個新事件。事件類別與 Amazon RDS 的類別相同。如需事件清單，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。

下列範例會擷取針對指定 RDS Custom 資料庫執行個體發生之事件的詳細資訊。

```
1. aws rds describe-events \
2.     --source-identifier my-custom-instance \
3.     --source-type db-instance
```

## 訂閱 RDS Custom 事件
<a name="custom-troubleshooting.support-perimeter.subscribing"></a>

RDS Custom 與 Amazon RDS 資料庫執行個體的訂閱事件程序相同。如需詳細資訊，請參閱[訂閱 Amazon RDS 事件通知](USER_Events.Subscribing.md)。

若要使用 CLI 來訂閱 RDS Custom 事件通知，請使用 `create-event-subscription` 命令。包含下列必要參數：
+ `--subscription-name`
+ `--sns-topic-arn`

下列範例會在目前 AWS 帳戶中建立 RDS Custom 資料庫執行個體之備份和復原事件的訂閱。通知會傳送至 Amazon Simple Notification Service (Amazon SNS) 主題，由 `--sns-topic-arn` 指定。

```
1. aws rds create-event-subscription \
2.     --subscription-name my-instance-events \
3.     --source-type db-instance \
4.     --event-categories '["backup","recovery"]' \
5.     --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events
```

## 對資料庫執行個體建立問題進行故障診斷
<a name="custom-troubleshooting.creation-issues"></a>

如果您的環境未正確設定或缺少必要的許可，則無法建立或還原 RDS Custom for Oracle 資料庫執行個體。當您嘗試建立或還原資料庫執行個體時，Amazon RDS 會驗證您的環境，並在偵測到任何問題時傳回特定錯誤訊息。

解決所有問題後，請再試一次以建立或還原 RDS Custom for Oracle 資料庫執行個體。

### 常見許可問題
<a name="custom-troubleshooting.creation-issues.permissions"></a>

當您建立或還原 RDS Custom for Oracle 執行個體時，Amazon RDS 會驗證您的環境是否具有必要的許可。如果缺少或拒絕許可，操作會失敗並顯示特定的錯誤訊息。


| 問題類型 | 錯誤訊息 | Action | 
| --- | --- | --- | 
|  IAM 角色存取政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，因為沒有身分型政策允許 <permission> 動作。  |  確保列出的必要許可存在，並在包含適當資源的存取政策`Allow`中設定為 。  | 
|  許可界限  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，並在許可界限中明確拒絕。  |  確認連接至執行個體角色的許可界限並未限制列出的必要許可和資源。  | 
|  服務控制政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource> 並在服務控制政策中明確拒絕。  |  請聯絡您的 AWS Organizations 管理員，並確認連接至您帳戶的 服務控制政策並未限制列出的必要許可和資源。  | 
|  資源控制政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，並在資源控制政策中明確拒絕。  |  請聯絡您的 AWS Organizations 管理員，並確認連接至您帳戶的資源控制政策並未限制列出的必要許可和資源。  | 
|  VPC 端點政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，且在 VPC 端點政策中明確拒絕。  |  確保必要的 VPC 端點存在，而且連接到它們的政策不會限制列出的必要許可和資源。  | 

### 聯網問題
<a name="custom-troubleshooting.creation-issues.networking"></a>

除了檢閱 之外[步驟 6：設定 RDS Custom for Oracle 的 VPC](custom-setup-orcl.md#custom-setup-orc.vpc-config)，請確認下列項目已正確設定，且不會限制對必要 AWS 服務的存取：

**連接至 Amazon EC2 執行個體的安全群組**  
確保安全群組允許 RDS Custom 操作的所有必要傳入和傳出流量。

**連接到 VPC 的安全群組**  
確認 VPC 安全群組允許進出所需 AWS 服務的流量。

**VPC 端點**  
確認所有必要的 VPC 端點都已正確設定並可存取。

**網路存取控制清單**  
檢查網路 ACLs 是否未封鎖 RDS Custom 功能所需的流量。

## 針對 RDS Custom for Oracle 的自訂引擎版本建立進行故障診斷
<a name="custom-troubleshooting.cev"></a>

當 CEV 建立失敗時，會發生 RDS Custom 問題 `RDS-EVENT-0198` 並且有訊息 `Creation failed for custom engine version major-engine-version.cev_name`，其中包含失敗的詳細資訊。例如，事件會列印遺失的檔案。

CEV 建立可能因為發生下列問題而失敗：
+ 包含安裝檔案的 Amazon S3 儲存貯體不在與 CEV 相同的 AWS 區域中。
+ 當您 AWS 區域 第一次在 中請求建立 CEV 時，RDS Custom 會建立 S3 儲存貯體來存放 RDS Custom 資源 （例如 CEV 成品、 AWS CloudTrail 日誌和交易日誌）。

  如果 RDS Custom 無法建立 S3 儲存貯體，則 CEV 建立會失敗。呼叫者沒有如 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user) 中所述的 S3 許可，或者 S3 儲存貯體的數量已達到限制。
+ 呼叫者沒有從包含安裝媒體檔案的 S3 儲存貯體中取得檔案的許可。這些許可在 [步驟 7：新增必要的 IAM 許可](custom-cev.preparing.md#custom-cev.preparing.iam) 中描述。
+ 您的 IAM 政策具有 `aws:SourceIp` 條件。請務必遵循《*AWS Identity and Access Management 使用者指南*》中的 [AWS 根據來源 IP 拒絕存取 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html)。另外，請確認呼叫者擁有 S3 許可，如 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user) 中所述。
+ CEV 資訊清單中列出的安裝媒體檔案不在 S3 儲存貯體中。
+ RDS Custom 的安裝檔案的 SHA-256 檢查總和未知。

  請確認提供的檔案的 SHA-256 檢查總和符合 Oracle 網站上的 SHA-256 檢查總和。如果檢查總和相符，請聯絡 [AWS 支援](https://aws.amazon.com/premiumsupport)，並提供失敗的 CEV 名稱、檔案名稱和檢查總和。
+ OPatch 版本與修補程式檔案不相容。您可能會收到下列訊息：`OPatch is lower than minimum required version. Check that the version meets the requirements for all patches, and try again`。如要套用 Oracle 修補程式，必須使用相容版本的 OPatch 公用程式。您可在修補程式的讀我檔案中找到 Opatch 公用程式的所需版本。從 My Oracle Support 下載最新的 OPatch 公用程式，然後再次嘗試建立 CEV。
+ CEV 資訊清單中指定的修補程式順序錯誤。

您可以在 RDS 主控台 （在導覽窗格中，選擇事件） 或使用 `describe-events` AWS CLI 命令來檢視 RDS **事件**。預設持續時間為 60 分鐘。如果未傳回任何事件，請指定較長的持續時間，如以下範例所示。

```
aws rds describe-events --duration 360
```

目前，從 Amazon S3 匯入檔案以建立 CEVs MediaImport 服務尚未整合 AWS CloudTrail。因此，如果您在 CloudTrail 中開啟 Amazon RDS 的資料記錄功能，不會記錄對 MediaImport 服務的呼叫，例如 `CreateCustomDbEngineVersion` 事件。

不過，您可能會看到來自可存取 Amazon S3 儲存貯體的 API Gateway 的呼叫。這些呼叫來自 `CreateCustomDbEngineVersion` 事件的 MediaImport 服務。

## 修正 RDS Custom for Oracle 中不支援的組態
<a name="custom-troubleshooting.fix-unsupported"></a>

在共同的責任模型中，您必須負責修正讓 RDS Custom for Oracle 資料庫執行個體進入 `unsupported-configuration` 狀態的組態問題。如果問題出在 AWS 基礎設施，請使用 主控台或 AWS CLI 進行修正。如果問題與作業系統或資料庫組態相關，請登入主機進行修正。

**注意**  
本節說明如何修正 RDS Custom for Oracle 中不支援的組態。如需 RDS Custom for SQL Server 的相關資訊，請參閱 [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)。

下表中包含支援周邊所傳送通知和事件，以及如何進行修正的說明。這些通知和支援周邊可能會變更。如需支援周邊的相關背景，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。如需事件說明，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  `SP-O0000`  |  手動不支援的組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：*原因*。  |  若要解決此問題，請建立 支援 案例。  | 

**AWS 資源 （基礎設施）**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O1001  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  下列 EBS 磁碟區已新增至 EC2 執行個體 *ec2\$1id*：*volume\$1id*。若要解決此問題，請從執行個體分離指定的磁碟區。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1002  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  EBS 磁碟區 *volume\$1id* 已從 EC2 執行個體 [*ec2\$1id*] 分離。您無法從此執行個體分離原始磁碟區。若要解決問題，請將 *volume\$1id* 重新連接至 *ec2\$1id*。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1003  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  連接至 EC2 執行個體 *ec2\$1id* 的原始 EBS 磁碟區 *volume\$1id* 已修改如下：大小 [*X*] 至 [*Y*]、類型 [*N*] 至 [*M*]，或 IOPS [*J*] 至 [*K*]。若要解決問題，請還原修改。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1004  |  Amazon EC2 執行個體狀態  |  自動化復原使 EC2 執行個體 [*ec2\$1id*] 處於受損狀態。若要解決問題，請參閱[故障診斷執行個體復原失敗](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#TroubleshootingInstanceRecovery)。  |  若要檢查資料庫執行個體的狀態，請使用主控台或執行下列 AWS CLI 命令： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus </pre>  | 
|  SP-O1005  |  Amazon EC2 執行個體屬性  |  EC2 執行個體 [*ec2\$1id*] 已修改如下：屬性 [*att1*] 從 [*val-old*] 變更為 [*val-new*]，屬性 [*att2*] 從 [*val-old*] 變更為 [*val-new*]。若要解決問題，請還原為原始值。  |  | 
|  SP-O1006  |  Amazon EC2 執行個體狀態  |  EC2 執行個體 [*ec2\$1id*] 已終止或找不到。若要解決問題，請刪除 RDS Custom 資料庫執行個體。  |  支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html)  | 
|  SP-O1007  |  Amazon EC2 執行個體狀態  |  EC2 執行個體 [*ec2\$1id*] 已停止。若要解決問題，請啟動執行個體。  |  支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html)  | 
|  SP-1008  |  Amazon SQS 許可  |  缺少 Amazon SQS 的許可。請檢查 IAM 執行個體設定檔、VPC 端點政策和相依服務連線的許可，然後再試一次。  |   您可以透過確保與主機相關聯的 IAM 設定檔具有下列許可來解決此問題： <pre>"SQS:SendMessage"<br />"SQS:ReceiveMessage"<br />"SQS:DeleteMessage"<br />"SQS:GetQueueUrl"</pre>  | 
|  SP-1009  |  Amazon Simple Queue Service (Amazon SQS)  |  SQS 佇列 [%s] 已刪除且無法復原。若要解決此問題，請重新建立佇列。  |  重新建立 Amazon SQS 佇列。  | 

**作業系統**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O2001  |  RDS Custom 代理程式狀態  |  RDS Custom 代理程式未在 EC2 執行個體 [*ec2\$1id*] 上執行。確定代理程式在 [*ec2\$1id*] 上執行。  |  在 RDS Custom for Oracle 上，如果 RDS Custom 代理程式停止，則資料庫執行個體就會在支援周邊外面。代理程式每 30 秒將 `IamAlive` 指標發佈到 Amazon CloudWatch。如果超過 30 秒未發佈指標，則會觸發警示。支援周邊也會每 30 分鐘監控主機上的 RDS Custom 代理程式程序狀態。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 當 RDS Custom 代理程式再次執行時，`IamAlive` 指標會發佈到 Amazon CloudWatch，且警示會切換為 `OK` 狀態。此切換會通知支援周邊代理程式正在執行。  | 
|  `SP-O2002`  |  AWS Systems Manager 代理程式 (SSM 代理程式） 狀態  |  EC2 執行個體 [*ec2\$1id*] 上的 Systems Manager 代理程式無法連線。請確定您已正確設定網路、代理程式和 IAM 許可。  |  SSM 代理程式必須一律在執行中。RDS Custom 代理程序必須負責確定 Systems Manager 代理程式在執行中。如果 SSM 代理程式已終止並重新啟動，RDS Custom 代理程式會將指標發佈`SSM_Agent_Restarted_Or_NotFound`至 CloudWatch。RDS Custom 代理程式在`do-not-delete-rds-custom-ssm-agent-restarted-or-notfound-ec2-id`設定為在前三分鐘每次重新啟動時觸發的指標上具有警示。支援周邊也會每 30 分鐘監控主機上的 SSM 代理程式處理程序狀態。 如需詳細資訊，請參閱[針對 SSM Agent 進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。  | 
|  `SP-O2003`  |  AWS Systems Manager 代理程式 (SSM 代理程式） 狀態  |  EC2 執行個體 [*ec2\$1id*] 上的 Systems Manager 代理程式多次當機。如需詳細資訊，請參閱 SSM 代理程式故障診斷文件。  |  如需詳細資訊，請參閱[針對 SSM Agent 進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。  | 
|  SP-O2004  |  OS 時區  |  EC2 執行個體 [*ec2\$1id*] 上的時區已變更。若要解決此問題，請將時區還原為先前的 [*previous-time-zone*] 設定。然後使用 RDS 選項群組來變更時區。  |  RDS 自動化偵測到主機上的時區已變更，而未使用選項群組。此主機層級變更可能會導致 RDS 自動化失敗，因此 EC2 執行個體會處於 `unsupported-configuration` 狀態。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體會在 30 分鐘內變成可用。為避免未來移出周邊，請透過選項群組修改您的時區。如需詳細資訊，請參閱[Oracle 時區](custom-managing.timezone.md)。  | 
|  SP-O2005  |  `sudo` 組態  |  EC2 執行個體 [*ec2\$1id*] 上的 sudo 組態缺少必要的許可。若要解決此問題，請將最近的變更還原至 sudo 組態。  |  支援周邊會確認某些作業系統使用者可以在主機上執行特定命令。它會監控 `sudo` 組態並將其與支援的狀態進行比較。 若 `sudo` 組態不受支援，RDS Custom 就會嘗試將它們覆寫回到先前支援的狀態。如果嘗試成功，則 RDS Custom 會傳送下列通知： RDS Custom 已成功覆寫您的組態。 如果覆寫不成功，您的資料庫執行個體就會保持在不支援的組態狀態。若要解決此問題，請還原 `sudoers.d/` 檔案內的變更或修正許可。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 在支援周邊判斷支援 `sudo` 組態之後，RDS Custom for Oracle 資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O2006  |  S3 儲存貯體可存取性  |  RDS Custom 自動化無法從 EC2 執行個體 [*ec2\$1id*] 上的 S3 儲存貯體下載檔案。檢查您的聯網組態，並確保執行個體允許往返 S3 的連線。  |  | 
|  SP-2007  |  高可用性軟體解決方案版本  |  執行個體的 HA 解決方案與預期的版本不同。若要解決此問題，請建立 AWS 支援 案例。  |  建立 AWS 支援 案例。  | 

**資料庫**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O3001  |  資料庫封存延遲目標  |  EC2 執行個體 [*ec2\$1id*] 上的 ARCHIVE\$1LAG\$1TARGET 參數超出建議範圍 *value\$1range*。若要解決問題，請將參數設定為 value\$1range 內的值。  |  支援周邊會監控 `ARCHIVE_LAG_TARGET` 資料庫參數，以確認資料庫執行個體的最新可還原時間是否在合理範圍內。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O3002  |  Oracle Data Guard 角色  |  EC2 執行個體 [*ec2\$1id*] 上的 Oracle Data Guard 不支援資料庫角色 [*role\$1name*]。若要解決問題，請將 DATABASE\$1ROLE 參數設定為 PRIMARY 或 PHYSICAL STANDBY。  |  支援周邊每隔 15 秒監控一次目前的資料庫角色，並在資料庫角色變更時傳送 CloudWatch 通知。Oracle Data Guard `DATABASE_ROLE` 參數必須是 `PRIMARY` 或 `PHYSICAL STANDBY`。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 在支援周邊判斷支援資料庫角色之後，RDS Custom for Oracle 資料庫執行個體會在 15 秒內變成可用。  | 
|  SP-O3003  |  資料庫運作狀態  |  Oracle 資料庫的 SMON 程序處於殭屍狀態。若要解決問題，請手動復原 EC2 執行個體 [*ec2\$1id*] 上的資料庫，開啟資料庫，然後立即備份。如需詳細資訊，請聯絡 支援。  |  支援周邊會監控資料庫執行個體狀態。它也會監控前一小時和前一天發生的重新啟動次數。當執行個體處於仍然存在的狀態時，您會收到通知，但無法與其互動。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體重新啟動之後，RDS Custom 代理程式會偵測到您的資料庫執行個體不再處於沒有回應的狀態。然後，它會通知支援周邊重新評估您的資料庫執行個體狀態。  | 
|  SP-O3004  |  資料庫日誌模式  |  EC2 執行個體 [*ec2\$1id*] 上的資料庫日誌模式已變更為 [*value\$1b*]。若要解決問題，請將日誌模式設定為 [*value\$1a*]。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) RDS Custom 代理程式會自動重新啟動資料庫執行個體，並且將日誌模式設定為 `ARCHIVELOG`。資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O3005  |  Oracle 首頁路徑  |  EC2 執行個體 [*ec2\$1id*] 上的 Oracle 首頁已變更為 *new\$1path*。若要解決此問題，請將設定還原為 *old\$1path*。  |  | 
|  SP-O3006  |  資料庫唯一名稱  |  EC2 執行個體 [*ec2\$1id*] 上的資料庫唯一名稱已變更為 *new\$1value*。若要解決此問題，請將名稱還原為 *old\$1value*。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) RDS Custom 代理程式會自動重新啟動資料庫執行個體，並且將日誌模式設定為 `ARCHIVELOG`。資料庫執行個體會在 30 分鐘內變成可用。  | 

## 針對 RDS Custom for Oracle 升級進行故障診斷
<a name="custom-troubleshooting-upgrade"></a>

您的 RDS Custom for Oracle 執行個體升級可能會失敗。接著，您可以找到在升級 RDS Custom DB for Oracle 資料庫執行個體期間可以使用的技巧：
+ 檢查資料庫執行個體 `/tmp` 目錄中的升級輸出日誌檔。日誌名稱取決於您的資料庫引擎版本。例如，您可能會看到包含字串 `catupgrd` 或 `catup` 的日誌。
+ 檢查位於 `/rdsdbdata/log/trace` 目錄的 `alert.log` 檔案。
+ 在 `root` 目錄中執行下列 `grep` 命令以追蹤升級作業系統程序。此命令會顯示寫入日誌檔的位置，並判斷升級程序的狀態。

  ```
  ps -aux | grep upg
  ```

  下面顯示了範例輸出。

  ```
  root     18884  0.0  0.0 235428  8172 ?        S<   17:03   0:00 /usr/bin/sudo -u rdsdb /rdsdbbin/scripts/oracle-control ORCL op_apply_upgrade_sh RDS-UPGRADE/2.upgrade.sh
  rdsdb    18886  0.0  0.0 153968 12164 ?        S<   17:03   0:00 /usr/bin/perl -T -w /rdsdbbin/scripts/oracle-control ORCL op_apply_upgrade_sh RDS-UPGRADE/2.upgrade.sh
  rdsdb    18887  0.0  0.0 113196  3032 ?        S<   17:03   0:00 /bin/sh /rdsdbbin/oracle/rdbms/admin/RDS-UPGRADE/2.upgrade.sh
  rdsdb    18900  0.0  0.0 113196  1812 ?        S<   17:03   0:00 /bin/sh /rdsdbbin/oracle/rdbms/admin/RDS-UPGRADE/2.upgrade.sh
  rdsdb    18901  0.1  0.0 167652 20620 ?        S<   17:03   0:07 /rdsdbbin/oracle/perl/bin/perl catctl.pl -n 4 -d /rdsdbbin/oracle/rdbms/admin -l /tmp catupgrd.sql
  root     29944  0.0  0.0 112724  2316 pts/0    S+   18:43   0:00 grep --color=auto upg
  ```
+ 執行下列 SQL 查詢以驗證元件的目前狀態，以尋找資料庫版本和資料庫執行個體上安裝的選項。

  ```
  SET LINESIZE 180
  COLUMN COMP_ID FORMAT A15
  COLUMN COMP_NAME FORMAT A40 TRUNC
  COLUMN STATUS FORMAT A15 TRUNC
  SELECT COMP_ID, COMP_NAME, VERSION, STATUS FROM DBA_REGISTRY ORDER BY 1;
  ```

  輸出結果與以下內容相似。

  ```
  COMP_NAME                                STATUS               PROCEDURE
  ---------------------------------------- -------------------- --------------------------------------------------
  Oracle Database Catalog Views            VALID                DBMS_REGISTRY_SYS.VALIDATE_CATALOG
  Oracle Database Packages and Types       VALID                DBMS_REGISTRY_SYS.VALIDATE_CATPROC
  Oracle Text                              VALID                VALIDATE_CONTEXT
  Oracle XML Database                      VALID                DBMS_REGXDB.VALIDATEXDB
  
  4 rows selected.
  ```
+ 執行下列 SQL 查詢，以檢查是否有可能會干擾升級程序的無效物件。

  ```
  SET PAGES 1000 LINES 2000
  COL OBJECT FOR A40
  SELECT SUBSTR(OWNER,1,12) OWNER,
         SUBSTR(OBJECT_NAME,1,30) OBJECT,
         SUBSTR(OBJECT_TYPE,1,30) TYPE, STATUS,
         CREATED
  FROM   DBA_OBJECTS 
  WHERE  STATUS <>'VALID' 
  AND    OWNER IN ('SYS','SYSTEM','RDSADMIN','XDB');
  ```

## RDS Custom for Oracle 複本提升的故障診斷
<a name="custom-troubleshooting-promote"></a>

您可以使用主控台、`promote-read-replica` AWS CLI 命令或 `PromoteReadReplica` API 在 RDS Custom for Oracle 中提升受管 Oracle 複本。如果您刪除主要資料庫執行個體，且所有複本都正常運作，則 RDS Custom for Oracle 會自動將受管複本提升為獨立執行個體。如果複本已暫停自動化或位於支援範圍之外，您必須先修正複本，RDS Custom 才能自動提升複本。如需詳細資訊，請參閱[將 RDS Custom for Oracle 複本升級為獨立的資料庫執行個體](custom-rr.promoting.md)。

複本提升工作流程可能會下列情況中停滯：
+ 主要資料庫執行個體處於狀態 `STORAGE_FULL`。
+ 主要資料庫無法封存其所有線上重做日誌。
+ 您的 Oracle 複本中的封存重做日誌檔案與主要資料庫之間存在差距。

**回應停滯的工作流程**

1. 在 Oracle 複本資料庫執行個體上同步重做日誌差距。

1. 強制將僅供讀取複本提升至最新套用的重做日誌。執行下列 SQL\$1Plus 命令：

   ```
   ALTER DATABASE ACTIVATE STANDBY DATABASE;
   SHUTDOWN IMMEDIATE
   STARTUP
   ```

1. 聯絡 支援 並要求他們將資料庫執行個體移至 `available` 狀態。