Amazon Relational Database Service (Amazon RDS) DB インスタンスで「ORA-39405」または「ORA-39002」エラーが発生しました。
簡単な説明
次のいずれかに類似したエラーが発生する場合があります。
- "ORA-39002: 操作が無効です"
- "ORA-39405: Oracle Data Pump は、TSTZ バージョン 35 のソースデータベースから TSTZ バージョン 33 のターゲットデータベースへのインポートをサポートしていません"
夏時間 (DST) のバージョンが異なるソースデータベースとターゲットデータベース間でデータを転送しようとすると、上記のエラーのいずれかが表示されます。新しいバージョンでは、Oracle は新しい DST ファイルと、さまざまなタイムゾーンのルール変更に関するマイナーアップデートをリリースしています。
解決策
重要: 本番環境の RDS インスタンスを変更する前に、本番以外の環境でタイムゾーンに関連する変更をテストするのがベストプラクティスです。また、DB インスタンスのスナップショットを復元してから本番環境を変更するようにしてください。
ターゲットデータベースの DST タイムゾーンバージョンを、ソースデータベースバージョンと同じかそれ以降のバージョンにアップグレードします。
DB インスタンスの現在のタイムゾーンを確認する
DB インスタンスの現在のタイムゾーンバージョンを確認するには、次のクエリを実行します。
SQL> SELECT * FROM V$TIMEZONE_FILE;
使用可能な最新のタイムゾーンバージョンを確認するには、次のクエリを実行します。
SQL> SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
TIMEZONE_FILE_AUTOUPGRADE オプションを追加する
DB インスタンスのタイムゾーンファイルを最新バージョンに自動的にアップグレードするには、新規または既存のインスタンスオプショングループに TIMEZONE_FILE_AUTOUPGRADE オプションを追加します。
注: インスタンスにアタッチされている既存のオプショングループにオプションを追加すると、タイムゾーンファイルの更新中にダウンタイムが発生します。
TIMEZONE_FILE_AUTOUPGRADE オプションの適用後、Amazon RDS は次のクエリを実行して新しい DST バージョンを確認し、すぐに更新を開始します。
SQL> SELECT * FROM V$TIMEZONE_FILE;
タイムゾーンの更新後にデータを確認する
DB インスタンスのタイムゾーンファイルを更新した後、データを確認するのがベストプラクティスです。Amazon RDS for Oracle では、以下のテーブルが自動的に作成されます。
- rdsadmin.rds_dst_affected_tables には、更新の影響を受けるデータを含むテーブルが一覧表示されます。
- rdsadmin.rds_dst_error_table には、更新中に発生したエラーが一覧表示されます。
更新の結果を確認するには、次のコマンドを実行してテーブルをクエリします。
SELECT * FROM rdsadmin.rds_dst_affected_tables;
SELECT * FROM rdsadmin.rds_dst_error_table;
影響を受けるデータテーブルとエラーテーブルのスキーマの詳細については、Oracle のウェブサイトで 「FIND_AFFECTED_TABLES プロシージャ」を参照してください。
関連情報
Amazon RDS for Oracle Database 19c (19.0.0.0)
オプショングループの概要
Amazon RDS for Oracle インスタンスのタイムゾーンを変更する方法を教えてください