この付録では、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