Oracle DB インスタンスの一般的な DBA のその他のタスク
このセクションでは、Oracle を実行する Amazon RDS DB インスタンスのその他の DBA タスクを実行する方法について説明します。マネージド型サービスの操作性を実現するために、Amazon RDS では DB インスタンスへのシェルアクセスは提供していません。また、上位の権限を必要とする特定のシステムプロシージャやシステムテーブルへのアクセスが制限されます。
主要データストレージ領域で新しいディレクトリを作成します。
ディレクトリを作成するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.create_directory
を使用します。最大 10,000 個のディレクトリを作成でき、すべてメインデータストレージ領域に配置されます。
create_directory
プロシージャには以下のパラメータがあります。
次の例では、新しいディレクトリ product_descriptions
を作成します。
exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => '
product_descriptions
');
DBA_DIRECTORIES
を照会することで、ディレクトリを一覧表示できます。システムによって実際のホストパス名が自動的に選択されます。次の例では、ディレクトリ product_descriptions
のディレクトリパスを取得します。
select DIRECTORY_PATH from DBA_DIRECTORIES where DIRECTORY_NAME='
product_descriptions
'; DIRECTORY_PATH ---------------------------------------- /rdsdbdata/userdirs/01
DB インスタンスのマスターユーザー名には、新しいディレクトリに対する読み取り権限と書き込み権限が付与され、他のユーザーにアクセスを許可できます。DB インスタンスのディレクトリでは、実行権限は使用できません。ディレクトリはメインデータストレージ領域に作成され、領域および I/O 帯域幅を消費します。
作成したディレクトリは、Oracle drop
directory
コマンドを使用して削除できます。ディレクトリを削除してもその内容は削除されません。create_directory()
メソッドはパス名を再利用できるため、削除されたディレクトリのファイルが新たに作成されたディレクトリに存在する可能性があります。ディレクトリを削除する前に、UTL_FILE.FREMOVE
を使用してディレクトリからファイルを削除する必要があります。詳細については、Oracle ドキュメントの「FREMOVE プロシージャ」を参照してください。
DB インスタンスディレクトリ内のファイルの一覧表示
ディレクトリ内のファイルを一覧表示するには、Amazon RDS プロシージャ rdsadmin.rds_file_util.listdir
を使用します。listdir
プロシージャには以下のパラメータがあります。
次の例では、ディレクトリ product_descriptions
内のファイルを一覧表示します。
select * from table (rdsadmin.rds_file_util.listdir(p_directory => '
product_descriptions
'));
DB インスタンスディレクトリ内のファイルの読み取り
テキストファイルを読み取るには、Amazon RDS プロシージャ rdsadmin.rds_file_util.read_text_file
を使用します。read_text_file
プロシージャには以下のパラメータがあります。
パラメータ名 | データ型 | デフォルト値 | 必須 | 説明 |
---|---|---|---|---|
|
varchar2 |
— |
はい |
ファイルを含むディレクトリの名前。 |
|
varchar2 |
— |
はい |
読み取るファイルの名前。 |
次の例では、ディレクトリ rice.txt
からファイル product_descriptions
を読み取ります。
select * from table (rdsadmin.rds_file_util.read_text_file( p_directory => '
product_descriptions
', p_filename => 'rice.txt
'));