メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Oracle DB インスタンスの一般的な DBA データベース

このセクションでは、Oracle を実行する Amazon RDS DB インスタンスのデータベースに関連する一般的な DBA タスクを実行する方法について説明します。マネージド型サービスの操作性を実現するために、Amazon RDS では DB インスタンスへのシェルアクセスは提供していません。また、上位の権限を必要とする特定のシステムプロシージャやシステムテーブルへのアクセスが制限されます。

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

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;

Oracle ALTER DATABASE システム権限は、Amazon RDS では使用できません。ALTER DATABASE ステートメントを使用すると、既存のデータファイルのサイズ変更など、一部のオペレーションしか実行できないため、smallfile テーブルスペースを使用しないことをお勧めします。

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

以下の例では、users2 という名前の bigfile テーブルスペースのサイズを 200 MB に変更しています。

alter tablespace users2 resize 200M;

以下の例では、users2 という名前の smallfile テーブルスペースに追加のデータファイルを追加しています。

alter tablespace users3 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 Database のタイムゾーンを設定するには、以下の 2 つの方法があります。

  • Timezone オプションを使用できます。

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

 

  • Amazon RDS プロシージャ rdsadmin.rdsadmin_util.alter_db_time_zone を使用できます。

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

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');

以下の例では、タイムゾーンを Africa/Algiers リージョンのタイムゾーンに変更しています。

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 テーブルをクエリすることで orders_xt 外部テーブルを作成します。

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 Database Enterprise Edition を使用していて自動ワークロードリポジトリ (AWR) を使用する場合は、CONTROL_MANAGEMENT_PACK_ACCESS パラメータを変更することで AWR を有効にできます。

Oracle AWR には、ホストサーバーにインストールされている複数のレポート生成スクリプト (awrrpt.sql など) が含まれます。ホストに直接アクセスすることはできませんが、Oracle Database の別のインストールからスクリプトをコピーすることはできます。

同じ 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 ドキュメントの「エディションおよびエディションに基づく再定義の概要」を参照してください。

DB インスタンスファイルの検証

Amazon RDS パッケージ rdsadmin.rdsadmin_rman_util を使用して Amazon RDS Oracle DB インスタンスファイル (データファイル、サーバーパラメータファイル (SPFILE)、コントロールファイルなど) を検証できます。

注記

rdsadmin.rdsadmin_rman_util パッケージは、Oracle Recovery Manager (RMAN) の検証で使用できる機能を提供します。Amazon RDS ではバックアップに RMAN を使用しませんが、パッケージを使用してデータベース、コントロールファイル、SPFILE、テーブルスペース、またはデータファイルに対して RMAN 検証コマンドを実行できます。RMAN の検証の詳細については、Oracle ドキュメントの「データベース・ファイルおよびバックアップの検証」と「VALIDATE」を参照してください。

DB インスタンスの検証

Amazon RDS プロシージャ rdsadmin.rdsadmin_rman_util.validate_database を使用して、Amazon RDS Oracle DB インスタンスで使用されているすべての関連ファイルを検証できます。

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

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

オプション

破損の検出のレベル。

物理的な破損を確認するには、'PHYSICAL' を指定します。物理的な破損の一例は、ヘッダーおよびフッターの不一致によるブロックです。

物理的な破損に加えて論理的な不整合を確認するには、'PHYSICAL+LOGICAL' を指定します。論理的な破損の一例は破損ブロックです。

p_parallel

number

Oracle Database Enterprise Edition (EE) の場合は 1254 の有効な整数

その他の Oracle データベースエディションの場合は 1

1

オプション

チャネルの数。

p_section_size_mb

number

有効な整数

NULL

オプション

セクションサイズのメガバイト (MB)。

各ファイルを指定されたセクションサイズに分割し、並列して検証します。

NULL の場合、パラメータは無視されます。

p_rman_to_dbms_output

boolean

TRUEFALSE

FALSE

オプション

TRUE の場合、RMAN 出力は BDUMP ディレクトリのファイルに加えて、DBMS_OUTPUT パッケージに送信されます。SQL*Plus を使用する場合は、SET SERVEROUTPUT ON を実行して出力を表示します。

FALSE の場合、RMAN 出力は BDUMP ディレクトリのファイルにのみ送信されます。

次の例では、デフォルトのパラメータ値を使用して DB インスタンスを検証します。

exec rdsadmin.rdsadmin_rman_util.validate_database;

次の例では、指定したパラメータ値を使用して DB インスタンスを検証します。

BEGIN rdsadmin.rdsadmin_rman_util.validate_database( p_validation_type => 'PHYSICAL+LOGICAL', p_parallel => 4, p_section_size_mb => 10, p_rman_to_dbms_output => FALSE); END; /

p_rman_to_dbms_output パラメータを FALSE に設定すると、RMAN 出力は BDUMP ディレクトリのファイルに書き込まれます。

BDUMP ディレクトリのファイルを表示するには、次の SELECT ステートメントを実行します。

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;

BDUMP ディレクトリのファイルの内容を表示するには、次の SELECT ステートメントを実行します。

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));

ファイル名を、表示するファイルの名前に置き換えます。

テーブルスペースの検証

Amazon RDS プロシージャ rdsadmin.rdsadmin_rman_util.validate_tablespace を使用してテーブルスペースに関連付けられたファイルを検証できます。

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

p_tablespace_name

varchar2

有効なテーブルスペース名

必須

テーブルスペースの名前。

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

オプション

破損の検出のレベル。

物理的な破損を確認するには、'PHYSICAL' を指定します。物理的な破損の一例は、ヘッダーおよびフッターの不一致によるブロックです。

物理的な破損に加えて論理的な不整合を確認するには、'PHYSICAL+LOGICAL' を指定します。論理的な破損の一例は破損ブロックです。

p_parallel

number

Oracle Database Enterprise Edition (EE) の場合は 1254 の有効な整数

その他の Oracle データベースエディションの場合は 1

1

オプション

チャネルの数。

p_section_size_mb

number

有効な整数

NULL

オプション

セクションサイズのメガバイト (MB)。

各ファイルを指定されたセクションサイズに分割し、並列して検証します。

NULL の場合、パラメータは無視されます。

p_rman_to_dbms_output

boolean

TRUEFALSE

FALSE

オプション

TRUE の場合、RMAN 出力は BDUMP ディレクトリのファイルに加えて、DBMS_OUTPUT パッケージに送信されます。SQL*Plus を使用する場合は、SET SERVEROUTPUT ON を実行して出力を表示します。

FALSE の場合、RMAN 出力は BDUMP ディレクトリのファイルにのみ送信されます。

コントロールファイルの検証

Amazon RDS プロシージャ rdsadmin.rdsadmin_rman_util.validate_current_controlfile を使用して、Amazon RDS Oracle DB インスタンスで使用されているコントロールファイルのみを検証できます。

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

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

オプション

破損の検出のレベル。

物理的な破損を確認するには、'PHYSICAL' を指定します。物理的な破損の一例は、ヘッダーおよびフッターの不一致によるブロックです。

物理的な破損に加えて論理的な不整合を確認するには、'PHYSICAL+LOGICAL' を指定します。論理的な破損の一例は破損ブロックです。

p_rman_to_dbms_output

boolean

TRUEFALSE

FALSE

オプション

TRUE の場合、RMAN 出力は BDUMP ディレクトリのファイルに加えて、DBMS_OUTPUT パッケージに送信されます。SQL*Plus を使用する場合は、SET SERVEROUTPUT ON を実行して出力を表示します。

FALSE の場合、RMAN 出力は BDUMP ディレクトリのファイルにのみ送信されます。

SPFILE の検証

Amazon RDS プロシージャ rdsadmin.rdsadmin_rman_util.validate_spfile を使用して、Amazon RDS Oracle DB インスタンスで使用されているサーバーパラメータファイル (SPFILE) を検証できます。

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

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

オプション

破損の検出のレベル。

物理的な破損を確認するには、'PHYSICAL' を指定します。物理的な破損の一例は、ヘッダーおよびフッターの不一致によるブロックです。

物理的な破損に加えて論理的な不整合を確認するには、'PHYSICAL+LOGICAL' を指定します。論理的な破損の一例は破損ブロックです。

p_rman_to_dbms_output

boolean

TRUEFALSE

FALSE

オプション

TRUE の場合、RMAN 出力は BDUMP ディレクトリのファイルに加えて、DBMS_OUTPUT パッケージに送信されます。SQL*Plus を使用する場合は、SET SERVEROUTPUT ON を実行して出力を表示します。

FALSE の場合、RMAN 出力は BDUMP ディレクトリのファイルにのみ送信されます。

データファイルの検証

Amazon RDS プロシージャ rdsadmin.rdsadmin_rman_util.validate_datafile を使用して、データファイルを検証できます。

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

p_datafile

varchar2

有効なテーブルスペース名

必須

データファイルの名前。

p_from_block

number

有効な整数

NULL

オプション

データファイル内で検証が始まるブロックの番号。NULL の場合、1 が使用されます。

p_to_block

number

有効な整数

NULL

オプション

データファイル内で検証が終わるブロックの番号。NULL の場合、データファイルの最大ブロックが使用されます。

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

オプション

破損の検出のレベル。

物理的な破損を確認するには、'PHYSICAL' を指定します。物理的な破損の一例は、ヘッダーおよびフッターの不一致によるブロックです。

物理的な破損に加えて論理的な不整合を確認するには、'PHYSICAL+LOGICAL' を指定します。論理的な破損の一例は破損ブロックです。

p_parallel

number

Oracle Database Enterprise Edition (EE) の場合は 1254 の有効な整数

その他の Oracle データベースエディションの場合は 1

1

オプション

チャネルの数。

p_section_size_mb

number

有効な整数

NULL

オプション

セクションサイズのメガバイト (MB)。

各ファイルを指定されたセクションサイズに分割し、並列して検証します。

NULL の場合、パラメータは無視されます。

p_rman_to_dbms_output

boolean

TRUEFALSE

FALSE

オプション

TRUE の場合、RMAN 出力は BDUMP ディレクトリのファイルに加えて、DBMS_OUTPUT パッケージに送信されます。SQL*Plus を使用する場合は、SET SERVEROUTPUT ON を実行して出力を表示します。

FALSE の場合、RMAN 出力は BDUMP ディレクトリのファイルにのみ送信されます。

関連トピック