Amazon RDS Custom for Oracle の DB に関する問題のトラブルシューティング
RDS Custom の責任共有モデルは、OS シェルレベルのアクセスとデータベース管理者アクセスを提供します。RDS Custom は、システムアカウントでリソースを実行する Amazon RDS とは異なり、アカウント内でリソースを実行します。アクセスが増えるほど、責任も重くなります。以降のセクションで、Amazon RDS Custom DB インスタンスに関する問題のトラブルシューティング方法を学ぶことができます。
注記
このセクションでは RDS Custom for Oracle をトラブルシューティングする方法について説明します。RDS Custom for SQL Server のトラブルシューティングについては、「Amazon RDS Custom for SQL Server の DB に関する問題のトラブルシューティング」を参照してください。
トピック
RDS Custom イベントの表示
イベントを表示する手順は、RDS Custom とAmazon RDS DB インスタンスでは同じです。詳細については、「Amazon RDS イベントの表示」を参照してください。
AWS CLIを使用してRDS Custom イベント通知を表示するには、describe-events
コマンドを使用します。RDS Custom では、いくつかの新しいイベントを導入しています。イベントカテゴリは Amazon RDS の場合と同じです。イベントのリストについては、 の Amazon RDS イベントカテゴリとイベントメッセージを参照してください。
次の例では、指定した RDS Custom DB インスタンスで発生したイベントの詳細を取得します。
aws rds describe-events \ --source-identifier my-custom-instance \ --source-type db-instance
RDS Custom イベントへのサブスクライブ
イベント受信の手順は、RDS Custom とAmazon RDS DB インスタンスでは同じです。詳細については、「Amazon RDS イベント通知にサブスクライブする」を参照してください。
CLI を使用して RDS Custom イベント通知をサブスクライブするには、create-event-subscription
コマンドを使用します。以下の必須パラメータを含めます。
-
--subscription-name
-
--sns-topic-arn
次の例では、現在のAWSアカウントのRDS Custom DB インスタンスのバックアップおよびリカバリイベントの受信を作成します。通知は、--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 Oracle のカスタムエンジンバージョン作成のトラブルシューティング
CEV の作成に失敗すると、RDS Custom はメッセージCreation failed for custom engine
version
とともにmajor-engine-version.cev_name
RDS-EVENT-0198
を発行し、これは障害に関する詳細を含んでいます。例えば、イベントは不足ファイルを出力します。
次の問題が原因で、CEV の作成に失敗することがあります。
-
インストールファイルの入った Amazon S3 バケットが、CEV と同じ AWS リージョンにありません。
-
AWS リージョンで初めて CEV 作成をリクエストすると、RDS Custom は RDS Custom リソース (CEV アーティファクト、AWS CloudTrailログ、トランザクションログなど) を保存するための S3 バケットを作成します。
RDS Custom が S3 バケットを作成できないと、CEV の作成は失敗します。「ステップ 5: IAM ユーザーまたはロールに必要なアクセス許可を付与する」で説明されているように、発信者に S3 権限がないか、あるいは S3 バケットの数が制限に達しています。
-
発信者には、インストールメディアファイルが含まれている S3 バケットからファイルを取得する権限がありません。これらの権限については、ステップ 7: 必要な IAM アクセス許可を追加するを参照してください。
-
IAM ポリシーには
aws:SourceIp
条件があります。「AWS Identity and Access Management ユーザーガイド」の「AWS: 送信元 IP に基づいて AWS へのアクセスを拒否する」に記載されている推奨事項に、必ず従ってください。また呼び出し元に、「ステップ 5: IAM ユーザーまたはロールに必要なアクセス許可を付与する」で説明した S3 へのアクセス許可があることを確認します。 -
CEV マニフェストに記載されているインストールメディアファイルが S3 バケットにありません。
-
インストールファイルの SHA-256 チェックサムは RDS Custom で不明です。
提供されたファイルの SHA-256 チェックサムが、Oracle Web サイトの SHA-256 チェックサム と一致していることを確認します。チェックサム が一致する場合は、失敗した CEV 名、ファイル名、およびチェックサムをAWSサポート
に連絡してください。 -
Opatch バージョンはパッチファイルとの互換性がありません。次のメッセージが表示される場合があります。
OPatch is lower than minimum required version. Check that the version meets the requirements for all patches, and try again
。Oracle パッチを適用するには、互換性のあるバージョンの OPatch ユーティリティを使用する必要があります。Opatch ユーティリティの必要なバージョンは、パッチの readme ファイルにあります。My Oracle Support から最新の OPatch ユーティリティをダウンロードし、CEV を再度作成してください。 -
CEV マニフェストで指定されたパッチの順序が間違っています。
RDS イベントは、RDS コンソール (ナビゲーションペインでイベント) を選択) で、またはdescribe-events
AWS CLIコマンドを使用して表示できます。デフォルトの期間は 60 分間です。イベントが返されない場合は、次の例のようにより長い期間を指定します。
aws rds describe-events --duration 360
現在、Amazon S3 からファイルをインポートして CEV を作成する MediaImport サービスは、AWS CloudTrailと統合されていません。そのため、CloudTrail で Amazon RDS のデータログを有効にすると、CreateCustomDbEngineVersion
イベントのようなMediaImport サービスの呼び出しはログに記録されません。
ただし、Amazon S3 バケットにアクセスする API Gateway からの呼び出しが表示される場合があります。これらの呼び出しは、CreateCustomDbEngineVersion
イベントの MediaImport サービスから出されます。
RDS Custom for Oracle でサポートされていない構成の修正
共有責任モデルでは、RDS Custom for Oracle DB インスタンスを unsupported-configuration
状態にする設定上の問題は、お客様の責任で解決していただく必要があります。問題がAWSインフラストラクチャであれば、コンソールやAWS CLIを使用して修正できます。OSまたはデータベースの設定に問題がある場合は、ホストにログインして修正できます。
注記
このセクションでは RDS Custom for Oracle でサポートされていない構成を修正する方法について説明します。RDS Custom for SQL Server の詳細については、「RDS Custom for SQL Server DB でサポートされていない構成の修正」を参照してください。
次の表では、サポートペリメーターが送信する通知とイベント、その修正方法について説明します。これらの通知とサポートペリメーターは変更されることがあります。サポート周辺の背景については、「RDS Custom サポート範囲」を参照してください。イベントの説明については、「 の Amazon RDS イベントカテゴリとイベントメッセージ」を参照してください。
イベント ID | 構成 | RDS イベントメッセージ | アクション |
---|---|---|---|
|
サポートされていない手動設定 |
|
この問題を解決するには、AWS Supportケースを作成します。 |
AWS リソース (インフラストラクチャ) | |||
|
Amazon Elastic Block Store (Amazon EBS) ボリューム |
|
RDS Custom は、Amazon マシンイメージ (AMI) から作成したルートボリュームのほか、2 種類の EBS ボリュームを作成して EC2 インスタンスに関連付けます。
DB インスタンスを作成する際に指定したストレージ設定により、データボリュームが設定されます。 サポートペリメーターは、次のことをモニタリングします。
次の CLI コマンドを使用して、EBS ボリュームの詳細と RDS Custom for Oracle インスタンスの詳細のボリュームタイプを比較します。
|
|
Amazon Elastic Block Store (Amazon EBS) ボリューム |
|
RDS Custom は、Amazon マシンイメージ (AMI) から作成したルートボリュームのほか、2 種類の EBS ボリュームを作成して EC2 インスタンスに関連付けます。
DB インスタンスを作成する際に指定したストレージ設定により、データボリュームが設定されます。 サポートペリメーターは、次のことをモニタリングします。
次の CLI コマンドを使用して、EBS ボリュームの詳細と RDS Custom for Oracle インスタンスの詳細のボリュームタイプを比較します。
|
|
Amazon Elastic Block Store (Amazon EBS) ボリューム |
|
RDS Custom は、Amazon マシンイメージ (AMI) から作成したルートボリュームのほか、2 種類の EBS ボリュームを作成して EC2 インスタンスに関連付けます。
DB インスタンスを作成する際に指定したストレージ設定により、データボリュームが設定されます。 サポートペリメーターは、次のことをモニタリングします。
次の CLI コマンドを使用して、EBS ボリュームの詳細と RDS Custom for Oracle インスタンスの詳細のボリュームタイプを比較します。
|
|
Amazon EC2 インスタンスの状態 |
|
DB インスタンスのステータスを確認するには、コンソールを使用するか、次の AWS CLI コマンドを実行します。
|
|
Amazon EC2 インスタンス属性 |
|
|
|
Amazon EC2 インスタンスの状態 |
|
サポートペリメーターは、 EC2 インスタンスの状態変更通知をモニタリングします。EC2 インスタンスは常に実行されている必要があります。 DB インスタンスを削除するには
|
|
Amazon EC2 インスタンスの状態 |
|
サポートペリメーターは、 EC2 インスタンスの状態変更通知をモニタリングします。EC2 インスタンスは常に実行されている必要があります。 DB インスタンスを再起動するには
|
オペレーティングシステム | |||
|
RDS カスタムエージェントステータス |
|
RDS Custom for Oracle では、RDS カスタムエージェントが停止すると、DB インスタンスはサポートペリメーターを外れます。エージェントは、30 秒ごとに RDS Custom エージェントを再起動するには
RDS Custom エージェントが再び実行されると、 |
|
AWS Systems Manager エージェント (SSM エージェント) ステータス |
|
SSM Agent は常に実行されている必要があります。RDS Custom エージェントは、Systems Manager Agent が実行されていることを確認するロールがあります。SSM Agent が終了して再起動した場合、RDS Custom エージェントはメトリクスを CloudWatch に発行します。RDS Custom エージェントには、過去 3 分ごとに再起動があった場合にトリガーするアラームのメトリクスセットが設定されています。サポート境界は、ホスト上の SSM Agent のプロセス状態も 30 分ごとにモニタリングします。 詳細については、「SSM Agent のトラブルシューティング」を参照してください。 |
|
AWS Systems Manager エージェント (SSM エージェント) ステータス |
|
詳細については、「SSM Agent のトラブルシューティング」を参照してください。 |
|
OS のタイムゾーン |
|
RDS オートメーションは、ホストのタイムゾーンがオプショングループを使用せずに変更されたことを検出しました。このホストレベルの変更により RDS オートメーションが失敗する可能性があるため、EC2 インスタンスは タイムゾーン設定を修正するには
DB インスタンスは 30 分以内に利用可能になります。将来ペリメーターから外れないようにするため、オプショングループを使用してタイムゾーンを変更します。詳細については、「Oracle のタイムゾーン」を参照してください。 |
|
|
|
サポートペリメーターは、特定の OS ユーザーがボックス上で特定のコマンドを実行できることをモニタリングします。これは、
sudo 設定の変更を調査するには
サポート境界が |
|
S3 バケットのアクセシビリティ |
|
|
データベース | |||
|
データベースアーカイブ遅延ターゲット |
|
サポート境界は、DB インスタンスの最新の復元可能時間が妥当な範囲内であることを確認するため、 アーカイブ REDO ログの遅延ターゲットを変更するには
DB インスタンスは 30 分以内に利用可能になります。 |
|
Oracle Data Guard ロール |
|
サポートペリメーターは、 15 秒ごとに現在のデータベースロールをモニタリングし、データベースロールが変更されると CloudWatch 通知を送信します。Oracle Data Guard Oracle Data Guard データベースロールをサポートされる値に復元するには
サポートペリメーターがデータベースロールがサポートされると判断すると、RDS Custom for Oracle DB インスタンスは 15 秒以内に利用可能になります。 |
|
データベースのヘルス |
|
サポートペリメーターは DB インスタンスの状態をモニタリングします。また、前の 1 時間と前日に、何回再起動が発生したかをモニタリングします。インスタンスがまだ存在する状態にあるときに通知されますが、インスタンスと対話することはできません。 サポート境界にインスタンスの状態を評価させるには
DB インスタンスの再起動後、RDS Custom エージェントは DB インスタンスが無応答の状態ではなくなったことを検出します。次に、DB インスタンスの状態を再評価するようサポートペリメーターに通知します。 |
|
データベースログモード |
|
DB インスタンスのログモードを
|
|
Oracle ホームパス |
|
|
|
データベースの一意の名前 |
|
DB インスタンスのデータベースの一意の名前を変更するには
RDS Custom エージェントは DB インスタンスを再起動し、ログモードを |
RDS Custom for Oracle のアップグレードに関するトラブルシューティング
RDS Custom for Oracle インスタンスのアップグレードに失敗する場合があります。以下では、RDS Custom DB for Oracle DB インスタンスのアップグレード時に使用できるテクニックを紹介します。
-
DB インスタンスの
/tmp
ディレクトリにあるアップグレード出力ログファイルを確認します。ログの名前は、DB エンジンのバージョンによって異なります。例えば、catupgrd
またはcatup
という文字列を含むログが表示される場合があります。 -
/rdsdbdata/log/trace
ディレクトリにあるalert.log
ファイルを確認します。 -
grep
ディレクトリで以下のroot
コマンドを実行し、アップグレード OS のプロセスを追跡します。このコマンドは、ログファイルが書き込まれる場所を示し、アップグレードプロセスの状態を判断します。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 クエリを実行してコンポーネントの現在の状態を確認し、DB インスタンスにインストールされているデータベースのバージョンとオプションを見つけます。
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 レプリカを昇格させることができます。プライマリ DB インスタンスを削除し、すべてのレプリカが正常であれば、RDS Custom for Oracle はマネージドレプリカをスタンドアロンインスタンスに自動的に昇格させます。レプリカが自動化を一時停止しているか、サポートペリメーター外にある場合は、RDS Custom が自動的にレプリカを昇格させる前にレプリカを修正する必要があります。詳細については、「RDS Custom for Oracle のレプリカの昇格の制限事項」を参照してください。
以下の状況では、レプリカのプロモーションワークフローが停止することがあります。
-
プライマリ DB インスタンスは、
STORAGE_FULL
状態です。 -
プライマリデータベースは、すべてのオンライン REDO ログをアーカイブできるわけではありません。
-
Oracle レプリカとプライマリデータベースのアーカイブ REDO ログファイルの間にギャップが存在します。
停止したワークフローに対応するには
-
Oracle レプリカ DB インスタンスの REDO ログギャップを同期します。
-
適用された最新の REDO ログにリードレプリカを強制的に昇格させます。SQL*Plus の次のコマンドを実行します。
ALTER DATABASE ACTIVATE STANDBY DATABASE; SHUTDOWN IMMEDIATE STARTUP
-
AWS Supportに連絡し、DB インスタンスを
available
ステータスに移行してもらいます。