Oracle を実行している Amazon RDS DB インスタンスで sys.aud$ テーブルを削除するにはどうしたらいいですか?

所要時間1分
0

Oracle を実行しているAmazon Relational Database Service (Amazon RDS) DB インスタンスで sys.aud$ テーブルを削除するにはどうしたらいいですか?

解決方法

sys.aud$ テーブルを削除するには、マスターユーザーとして次のコマンドを実行します。

SQL> exec rdsadmin.rdsadmin_master_util.truncate_sys_aud_table;

このプロシージャーが正常に完了すると、次のような出力が表示されます。

PL/SQL procedure successfully completed.
SQL> select count(*) from sys.aud$;
 COUNT(*)
----------
         0

注: テーブルの削除には、RDS DB インスタンスで、TRUNCATE_SYS_AUD_TABLE プロシージャーをマスターユーザーとして実行する必要があります。この操作は、Oracle バージョン 12.1.0.2.v2 と 11.2.0.4.v6、および それ以降のバージョンでサポートされています。

前出のコマンドが失敗する場合は、AWS サポートにお問い合わせください。AWS がご提供すべきサポートの内容を確認するために、次のコマンドを実行し、その出力結果を記録しておいてください。

1.    次のコマンドを実行しTRUNCATE_SYS_AUD_TABLEプロシージャーが、ご使用の RDS DB インスタンスで利用可能かを確認してください。

SQL> desc rdsadmin.rdsadmin_master_util

RDS DB インスタンスにおいて TRUNCATE_SYS_AUD_TABLE プロシージャーが有効な場合は、次のような出力結果が表示されます。

FUNCTION IS_DML_ENABLED RETURNS BOOLEAN
PROCEDURE TRUNCATE_SYS_AUD_TABLE
PROCEDURE TRUNCATE_SYS_FGA_LOG_TABLE

2.    次のコマンドを実行し、 RDS_MASTER_ROLE ロールが、ご使用の RDS DB インスタンスで利用可能かを確認してください。

SQL> select role from dba_roles where role='RDS_MASTER_ROLE';

RDS_MASTER_ROLE ロールが RDS DB インスタンスで利用可能な場合、次のような出力結果が表示されます。

ROLE
--------------------------------------------
RDS_MASTER_ROLE

3.    次のコマンドを実行し、マスターユーザーに TRUNCATE_SYS_AUD_TABLE プロシージャーを実行する権限があるか確認してください。

SQL> select granted_role, grantee, admin_option from dba_role_privs where granted_role='RDS_MASTER_ROLE';

マスターユーザーに TRUNCATE_SYS_AUD_TABLE プロシージャを実行する権限がある場合、次のような出力結果が表示されます。

GRANTED_ROLE         GRANTEE              ADM
-------------------- -------------------- ---
RDS_MASTER_ROLE      SYS                  YES
RDS_MASTER_ROLE      MASTER_USER          NO

関連情報

Amazon RDS での Oracle

Oracle DB インスタンスの一般的な DBA タスク

AWS公式
AWS公式更新しました 4年前
コメントはありません

関連するコンテンツ