本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 Amazon RDS Custom for Oracle 的資料庫問題進行故障診斷
RDS Custom 的共同的責任模型提供作業系統殼層層級存取權和資料庫管理員存取權。RDS Custom 會執行您的帳戶中的資源,不像是 Amazon RDS,它會執行系統帳戶中的資源。責任越大,存取權也越大。在下列區段中,您可以了解如何針對 Amazon RDS Custom 資料庫執行個體的問題進行疑難排解。
注意
本節說明如何對 RDS Custom for Oracle 進行故障診斷。若要對 RDS Custom for SQL Server 進行故障診斷,請參閱 針對 Amazon RDS Custom for SQL Server 的資料庫問題進行故障診斷。
主題
檢視 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 Oracle 的自訂引擎版本建立進行疑難排解
當 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 使用者或角色 中所述的 S3 許可,或者 S3 儲存貯體的數量已達到限制。
-
呼叫者沒有從包含安裝媒體檔案的 S3 儲存貯體中取得檔案的許可。這些許可在 步驟 7:添加必要的IAM權限 中描述。
-
您的 IAM 政策具有
aws:SourceIp
條件。請務必遵循《AWS Identity and Access Management 使用者指南》中的 AWS 根據來源 IP 拒絕存取 AWS。另外,請確認呼叫者擁有 S3 許可,如 步驟 5:將必要的許可授予您的 IAM 使用者或角色 中所述。 -
CEV 資訊清單中列出的安裝媒體檔案不在 S3 儲存貯體中。
-
RDS Custom 的安裝檔案的 SHA-256 檢查總和未知。
請確認提供的檔案的 SHA-256 檢查總和符合 Oracle 網站上的 SHA-256 檢查總和。如果檢查總和相符,請聯絡 AWS 支援
,並提供失敗的 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 中不支援的組態
在共同的責任模型中,您必須負責修正讓 RDS Custom for Oracle 資料庫執行個體進入 unsupported-configuration
狀態的組態問題。如果問題出在 AWS 基礎設施,請使用 主控台或 AWS CLI 進行修正。如果問題出在作業系統或資料庫組態,請登入主機進行修正。
注意
本節說明如何修正 RDS Custom for Oracle 中不支援的組態。如需 RDS Custom for SQL Server 的相關資訊,請參閱 修正 RDS Custom for SQL Server 中不支援的組態。
下表包含支援周邊傳送的通知和事件描述,以及如何修正這些通知和事件。這些通知和支援周邊可能會變更。如需支援周邊的相關背景,請參閱 RDS Custom 支援周邊。如需事件說明,請參閱 Amazon RDS 事件類別和事件訊息。
事件 ID | 組態 | RDS 事件訊息 | 動作 |
---|---|---|---|
|
手動不支援的組態 |
|
若要解決此問題,請建立 支援 案例。 |
AWS 資源 (基礎設施)
事件 ID | 組態 | RDS 事件訊息 | 動作 |
---|---|---|---|
|
Amazon Elastic Block Store (Amazon EBS) 磁碟區 |
|
除了從 Amazon Machine Image (AMI) 建立的根磁碟區之外,RDS Custom 會建立兩種類型的 EBS 磁碟區,並將其與 EC2 執行個體建立關聯:
當您建立資料庫執行個體時,您指定的儲存組態會設定資料磁碟區。 支援周邊會監控下列項目:
使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型:
|
|
Amazon Elastic Block Store (Amazon EBS) 磁碟區 |
|
除了從 Amazon Machine Image (AMI) 建立的根磁碟區之外,RDS Custom 會建立兩種類型的 EBS 磁碟區,並將其與 EC2 執行個體建立關聯:
當您建立資料庫執行個體時,您指定的儲存組態會設定資料磁碟區。 支援周邊會監控下列項目:
使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型:
|
|
Amazon Elastic Block Store (Amazon EBS) 磁碟區 |
|
除了從 Amazon Machine Image (AMI) 建立的根磁碟區之外,RDS Custom 會建立兩種類型的 EBS 磁碟區,並將其與 EC2 執行個體建立關聯:
當您建立資料庫執行個體時,您指定的儲存組態會設定資料磁碟區。 支援周邊會監控下列項目:
使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型:
|
|
Amazon EC2 執行個體狀態 |
|
若要檢查資料庫執行個體的狀態,請使用 主控台或執行下列 AWS CLI 命令:
|
|
Amazon EC2 執行個體屬性 |
|
|
|
Amazon EC2 執行個體狀態 |
|
支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 刪除資料庫執行個體
|
|
Amazon EC2 執行個體狀態 |
|
支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 重新啟動資料庫執行個體
|
|
Amazon SQS 許可 |
|
您可以透過確保與主機相關聯的 IAM 設定檔具有下列許可來解決此問題:
|
|
Amazon Simple Queue Service (Amazon SQS) |
|
重新建立 Amazon SQS 佇列。 |
作業系統
事件 ID | 組態 | RDS 事件訊息 | 動作 |
---|---|---|---|
|
RDS Custom 代理程式狀態 |
|
在 RDS Custom for Oracle 上,如果 RDS Custom 代理程式停止,則資料庫執行個體就會在支援周邊外面。代理程式每 30 秒將 重新啟動 RDS Custom 代理程式
當 RDS Custom 代理程式再次執行時, |
|
AWS Systems Manager 代理程式 (SSM 代理程式) 狀態 |
|
SSM Agent 必須一律在執行中。RDS Custom 代理程序必須負責確定 Systems Manager 代理程式在執行中。如果 SSM 代理程式已終止並重新啟動,RDS Custom 代理程式會將指標發佈至 CloudWatch。RDS Custom 代理程式具有指標警示,設定為在每次重新啟動的前三分鐘觸發。支援周邊也會每 30 分鐘監控主機上 SSM Agent 的程序狀態。 如需詳細資訊,請參閱針對 SSM Agent 進行疑難排解。 |
|
AWS Systems Manager 代理程式 (SSM 代理程式) 狀態 |
|
如需詳細資訊,請參閱針對 SSM Agent 進行疑難排解。 |
|
作業系統時區 |
|
RDS 自動化偵測到在不使用選項群組的情況下,主機上的時區已變更。此主機層級變更可能會導致 RDS 自動化失敗,因此 EC2 執行個體會處於 修正時區設定
資料庫執行個體會在 30 分鐘內變成可用。為避免未來移出周邊,請透過選項群組修改您的時區。如需詳細資訊,請參閱Oracle 時區。 |
|
|
|
支援周邊會驗證特定作業系統使用者是否可在主機上執行特定命令。它會監控 如果不支援
如果覆寫不成功,您的資料庫執行個體會保持在不支援的組態狀態。若要解決此問題,請還原 調查
|
|
S3 儲存貯體可存取性 |
|
|
|
高可用性軟體解決方案版本 |
|
建立 AWS 支援 案例。 |
資料庫
事件 ID | 組態 | RDS 事件訊息 | 動作 |
---|---|---|---|
|
資料庫封存延遲目標 |
|
支援周邊會監控 變更封存重做日誌的延遲目標
資料庫執行個體會在 30 分鐘內變成可用。 |
|
Oracle Data Guard 角色 |
|
支援周邊每隔 15 秒監控一次目前的資料庫角色,並在資料庫角色變更時傳送 CloudWatch 通知。Oracle Data Guard 將 Oracle Data Guard 資料庫角色還原至支援的值
在支援周邊判斷支援資料庫角色之後,RDS Custom for Oracle 資料庫執行個體會在 15 秒內變成可用。 |
|
資料庫運作狀態 |
|
支援周邊會監控資料庫執行個體狀態。它也會監控前一小時和前一天發生的重新啟動次數。當執行個體處於仍然存在的狀態時,您會收到通知,但無法與其互動。 若要讓支援周邊評估您的執行個體狀態
資料庫執行個體重新啟動後,RDS Custom 代理程式會偵測到您的資料庫執行個體不再處於無回應狀態。然後,它會通知支援周邊重新評估您的資料庫執行個體狀態。 |
|
資料庫日誌模式 |
|
將資料庫執行個體日誌模式變更為
|
|
Oracle 首頁路徑 |
|
|
|
資料庫唯一名稱 |
|
變更資料庫執行個體的資料庫唯一名稱
RDS Custom 代理程式會自動重新啟動資料庫執行個體,並將日誌模式設定為 |
針對 RDS Custom for Oracle 升級進行疑難排解
您的 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 複本提升的疑難排解
您可以使用主控台、promote-read-replica
AWS CLI 命令或 PromoteReadReplica
API 在 RDS Custom for Oracle 中提升受管 Oracle 複本。如果您刪除主要資料庫執行個體,且所有複本都正常運作,則 RDS Custom for Oracle 會自動將受管複本提升為獨立執行個體。如果複本已暫停自動化或位於支援範圍之外,您必須先修正複本,RDS Custom 才能自動提升複本。如需詳細資訊,請參閱將 RDS Custom for Oracle 複本提升為獨立資料庫執行個體。
複本提升工作流程可能會下列情況中停滯:
-
主要資料庫執行個體處於狀態
STORAGE_FULL
。 -
主要資料庫無法封存其所有線上重做日誌。
-
您的 Oracle 複本中的封存重做日誌檔案與主要資料庫之間存在差距。
回應停滯的工作流程
-
在 Oracle 複本資料庫執行個體上同步重做日誌差距。
-
強制將僅供讀取複本提升至最新套用的重做日誌。執行下列 SQL*Plus 命令:
ALTER DATABASE ACTIVATE STANDBY DATABASE; SHUTDOWN IMMEDIATE STARTUP
-
聯絡 支援 並要求他們將資料庫執行個體移至
available
狀態。