Oracle DB インスタンスの一般的なデータベースタスクの実行 - Amazon Relational Database Service

Oracle DB インスタンスの一般的なデータベースタスクの実行

次に、Oracle を実行している Amazon RDS DB インスタンスのデータベースに関連する特定の一般的な DBA タスクを実行する方法を示します。マネージドサービスエクスペリエンスを提供するために、Amazon RDS は DB インスタンスへのシェルアクセスを提供していません。また、Amazon RDS では、高度な特権を必要とする、一部のシステムプロシージャやテーブルへのアクセスが制限されます。

データベースのグローバル名の変更

データベースのグローバル名を変更するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.rename_global_name を使用します。rename_global_name プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

p_new_global_name

varchar2

はい

データベースの新しいグローバル名。

名前の変更を実行するには、データベースが開いている必要があります。データベースのグローバル名の変更の詳細については、Oracle ドキュメントの「ALTER DATABASE」を参照してください。

次の例では、データベースのグローバル名を new_global_name に変更します。

EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');

テーブルスペースの作成とサイズ変更

Amazon RDS は、データファイル、ログファイル、制御ファイルとして Oracle Managed Files (OMF) のみをサポートしています。データファイルとログファイルを作成するときは、物理ファイル名を指定することはできません。

デフォルトでは、テーブルスペースは自動エクステンションを有効にして作成され、最大サイズでは作成されません。これらのデフォルト設定のため、テーブルスペースはすべての割り当てられたストレージを消費するまで大きくなります。永続テーブルスペースとテンポラリテーブルスペースに適切な最大サイズを指定し、リージョンの使用状況を注意深くモニタリングすることをお勧めします。

次の例では、スタートサイズが 1 ギガバイト、最大サイズが 10 ギガバイトのテーブルスペース users2 を作成します。

CREATE TABLESPACE users2 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;

次の例では、テンポラリテーブルスペース temp01 を作成します。

CREATE TEMPORARY TABLESPACE temp01;

Amazon RDS for Oracle では smallfile テーブルスペースをサイズ変更できないため、smallfile テーブルスペースは使用しないことをお勧めします。ただし、smallfile テーブルスペースにはデータファイルを追加できます。

ALTER TABLESPACE を使用すると、bigfile テーブルスペースをサイズ変更できます。サイズは、キロバイト (K)、メガバイト (M)、ギガバイト (G)、またはテラバイト (T) で指定できます。

次の例では、bigfile テーブルスペース users2 のサイズを 200 MB に変更します。

ALTER TABLESPACE users2 RESIZE 200M;

次の例では、smallfile テーブルスペース users2 に追加のデータファイルを追加します。

ALTER TABLESPACE users2 ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

デフォルトテーブルスペースの設定

デフォルトのテーブルスペースを設定するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.alter_default_tablespace を使用します。alter_default_tablespace プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

tablespace_name

varchar

はい

デフォルトのテーブルスペースの名前。

次の例では、デフォルトのテーブルスペースを users2 に設定します。

EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');

デフォルトのテンポラリテーブルスペースの設定

デフォルトのテンポラリテーブルスペースを設定するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.alter_default_temp_tablespace を使用します。alter_default_temp_tablespace プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

tablespace_name

varchar

はい

デフォルトのテンポラリテーブルスペースの名前。

次の例では、デフォルトのテンポラリテーブルスペースを temp01 に設定します。

EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');

データベースのチェックポイント機能

データベースのチェックポイントを作成するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.checkpoint を使用します。checkpoint プロシージャにはパラメータはありません。

次の例では、データベースのチェックポイントを作成します。

EXEC rdsadmin.rdsadmin_util.checkpoint;

分散復旧の設定

分散復旧を設定するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.enable_distr_recoverydisable_distr_recovery を使用します。このプロシージャにはパラメータはありません。

次の例では、分散復旧を有効にします。

EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;

次の例では、分散復旧を無効にします。

EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;

データベースタイムゾーンの設定

以下の方法で、Amazon RDS Oracle データベースのタイムゾーンを設定できます。

  • Timezone オプション

    Timezone オプションは、ホストレベルでタイムゾーンを変更し、SYSDATE など、すべての日付列と値に影響します。詳細については、「Oracle のタイムゾーン」を参照してください。

  • Amazon RDS プロシージャ rdsadmin.rdsadmin_util.alter_db_time_zone

    alter_db_time_zone プロシージャは、特定のデータ型のみのタイムゾーンを変更し、SYSDATE は変更しません。タイムゾーンの設定に関する他の制限については、Oracle ドキュメントに示されています。

注記

Oracle Scheduler のデフォルトのタイムゾーンを設定することもできます。詳細については、「Oracle Scheduler ジョブのタイムゾーンの設定」を参照してください。

alter_db_time_zone プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

p_new_tz

varchar2

はい

指定したリージョンまたは協定世界時 (UTC) からの絶対オフセットとしての新しいタイムゾーン。有効なオフセットの範囲は -12:00 〜 +14:00 です。

以下の例では、タイムゾーンを UTC + 3 時間に変更します。

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');

以下の例では、タイムゾーンをアフリカ/アルジェーのタイムゾーンに変更します。

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');

alter_db_time_zone プロシージャを使用してタイムゾーンを変更した後、変更を有効にするために DB インスタンスを再起動します。詳細については、「 DB インスタンスの再起動」を参照してください。タイムゾーンのアップグレードについては、「タイムゾーンに関する考慮事項」を参照してください。

Oracle 外部テーブルの使用

Oracle 外部テーブルは、データベースにないデータのテーブルです。代わりに、データはデータベースがアクセスできる外部ファイルにあります。外部テーブルを使用して、データベースにロードしないでデータにアクセスできます。外部テーブルの詳細については、Oracle ドキュメントの「外部表の管理」を参照してください。

Amazon RDS では、外部テーブルファイルをディレクトリオブジェクトに保存できます。ディレクトリオブジェクトは、新規作成するか、Oracle データベースに定義済みのもの (DATA_PUMP_DIR ディレクトリなど) を使用できます。ディレクトリオブジェクトの作成方法については、「主要データストレージ領域でのディレクトリの作成と削除」を参照してください。Amazon RDS Oracle DB インスタンスのディレクトリオブジェクトを一覧表示するには、ALL_DIRECTORIES ビューをクエリできます。

注記

ディレクトリオブジェクトは、インスタンスで使用されているメインのデータストレージ領域 (Amazon EBS ボリューム) を参照します。データファイル、REDO ログ、監査、追跡、およびその他のファイルで使用される領域は、割り当てられたストレージの消費としてカウントされます。

外部データファイルを Oracle データベース間で移行するには、DBMS_FILE_TRANSFER パッケージまたは UTL_FILE パッケージを使用できます。外部データファイルは、移行元のデータベースのディレクトリから、移行先のデータベースの指定されたディレクトリに移行されます。DBMS_FILE_TRANSFER の使用方法の詳細については、「Oracle Data Pump を使用したインポート」を参照してください。

移行した外部データファイルを使用して、外部テーブルを作成できます。次の例では、USER_DIR1 ディレクトリの emp_xt_file1.txt ファイルを使用する外部テーブルを作成します。

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

Amazon RDS Oracle DB インスタンスにあるデータを外部データファイル内に移行するとします。この場合、外部テーブルを作成し、データベースのテーブルから選択したデータを外部データファイルに入力できます。例えば、次の SQL ステートメントでは、データベースの orders_xt テーブルをクエリすることで orders 外部テーブルを作成します。

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

この例では、データは DATA_PUMP_DIR ディレクトリの orders_xt.dmp ファイルに入力されます。

自動ワークロードリポジトリ (AWR) を使用したパフォーマンスレポートの生成

パフォーマンスデータを収集してレポートを生成するにあたって、Oracle では自動ワークロードリポジトリ (AWR) を推奨しています。AWR には、Oracle Database Enterprise Edition と診断パックおよびチューニングパックのライセンスが必要です。AWR を有効にするには、初期化パラメータ CONTROL_MANAGEMENT_PACK_ACCESS に、DIAGNOSTIC または DIAGNOSTIC+TUNING を設定します。

RDS での AWR レポートの使用

AWR レポートを生成するには、awrrpt.sql などのスクリプトを実行します。これらのスクリプトは、データベースホストサーバーにインストールされます。Amazon RDS では、ホストに直接アクセスすることはできません。ただし、Oracle Database の別のインストールから SQL スクリプトのコピーを取得することは可能です。

また、SYS.DBMS_WORKLOAD_REPOSITORY PL/SQL パッケージでプロシージャを実行して AWR を使用することもできます。このパッケージを使用して、ベースラインとスナップショットを管理したり、ASH および AWR レポートを表示したりできます。例えば、テキスト形式で AWR レポートを生成するには、DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT プロシージャを実行します。ただし、これらの AWR レポートには、AWS Management Console からはアクセスできません。

AWR を使用する場合は、rdsadmin.rdsadmin_diagnostic_util プロシージャを使用することをお勧めします。これらのプロシージャを使用すると、次の項目を生成できます。

  • AWR レポート

  • アクティブセッション履歴 (ASH) レポート

  • 自動データベース診断モニター (ADDM) レポート

  • AWR データの Oracle Data Pump Export ダンプファイル

rdsadmin_diagnostic_util プロシージャは、レポートを DB インスタンスファイルシステムに保存します。これらのレポートには、コンソールからアクセスできます。rdsadmin.rds_file_util プロシージャを使用してレポートにアクセスしたり、S3 統合オプションを使用して Amazon S3 にコピーされたレポートにアクセスすることもできます。詳細については、「DB インスタンスディレクトリ内のファイルの読み取り」および「Amazon S3 統合」を参照してください。

以下の Amazon RDS for Oracle DB エンジンバージョンの rdsadmin_diagnostic_util 手順を使用できます。

  • すべての Oracle Database 21c バージョン

  • 19.0.0.0.ru-2020-04.rur-2020-04.r1 以上の Oracle Database 19c バージョン

  • 12.2.0.1.ru-2020-04.rur-2020-04.r1 以上の Oracle Database 12c Release 2 (12.2) バージョン

  • 12.1.0.2.v20 以上の Oracle Database 12c Release 1 (12.1) バージョン

Diagnostic Utility Package の一般的なパラメータ

rdsadmin_diagnostic_util パッケージを使用して AWR および ADDM を管理する場合は、通常、次のパラメータを使用します。

パラメータ データ型 デフォルト 必須 説明

begin_snap_id

NUMBER

はい

スタートスナップショットの ID。

end_snap_id

NUMBER

はい

終了スナップショットの ID。

dump_directory

VARCHAR2

BDUMP

いいえ

レポートまたはエクスポートファイルの書き込み先のディレクトリ。デフォルト以外のディレクトリを指定する場合、 rdsadmin_diagnostic_util プロシージャを実行するユーザーは、そのディレクトリに対する書き込み権限を持っている必要があります。

p_tag

VARCHAR2

いいえ

バックアップの用途や使用方法を示すためにバックアップを区別する目的で使用できる incrementaldaily などの文字列。

最大 30 文字を指定できます。有効な文字は、a-zA-Z0-9、アンダースコア (_)、ダッシュ (-)、およびピリオド (.) です。タグでは、大文字と小文字は区別されません。RMAN では、タグを入力する際に使用されるのが大文字か小文字かに関係なく、常に大文字でタグが格納されます。

タグは一意である必要はないので、複数のバックアップに同じタグを付けることができます。タグを指定しない場合、RMAN は、TAGYYYYMMDDTHHMMSS の形式を使用してデフォルトのタグを自動的に割り当てます。ここで YYYY は年、MM は月、DD は日、HH は時間 (24 時間形式)、MM は分、SS は秒です。日付と時刻は、RMAN がバックアップを開始した日時を示します。例えば、デフォルトタグ TAG20190927T214517 を持つバックアップは、2019-09-27 の 21:45:17 に開始されたバックアップであることを示します。

p_tag パラメータは、以下の RDS for Oracle DB エンジンバージョンでサポートされています。

  • Oracle Database 21c (21.0.0)

  • 19.0.0.0.ru-2021-10.rur-2021-10.r1 以降を使用する、Oracle Database 19c (19.0.0)

  • 12.2.0.1.ru-2021-10.rur-2021-10.r1 以降を使用する、Oracle Database 12c リリース 2 (12.2)

  • 12.1.0.2.V26 以降を使用する、Oracle Database 12c リリース 1 (12.1)

report_type

VARCHAR2

HTML

いいえ

レポートの形式。有効な値は、TEXT および HTML です。

dbid

NUMBER

いいえ

Oracle の DBA_HIST_DATABASE_INSTANCE ビューに表示される有効なデータベース識別子 (DBID)。このパラメータを指定しない場合、RDS は V$DATABASE.DBID ビューに表示される現在の DBID を使用します。

rdsadmin_diagnostic_util パッケージで ASH を管理する場合は、通常、次のパラメータを使用します。

Parameter データ型 デフォルト 必須 説明

begin_time

DATE

はい

ASH 分析のスタート時刻。

end_time

DATE

はい

ASH 分析の終了時刻。

slot_width

NUMBER

0

いいえ

ASH レポートの「Top Activity」セクションで使用されるスロットの期間 (秒単位)。このパラメータを指定しない場合、begin_timeend_time と間の時間間隔は 10 以下のスロットを使用します。

sid

NUMBER

Null

いいえ

セッション ID。

sql_id

VARCHAR2

Null

いいえ

SQL ID。

wait_class

VARCHAR2

Null

いいえ

待機クラス名。

service_hash

NUMBER

Null

いいえ

サービス名のハッシュ。

module_name

VARCHAR2

Null

いいえ

モジュール名。

action_name

VARCHAR2

Null

いいえ

アクション名。

client_id

VARCHAR2

Null

いいえ

データベースセッションのアプリケーション固有の ID。

plsql_entry

VARCHAR2

Null

いいえ

PL/SQL エントリポイント。

AWR レポートの生成

AWR レポートを生成するには、rdsadmin.rdsadmin_diagnostic_util.awr_report の手順を使用します。

次の例は、スナップショット範囲 101~106 の AWR レポートを生成します。出力テキストファイルには awrrpt_101_106.txt という名前が付けられます。このレポートには、AWS Management Console からアクセスできます。

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');

次の例は、スナップショット範囲 63~65 の HTML レポートを生成します。出力 HTML ファイルには awrrpt_63_65.html という名前が付けられます。プロシージャによって、レポートが AWR_RPT_DUMP という名前のデフォルト以外のデータベースディレクトリに書き込まれます。

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');

ダンプファイルへの AWR データの抽出

AWR データをダンプファイルに抽出するには、rdsadmin.rdsadmin_diagnostic_util.awr_extract プロシージャを使用します。

次の例は、スナップショット範囲 101~106 を抽出します。出力ダンプファイルには awrextract_101_106.dmp という名前が付けられます。このファイルには、コンソールからアクセスできます。

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);

次の例は、スナップショット範囲 63~65 を抽出します。出力ダンプファイルには awrextract_63_65.dmp という名前が付けられます。ファイルは、AWR_RPT_DUMP という名前のデフォルト以外のデータベースディレクトリに保存されます。

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');

ADDM レポートの生成

ADDM レポートを生成するには、rdsadmin.rdsadmin_diagnostic_util.addm_report プロシージャを使用します。

次の例は、スナップショット範囲 101~106 の ADDM レポートを生成します。出力テキストファイルには addmrpt_101_106.txt という名前が付けられます。レポートには、コンソールからアクセスできます。

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);

次の例は、スナップショット範囲 63~65 の ADDM レポートを生成します。出力テキストファイルには addmrpt_63_65.txt という名前が付けられます。ファイルは、ADDM_RPT_DUMP という名前のデフォルト以外のデータベースディレクトリに保存されます。

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');

ASH レポートの生成

ASH レポートを生成するには、rdsadmin.rdsadmin_diagnostic_util.ash_report プロシージャを使用します。

次の例では、14 分前から現在の時刻までのデータを含む ASH レポートを生成します。出力ファイルの名前は ashrptbegin_timeend_time.txt の形式を使用し、begin_time および end_timeYYYYMMDDHH24MISS の形式を使用します。ファイルには、コンソールからアクセスできます。

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /

次の例では、2019 年 11 月 18 日の午後 6:07 から 2019 年 11 月 18 日の午後 6:15 までのデータを含む ASH レポートを生成します。出力 HTML レポートの名前は ashrpt_20190918180700_20190918181500.html です。レポートは、AWR_RPT_DUMP という名前のデフォルト以外のデータベースディレクトリに保存されます。

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'), end_time => TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'), report_type => 'html', dump_directory => 'AWR_RPT_DUMP'); END; /

コンソールまたは CLI からの AWR レポートへのアクセス

AWR レポートにアクセスしたり、ダンプファイルをエクスポートしたりするには、AWS Management Console または AWS CLI を使用します。詳細については、「データベースログファイルのダウンロード」を参照してください。

同じ Virtual Private Cloud (VPC) 内またはピア接続された VPC 内の Amazon RDS DB インスタンスで Oracle データベースリンクを使用するには、2 つの DB インスタンス間に有効なルートが存在する必要があります。VPC ルーティングテーブルおよびネットワークアクセス制御リスト (ACL) を使用して、DB インスタンス間の有効なルートを確認します。

各 DB インスタンスのセキュリティグループは他の DB インスタンスの受信と送信を許可する必要があります。インバウンドルールとアウトバウンドルールは、同じ VPC またはピアリング接続先 VPC からセキュリティグループを参照できます。詳細については、「セキュリティグループの更新によるピア VPC セキュリティグループの参照」を参照してください。

VPC で DHCP オプションセットを使用してカスタム DNS サーバーを設定した場合、カスタム DNS サーバーはデータベースリンクターゲットの名前を解決できる必要があります。詳細については、「カスタム DNS サーバーのセットアップ」を参照してください。

Oracle Data Pump でのデータベースリンクの使用の詳細については、「Oracle Data Pump を使用したインポート」を参照してください。

DB インスタンスのデフォルトエディションの設定

データベースオブジェクトは、エディションと呼ばれるプライベート環境で再定義できます。エディションベースの再定義を使用して、最小限のダウンタイムでアプリケーションのデータベースオブジェクトをアップグレードできます。

Amazon RDS Oracle DB インスタンスのデフォルトエディションは、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.alter_default_edition を使用して設定できます。

次の例では、Amazon RDS Oracle DB インスタンスのデフォルトエディションを RELEASE_V1 に設定します。

EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');

次の例では、Amazon RDS Oracle DB インスタンスのデフォルトエディションを Oracle のデフォルトに設定し直します。

EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');

Oracle エディションベースの再定義の詳細については、Oracle ドキュメントの「エディションおよびエディションに基づく再定義の概要」を参照してください。

SYS.AUD$ テーブルの監査を有効にする

データベースの監査証跡テーブル SYS.AUD$ の監査を有効にするには、Amazon RDS プロシージャ rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table を使用します。サポートされている監査プロパティは、ALL のみです。個々のステートメントまたはオペレーションは監査することもしないこともできません。

監査の有効化は、次のバージョンを実行している Oracle DB インスタンスでサポートされています。

  • Oracle Database 21c (21.0.0)

  • Oracle Database 19c (19.0.0)

  • Oracle Database 12c Release 2 (12.2)

  • Oracle Database 12c リリース 1 (12.1.0.2.v14) 以降

audit_all_sys_aud_table プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

p_by_access

boolean

true

いいえ

true を監査するには、BY ACCESS に設定します。false を監査するには、BY SESSION に設定します。

注記

シングルテナント CDB では、以下のオペレーションは機能しますが、お客様が表示可能なメカニズムはオペレーションの現在のステータスを検出できません。監査情報は PDB 内から利用できません。詳細については、「シングルテナント CDB の制限事項」を参照してください。

以下のクエリでは、データベースの SYS.AUD$ に対する現在の監査設定が返ります。

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

以下のコマンドでは、ALL SYS.AUD$BY ACCESS の監査を有効にします。

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);

以下のコマンドでは、ALL SYS.AUD$BY SESSION の監査を有効にします。

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);

詳細については、Oracle ドキュメントの「AUDIT (従来の監査)」を参照してください。

SYS.AUD$ テーブルの監査を無効にする

データベースの監査証跡テーブル SYS.AUD$ の監査を無効にするには、Amazon RDS プロシージャ rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table を使用します。この手順では、パラメータは使用しません。

以下のクエリでは、データベースの SYS.AUD$ に対する現在の監査設定が返ります。

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

以下のコマンドでは、ALLSYS.AUD$ の監査が無効にされます。

EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;

詳細については、Oracle ドキュメントの「NOAUDIT (従来の監査)」を参照してください。

中断したオンラインインデックス構築のクリーンアップ

失敗したオンラインインデックス構築をクリーンアップするには、Amazon RDS プロシージャ rdsadmin.rdsadmin_dbms_repair.online_index_clean を使用します。

online_index_clean プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

object_id

binary_integer

ALL_INDEX_ID

いいえ

インデックスのオブジェクト ID。通常、ORA-08104 エラーテキストからのオブジェクト ID を使用できます。

wait_for_lock

binary_integer

rdsadmin.rdsadmin_dbms_repair.lock_wait

いいえ

デフォルトの rdsadmin.rdsadmin_dbms_repair.lock_wait を指定して、基盤となるオブジェクトのロックを取得することを試みます。ロックが失敗した場合は、内部制限に達するまで再試行できます。

rdsadmin.rdsadmin_dbms_repair.lock_nowait を指定して、基盤となるオブジェクトのロックを取得することを試みることができますが、ロックが失敗すると再試行はできません。

以下の例は、失敗したオンラインインデックス構築のクリーンアップを示しています。

declare is_clean boolean; begin is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean( object_id => 1234567890, wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait ); end; /

詳細については、Oracle ドキュメントの「ONLINE_INDEX_CLEAN Function」を参照してください。

破損ブロックのスキップ

インデックスとテーブルのスキャンの中に破損ブロックをスキップするには、rdsadmin.rdsadmin_dbms_repair パッケージを使用します。

以下の手順では、sys.dbms_repair.admin_table 手順の機能をラップし、パラメータを取得しません。

  • rdsadmin.rdsadmin_dbms_repair.create_repair_table

  • rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.drop_repair_table

  • rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.purge_repair_table

  • rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table

以下の手順では、Oracle データベースの DBMS_REPAIR パッケージの対応物として、同じパラメータを取得します。

  • rdsadmin.rdsadmin_dbms_repair.check_object

  • rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys

  • rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks

  • rdsadmin.rdsadmin_dbms_repair.rebuild_freelists

  • rdsadmin.rdsadmin_dbms_repair.segment_fix_status

  • rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks

データベースの破損の処理の詳細については、Oracle のドキュメントの「DBMS_REPAIR」を参照してください。

例 破損ブロックへの対応

この例では、破損ブロックに応答するための基本的なワークフローを示しています。ステップは、ブロックの破損の場所と性質によって異なります。

重要

破損ブロックを修復する前に、「DBMS_REPAIR」ドキュメントをよく確認してください。

インデックスとテーブルのスキャン中に破損ブロックをスキップするには

  1. 修復テーブルが存在しない場合は、以下のプロシージャを実行して作成します。

    EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
  2. 適切な場合は、以下の手順を実行して、既存のレコードを確認し、消去します。

    SELECT COUNT(*) FROM SYS.REPAIR_TABLE; SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE; SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE; SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE; EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
  3. 以下の手順を実行して、破損ブロックを確認します。

    SET SERVEROUTPUT ON DECLARE v_num_corrupt INT; BEGIN v_num_corrupt := 0; rdsadmin.rdsadmin_dbms_repair.check_object ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', corrupt_count => v_num_corrupt ); dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt)); END; / COL CORRUPT_DESCRIPTION FORMAT a30 COL REPAIR_DESCRIPTION FORMAT a30 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION FROM SYS.REPAIR_TABLE; SELECT SKIP_CORRUPT FROM DBA_TABLES WHERE OWNER = '&corruptionOwner' AND TABLE_NAME = '&corruptionTable';
  4. skip_corrupt_blocks プロシージャを使用して、該当するテーブルの破損スキップを有効または無効にします。状況によっては、新しいテーブルにデータを抽出してから、破損ブロックを含むテーブルを削除することが必要になる場合もあります。

    以下の手順を実行して、該当するテーブルの破損スキップを有効にします。

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.skip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';

    以下の手順を実行して、破損スキップを無効にします。

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
  5. すべての修復作業が完了したら、以下の手順を実行して修復テーブルを削除します。

    EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;

リードレプリカのテンポラリテーブルスペースのサイズ変更

デフォルトでは、Oracle テーブルスペースは自動エクステンションを有効にして作成され、最大サイズでは作成されません。これらのデフォルト設定のため、場合によっては。テーブルスペースが大きくなりすぎる可能性があります。永続テーブルスペースとテンポラリテーブルスペースに適切な最大サイズを指定し、リージョンの使用状況を注意深くモニタリングすることをお勧めします。

Oracle DB インスタンスのリードレプリカのテンポラリスペースのサイズを変更するには、Amazon RDS の rdsadmin.rdsadmin_util.resize_temp_tablespace または rdsadmin.rdsadmin_util.resize_tempfile プロシージャを使用します。

resize_temp_tablespace プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

temp_tbs

varchar2

はい

サイズを変更するテンポラリテーブルスペースの名前。

size

varchar2

はい

サイズは、バイトで (デフォルト)、キロバイト (K)、メガバイト (M)、またはギガバイト (G) で指定できます。

resize_tempfile プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

file_id

binary_integer

はい

サイズを変更するテンポラリテーブルスペースのファイル識別子。

size

varchar2

はい

サイズは、バイトで (デフォルト)、キロバイト (K)、メガバイト (M)、またはギガバイト (G) で指定できます。

次の例は、リードレプリカで TEMP というテンポラリテーブルスペースのサイズを 4 ギガバイトに変更します。

EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');

次の例は、ファイル識別子が 1 のテンポラリファイルに基づいて、リードレプリカでテンポラリテーブルスペースのサイズを 2 メガバイトに変更します。

EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');

Oracle DB インスタンスのリードレプリカの詳細については、「Amazon RDS での Oracle レプリカの使用」を参照してください。

ごみ箱を空にする

テーブルを削除しても、Oracle データベースはただちにストレージ領域を削除しません。データベースによってテーブルの名前が変更され、テーブルと関連オブジェクトがごみ箱に入れられます。ごみ箱を空にすると、これらのアイテムが削除され、ストレージ領域が解放されます。

ごみ箱全体を空にするには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.purge_dba_recyclebin を使用します。ただし、このプロシージャでは、 SYS および RDSADMIN オブジェクトのごみ箱は空になりません。これらのオブジェクトを消去する必要がある場合は、AWS サポートにお問い合わせください。

次の例は、ごみ箱全体を空にします。

EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;

完全リダクションのための Data Redaction ポリシーの設定

Amazon RDS Oracle インスタンスでの完全リダクションの Data Redaction ポリシーのデフォルト表示値を変更するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val を使用します。

dbms_redact_upd_full_rdct_val プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

p_number_val

number

Null

いいえ

NUMBER データ型の列のデフォルト値を変更します。

p_binfloat_val

binary_float

Null

いいえ

BINARY_FLOAT データ型の列のデフォルト値を変更します。

p_bindouble_val

binary_double

Null

いいえ

BINARY_DOUBLE データ型の列のデフォルト値を変更します。

p_char_val

char

Null

いいえ

CHAR データ型の列のデフォルト値を変更します。

p_varchar_val

varchar2

Null

いいえ

VARCHAR2 データ型の列のデフォルト値を変更します。

p_nchar_val

nchar

Null

いいえ

NCHAR データ型の列のデフォルト値を変更します。

p_nvarchar_val

nvarchar2

Null

いいえ

NVARCHAR2 データ型の列のデフォルト値を変更します。

p_date_val

date

Null

いいえ

DATE データ型の列のデフォルト値を変更します。

p_ts_val

timestamp

Null

いいえ

TIMESTAMP データ型の列のデフォルト値を変更します。

p_tswtz_val

timestamp with time zone

Null

いいえ

TIMESTAMP WITH TIME ZONE データ型の列のデフォルト値を変更します。

p_blob_val

blob

Null

いいえ

BLOB データ型の列のデフォルト値を変更します。

p_clob_val

clob

Null

いいえ

CLOB データ型の列のデフォルト値を変更します。

p_nclob_val

nclob

Null

いいえ

NCLOB データ型の列のデフォルト値を変更します。

次の例では、char データ型のデフォルトのリダクション値を* に変更します。

EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');

次の例では、number、date、および char データ型のデフォルトのリダクション値を変更します。

begin rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val( p_number_val=>1, p_date_val=>to_date('1900-01-01','YYYY-MM-DD'), p_varchar_val=>'X'); end; /

dbms_redact_upd_full_rdct_val プロシージャを使用して完全リダクションのデフォルト値を変更した後、変更を有効にするために DB インスタンスを再起動します。詳細については、「 DB インスタンスの再起動」を参照してください。