この付録では、SQL*PlusによるOracle自動ストレージ管理(Oracle ASM)のデプロイ方法について説明します。内容は次のとおりです。
関連項目: Oracle Managed Files(OMF)の使用の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
推奨されるデータベースの作成方法は、Database Configuration Assistant(DBCA)を使用することです。ただし、CREATE DATABASE
文を使用して手動でデータベースを作成する場合、Oracle ASMでは、データベースとその基礎となるファイルのすべてを最小限の入力で作成できます。
次の項ではCREATE DATABASE
文の使用例を示します。この例では、Oracle ASMによって自動的にデータベース・ファイルが作成され、管理されます。
この例では、次のOracle ASMファイルを使用してデータベースが作成されます。
data
ディスク・グループ内のSYSTEM
表領域データファイル。
data
ディスク・グループ内のSYSAUX
表領域データファイル。表領域は、自動セグメント領域管理によってローカルに管理されます。
2つのオンライン・ログ・グループを持つ多重オンラインREDOログ。グループごとに1つのメンバーがdata
とfra
(高速リカバリ領域)あります。
自動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プロンプトでは次の文が実行されます。
CREATE DATABASE orcl;
Oracle ASMで永続表領域のデータファイル(または一時表領域の一時ファイル)を作成すると、そのデータファイルは自動拡張可能に設定され、最大サイズは無制限、デフォルト・サイズは100MBになります。AUTOEXTEND
句を使用すると、このデフォルトの拡張性を無効にできます。また、SIZE
句を使用すると、デフォルト・サイズを無効にできます。
Oracle ASMでは、データファイルのシステム・デフォルト・テンプレート(「ディスク・グループ・テンプレートの管理」の表を参照)で指定したとおりに、属性がデータファイルに適用されます。独自のテンプレートを作成して指定することもできます。
表領域内のファイルは、表領域履歴のためOracle ASMファイルとOracle ASM以外のファイルの両方に含まれることがあります。RMANコマンドを使用すると、Oracle ASM以外のファイルをOracle ASMディスク・グループに再配置し、Oracle ASMファイルをOracle ASM以外のファイルとして再配置できます。
たとえば、data
というディスク・グループがある場合、次のSQL文を使用すると、そのディスク・グループ内に表領域tblspace
を作成できます。
CREATE TABLESPACE tblspace DATAFILE +data;
次の例では、デフォルト設定のOracle ASMの使用例を示します。Oracleが提供するデフォルト(ほとんどの状況に適している)を使用して、Oracle ASMで表領域データファイルの作成と管理を行います。
次の初期化パラメータ設定になっていることを前提とします。
DB_CREATE_FILE_DEST = +data
次の文では、表領域とデータファイルが作成されます。
CREATE TABLESPACE tblspace;
オンラインREDOログは、複数のディスク・グループ内に作成できます。これは、初期化パラメータ・ファイルによって暗黙的に作成するか、またはALTER DATABASE...ADD LOGFILE
文で明示的に作成できます。各オンライン・ログには、複数のディスク・グループに1つずつログ・メンバーを持たせるのが適切です。ログ・ファイル・メンバーのファイル名は自動的に生成されます。システム・エラーが原因で一部分しか作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。
たとえば、data1
およびdata2
というディスク・グループがある場合、次のSQL文を使用すると、それぞれのディスク・グループに1つずつメンバーを持つログ・ファイルを作成できます。
ALTER DATABASE ADD LOGFILE (+data1,+data2);
次に、ディスク・グループdata1
とdata2
のそれぞれにメンバーを持つログ・ファイルを作成する例を示します。このパラメータ設定は、初期化パラメータ・ファイル内に含まれています。
DB_CREATE_ONLINE_LOG_DEST_1 = +data1 DB_CREATE_ONLINE_LOG_DEST_2 = +data2
SQLプロンプトでは次の文が実行されます。
ALTER DATABASE ADD LOGFILE;
制御ファイルは、複数のディスク・グループ内に明示的に作成できます。制御ファイルのファイル名は自動的に生成されます。
制御ファイルを名前で指定する必要がある場合は、Oracle ASMファイルを参照するエイリアスをファイル名として使用できます。これにより、ファイルをわかりやすい名前で扱うことができます。制御ファイルをエイリアスによる指定で作成すると、後で制御ファイルを参照する際に、ユーザー指定の名前で参照することができます。また、エイリアスはCONTROL_FILES
初期化パラメータでの制御ファイル名の指定にも使用できます。
制御ファイルを作成する際には、Oracle ASMディスク・グループに格納されているデータファイルとログ・ファイルをCREATE
CONTROLFILE
コマンドに渡す必要があります。これは、Oracle ASMファイル名のファイル参照形式を使用して行います。ただし、RESETLOGS
オプションを使用する場合は、ファイル作成形式でログ・ファイルを指定する必要があります。
次のCREATE
CONTROLFILE
文は、データファイルとログ・ファイルがディスク・グループdata
およびfra
で作成されているデータベースのALTER
DATABASE
BACKUP
CONTROLFILE
TO
TRACE
コマンドによって生成されます。
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 ;
この例は、データファイルを備えたデータベースに対するCREATE
CONTROLFILE
文ですが、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 ;
LOG_ARCHIVE_DEST
およびLOG_ARCHIVE_DEST_n
初期化パラメータでは、ディスク・グループをアーカイブ・ログの宛先として指定できます。この方法で宛先を指定すると、アーカイブ・ログ・ファイル名は、たとえ2回アーカイブされても一意になります。
LOG_ARCHIVE_DEST
をディスク・グループ名に設定した場合は、LOG_ARCHIVE_FORMAT
は無視されます。アーカイブ・ログに対する一意のファイル名は、Oracleデータベースによって自動的に作成されます。LOG_ARCHIVE_DEST
をディスク・グループ内のディレクトリに設定した場合は、LOG_ARCHIVE_FORMAT
のセマンティクスは通常どおりとなります。
次のサンプル・アーカイブ・ログ名は、DB_RECOVERY_FILE_DEST
を+data
に設定すると生成できます。ORCL
は、DB_UNIQUE_NAME
パラメータの値です。
+DATA/ORCL/ARCHIVELOG/2009_09_23/thread_1_seq_38.614.541956473 +DATA/ORCL/ARCHIVELOG/2009_09_23/thread_4_seq_35.609.541956477 +DATA/ORCL/ARCHIVELOG/2009_09_23/thread_2_seq_34.603.541956487 +DATA/ORCL/ARCHIVELOG/2009_09_25/thread_3_seq_100.621.541956497 +DATA/ORCL/ARCHIVELOG/2009_09_25/thread_1_seq_38.614.541956511