日本語PDF

22 SQL*Plusを使用したOracle ASMでのデータベース・ファイルの作成

Oracle Automatic Storage Management (Oracle ASM)は、SQL*Plusを使用してデプロイできます。

この項では、次の項目について説明します。

Oracle ASMを使用するデータベースの作成

推奨されるデータベースの作成方法は、Database Configuration Assistant(DBCA)を使用することです。ただし、CREATE DATABASE文を使用して手動でデータベースを作成する場合、Oracle ASMでは、データベースとその基礎となるファイルのすべてを最小限の入力で作成できます。

次の例ではCREATE DATABASE文の使用方法を示します。この例では、Oracle ASMによって自動的にデータベース・ファイルが作成され、管理されます。この例では、次のOracle ASMファイルを使用してデータベースが作成されます。

  • dataディスク・グループ内のSYSTEM表領域データファイル。

  • dataディスク・グループ内のSYSAUX表領域データファイル。表領域は、自動セグメント領域管理によってローカルに管理されます。

  • 2つのオンライン・ログ・グループを持つ多重オンラインREDOログ。グループごとに1つのメンバーがdatafra(高速リカバリ領域)あります。

  • 自動UNDO管理モードが有効な場合は、dataディレクトリ内のUNDO表領域データファイル。

  • CONTROL_FILES初期化パラメータの値を指定しない場合は、2つの制御ファイル。1つはdata、もう1つはfra(高速リカバリ領域)にあります。data内の制御ファイルはプライマリ制御ファイルです。

初期化パラメータ・ファイルには、次の初期化パラメータ設定が含まれます。

DB_CREATE_FILE_DEST = +data
DB_RECOVERY_FILE_DEST = +fra
DB_RECOVERY_FILE_DEST_SIZE = 10G

SQLプロンプトでは次の文を実行できます。

SQL> CREATE DATABASE orcl;

Oracle ASMでの表領域の作成

Oracle ASMで永続表領域のデータファイル(または一時表領域の一時ファイル)を作成すると、そのデータファイルは自動拡張可能に設定され、最大サイズは無制限、デフォルト・サイズは100MBになります。AUTOEXTEND句を使用すると、このデフォルトの拡張性を無効にできます。また、SIZE句を使用すると、デフォルト・サイズを無効にできます。

Oracle ASMでは、データファイルのシステム・デフォルト・テンプレート(ディスク・グループ・テンプレートの管理の表を参照)で指定したとおりに、属性がデータファイルに適用されます。独自のテンプレートを作成して指定することもできます。

表領域内のファイルは、表領域履歴のためOracle ASMファイルとOracle ASM以外のファイルの両方に含まれることがあります。RMANコマンドを使用すると、Oracle ASM以外のファイルをOracle ASMディスク・グループに再配置し、Oracle ASMファイルをOracle ASM以外のファイルとして再配置できます。

たとえば、dataというディスク・グループがある場合、次のSQL文を使用すると、そのディスク・グループ内に表領域tblspaceを作成できます。

SQL> CREATE TABLESPACE tblspace DATAFILE '+data';

次の例では、デフォルト設定のOracle ASMの使用例を示します。Oracleが提供するデフォルト(ほとんどの状況に適している)を使用して、Oracle ASMで表領域データファイルの作成と管理を行います。

次の初期化パラメータ設定になっていることを前提とします。

DB_CREATE_FILE_DEST = +data

次の文では、表領域とデータファイルが作成されます。

SQL> CREATE TABLESPACE tblspace;

Oracle ASMでのREDOログの作成

オンラインREDOログは、複数のディスク・グループ内に作成できます。これは、初期化パラメータ・ファイルによって暗黙的に作成するか、またはALTER DATABASE...ADD LOGFILE文で明示的に作成できます。各オンライン・ログには、複数のディスク・グループに1つずつログ・メンバーを持たせるのが適切です。ログ・ファイル・メンバーのファイル名は自動的に生成されます。システム・エラーが原因で一部分しか作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。

たとえば、data1およびdata2というディスク・グループがある場合、次のSQL文を使用すると、それぞれのディスク・グループに1つずつメンバーを持つログ・ファイルを作成できます。

SQL> ALTER DATABASE ADD LOGFILE ('+data1','+data2');

次に、ディスク・グループdata1data2のそれぞれにメンバーを持つログ・ファイルを作成する例を示します。これらパラメータ設定は、初期化パラメータ・ファイル内に含まれています。

DB_CREATE_ONLINE_LOG_DEST_1 = +data1
DB_CREATE_ONLINE_LOG_DEST_2 = +data2

SQLプロンプトでは次の文を実行できます。

SQL> ALTER DATABASE ADD LOGFILE;

Oracle ASMでの制御ファイルの作成

制御ファイルは、複数のディスク・グループ内に明示的に作成できます。制御ファイルのファイル名は自動的に生成されます。

制御ファイルを名前で指定する必要がある場合は、Oracle ASMファイルを参照するエイリアスをファイル名として使用でき、これにより、ファイルをわかりやすい名前で扱うことができます。制御ファイルをエイリアスによる指定で作成すると、後で制御ファイルを参照する際に、ユーザー指定の名前で参照することができます。また、エイリアスはCONTROL_FILES初期化パラメータでの制御ファイル名の指定にも使用できます。

制御ファイルを作成する際には、Oracle ASMディスク・グループに格納されているデータファイルとログ・ファイルをCREATE CONTROLFILEコマンドに渡す必要があり、これは、Oracle ASMファイル名のファイル参照形式を使用して行います。ただし、RESETLOGSオプションを使用する場合は、ファイル作成形式でログ・ファイルを指定する必要があります。

例22-1 NORESETLOGSを使用したOracle ASMでの制御ファイルの作成

次の例のSQL文は、ALTER DATABASE BACKUP CONTROLFILE TO TRACEコマンドにより、ディスク・グループdataおよびfraにデータファイルとログ・ファイルが作成されるデータベースに対して生成されます。

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '+DATA/orcl/onlinelog/group_1.261.685366203',
    '+FRA/orcl/onlinelog/group_1.257.685366205'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 2 (
    '+DATA/orcl/onlinelog/group_2.262.685366207',
    '+FRA/orcl/onlinelog/group_2.258.685366211'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 3 (
    '+DATA/orcl/onlinelog/group_3.263.685366213',
    '+FRA/orcl/onlinelog/group_3.259.685366215'
  ) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '+DATA/orcl/datafile/system.256.685366089',
  '+DATA/orcl/datafile/sysaux.257.685366089',
  '+DATA/orcl/datafile/undotbs1.258.685366091',
  '+DATA/orcl/datafile/users.259.685366091'
CHARACTER SET WE8MSWIN1252
;

例22-2: RESETLOGSを使用したOracle ASMでの制御ファイルの作成

次の例は、データファイルを備えたデータベースに対するCREATE CONTROLFILE SQL文ですが、RESETLOGS句を使用し、そこでログ・ファイルの作成形式を使用しています。

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '+DATA/orcl/onlinelog/group_1.261.685366203',
    '+FRA/orcl/onlinelog/group_1.257.685366205'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 2 (
    '+DATA/orcl/onlinelog/group_2.262.685366207',
    '+FRA/orcl/onlinelog/group_2.258.685366211'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 3 (
    '+DATA/orcl/onlinelog/group_3.263.685366213',
    '+FRA/orcl/onlinelog/group_3.259.685366215'
  ) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '+DATA/orcl/datafile/system.256.685366089',
  '+DATA/orcl/datafile/sysaux.257.685366089',
  '+DATA/orcl/datafile/undotbs1.258.685366091',
  '+DATA/orcl/datafile/users.259.685366091'
CHARACTER SET WE8MSWIN1252
;

Oracle ASMでのアーカイブ・ログ・ファイルの作成

LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DEST_n初期化パラメータでは、ディスク・グループをアーカイブ・ログの宛先として指定できます。この方法で宛先を指定すると、アーカイブ・ログ・ファイル名は、一意の名前でデフォルトのサブディレクトリに作成されます。ただし、すべてのLOG_ARCHIVE_DEST_nパラメータは一意の文字列である必要があります。同じディスク・グループを複数回入力するには、サブディレクトリを使用する必要があります。たとえば、LOG_ARCHIVE_DEST_nを次のように設定できます。

LOG_ARCHIVE_DEST_1 = 'LOCATION=+FRA/orcl/arc_1'
LOG_ARCHIVE_DEST_2 = 'LOCATION=+FRA/orcl/arc_2'
...

LOG_ARCHIVE_DESTをディスク・グループ名に設定した場合は、LOG_ARCHIVE_FORMATは無視されます。アーカイブ・ログに対する一意のファイル名は、デフォルトのサブディレクトリにOracle Databaseによって自動的に作成されます。LOG_ARCHIVE_DESTをディスク・グループ内のディレクトリに設定した場合は、ファイルのエイリアスに対するLOG_ARCHIVE_FORMATのセマンティクスは通常どおりとなります。基礎となるファイルは、システム生成の名前でディスク・グループのデフォルトのディレクトリに生成されます。

また、DB_RECOVERY_FILE_DEST初期化パラメータをディスク・グループの宛先に設定できます。例22-3では、アーカイブ・ログ・ファイルが、ARCHIVELOGモードを有効にして生成され、DB_RECOVERY_FILE_DEST+FRAディスク・グループに設定されています。ORCLDB_UNIQUE_NAMEパラメータの値です。

関連項目:

アーカイブ保存されたREDOログ・ファイルの管理の詳細は、『Oracle Database管理者ガイド』を参照してください。

例22-3 Oracle ASMディスク・グループ内のアーカイブ・ログ・ファイル

SQL> SHOW PARAMETER DB_RECOVERY_FILE_DEST

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +FRA

SQL> SELECT SUBSTR(name,1,64) name FROM V$ARCHIVED_LOG;
 
NAME
----------------------------------------------------------------
+FRA/ORCL/ARCHIVELOG/2013_06_24/thread_1_seq_112.260.818960623
+FRA/ORCL/ARCHIVELOG/2013_06_24/thread_1_seq_113.261.818978423
+FRA/ORCL/ARCHIVELOG/2013_06_25/thread_1_seq_114.262.818993031
+FRA/ORCL/ARCHIVELOG/2013_06_25/thread_1_seq_115.263.819032439
+FRA/ORCL/ARCHIVELOG/2013_06_25/thread_1_seq_116.264.819047121
+FRA/ORCL/ARCHIVELOG/2013_06_25/thread_1_seq_117.265.819064815
+FRA/ORCL/ARCHIVELOG/2013_06_26/thread_1_seq_118.266.819079417
...