この付録では、次のトピックに基づいてSQL*Plusによる自動ストレージ管理(ASM)のデプロイ方法について説明します。
関連項目: Oracle Managed Files(OMF)の使用の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
推奨されるデータベースの作成方法は、Database Configuration Assistant(DBCA)を使用することです。ただし、CREATE DATABASE
文を使用して手動でデータベースを作成する場合、ASMでは、データベースとその基礎となるファイルのすべてを最小限の入力で作成できます。
次の項ではCREATE DATABASE
文の使用例を示します。この例では、ASMによって自動的にデータベース・ファイルが作成され、管理されます。
この例では、次のASMファイルを使用してデータベースが作成されます。
dgroup1
ディスク・グループ内のSYSTEM
表領域データファイル。
dgroup1
ディスク・グループ内のSYSAUX
表領域データファイル。表領域は、自動セグメント領域管理によってローカルに管理されます。
多重オンラインREDOログは、2つのオンライン・ログ・グループで作成されます。それぞれのメンバーは、dgroup1
およびdgroup2
(フラッシュ・リカバリ領域)に含まれます。
自動UNDO管理モードが有効な場合は、dgroup1
ディレクトリ内のUNDO表領域データファイル。
CONTROL_FILES
初期化パラメータの値が指定されていない場合は、2つの制御ファイル。1つはdrgoup1
、もう1つはdgroup2
(フラッシュ・リカバリ領域)に含まれます。dgroup1
内の制御ファイルはプライマリ制御ファイルです。
初期化パラメータ・ファイルには、次の初期化パラメータ設定が含まれます。
DB_CREATE_FILE_DEST = '+dgroup1' DB_RECOVERY_FILE_DEST = '+dgroup2' DB_RECOVERY_FILE_DEST_SIZE = 10G
SQLプロンプトでは次の文が発行されます。
CREATE DATABASE sample;
ASMで永続表領域のデータファイル(または一時表領域の一時ファイル)を作成すると、そのデータファイルは自動拡張可能に設定され、最大サイズは無制限、デフォルト・サイズは100MBになります。AUTOEXTEND
句を使用すると、このデフォルトの拡張性を上書きできます。また、SIZE
句を使用すると、デフォルト・サイズを上書きできます。
ASMでは、データファイルのシステム・デフォルト・テンプレート(「ディスク・グループ・テンプレートの管理」を参照)で指定したとおりに、属性がデータファイルに適用されます。独自のテンプレートを作成して指定することもできます。
表領域内のファイルは、表領域履歴の結果としてASMファイルと非ASMファイルの両方に含まれることがあります。RMANコマンドを使用すると、非ASMファイルをASMディスク・グループに再配置し、ASMファイルを非ASMファイルとして再配置できます。
たとえば、dgroup3
というディスク・グループがある場合、次のSQL文を使用すると、そのディスク・グループ内に表領域tblspace3
を作成できます。
CREATE TABLESPACE tblspace3 DATAFILE '+DGROUP3';
この例では、ASMをすぐに使用する方法を示します。Oracleが提供するデフォルト(ほとんどの状況に適している)を使用して、ASMで表領域データファイルの作成と管理を行います。
次の初期化パラメータ設定になっていることを前提とします。
DB_CREATE_FILE_DEST = '+dgroup2'
次の文では、表領域とデータファイルが作成されます。
CREATE TABLESPACE tspace2;
オンラインREDOログは、複数のディスク・グループ内に作成できます。これは、初期化パラメータ・ファイルによって暗黙的に作成するか、またはALTER DATABASE...ADD LOGFILE
文で明示的に作成できます。各オンライン・ログには、複数のディスク・グループに1つずつログ・メンバーを持たせるのが適切です。ログ・ファイル・メンバーのファイル名は自動的に生成されます。システム・エラーが原因で一部分しか作成されなかったREDOログ・ファイルは、すべて自動的に削除されます。
たとえば、dgroup3
およびdgroup4
というディスク・グループがある場合、次のSQL文を使用すると、それぞれのディスク・グループに1つずつメンバーを持つログ・ファイルを作成できます。
ALTER DATABASE ADD LOGFILE ('+DGROUP3','+DGROUP4');
制御ファイルは、複数のディスク・グループ内に明示的に作成できます。制御ファイルのファイル名は自動的に生成されます。制御ファイルの作成が失敗した場合、不完全に作成された制御ファイルは自動的に削除されます。
制御ファイルを名前で指定する必要がある場合は、ASMファイルを参照するエイリアスをファイル名として使用できます。これにより、ファイルをわかりやすい名前で扱うことができます。制御ファイルをエイリアスによる指定で作成すると、後で制御ファイルを参照する際に、意味のある名前で参照することができます。また、エイリアスはCONTROL_FILES
初期化パラメータ内での制御ファイル名の指定にも使用できます。エイリアスを使用せずに制御ファイルを作成した場合でも、ALTER
DISKGROUP...CREATE
ALIAS
文を使用して、後からエイリアス名を指定することができます。
制御ファイルを作成する際には、特定のASMディスク・グループに格納されているデータファイルとログ・ファイルをCREATE
CONTROLFILE
コマンドに渡す必要があります。これは、ASMファイル名のファイル参照コンテキスト形式を使用して行います。ただし、RESETLOGS
オプションを使用する場合は、ファイル作成コンテキスト形式でログ・ファイルを指定する必要があります。
データベース作成の前にCONTROL_FILES
パラメータの一部としてディスク・グループ名(または任意のASMファイル作成コンテキスト)を指定すれば、ASMによって管理される制御ファイルを作成できます。
次のCREATE
CONTROLFILE
文は、データファイルとログ・ファイルがディスク・グループdgroup1
およびdgroup2
で作成されているデータベースのALTER
DATABASE
BACKUP
CONTROLFILE
TO
TRACE
コマンドによって生成されます。
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 ( '+DGROUP1/db/onlinelog/group_1.258.541956457', '+DGROUP2/db/onlinelog/group_1.256.541956473' ) SIZE 100M, GROUP 2 ( '+DGROUP1/db/onlinelog/group_2.257.541956477', '+DGROUP2/db/onlinelog/group_2.258.541956487' ) SIZE 100M DATAFILE '+DGROUP1/db/datafile/system.260.541956497', '+DGROUP1/db/datafile/sysaux.259.541956511' CHARACTER SET US7ASCII ;
この例は、データファイルを備えたデータベースに対するCREATE
CONTROLFILE
文ですが、RESETLOGS
句を使用しているため、ログ・ファイルの作成コンテキスト形式を使用しています。
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 ( '+DGROUP1', '+DGROUP2' ) SIZE 100M, GROUP 2 ( '+DGROUP1', '+DGROUP2' ) SIZE 100M DATAFILE '+DGROUP1/db/datafile/system.260.541956497', '+DGROUP1/db/datafile/sysaux.259.541956511' CHARACTER SET US7ASCII ;
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
を+dgroup2
に設定すると生成できます。SAMPLEは、DB_UNIQUE_NAME
パラメータの値です。
+DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_1_seq_38.614.541956473 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_4_seq_35.609.541956477 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_23/thread_2_seq_34.603.541956487 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_25/thread_3_seq_100.621.541956497 +DGROUP2/SAMPLE/ARCHIVELOG/2003_09_25/thread_1_seq_38.614.541956511