この付録では、表領域のデータファイルをRAWパーティションに格納するためのシステム構成方法について説明します。
この付録の項目は次のとおりです。
|
注意: Oracle RACには、追加の構成ツールが必要になります。論理パーティションの作成およびシンボリック・リンクの割当ての詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。Oracle RAC用のパーティションを作成する場合は、この付録を参照しないでください。 |
表領域のデータファイルは、ファイル・システムまたはRAWパーティションに格納できます。RAWパーティションは、最下位レベルでアクセスされる物理ディスクの一部です。ファイル・システムが配置されているパーティションへの入出力(I/O)と比べ、RAWパーティションへのI/Oではパフォーマンスが約5〜10%向上します。
物理ディスクは、ディスク全体を示し、次のように指定します。
\Device\Harddiskx\Partition0
シンボリック・リンク名\\.\PhysicalDrivexは、コンピュータ内のすべてのハード・ディスクに対して、Windowsによって自動的に定義されます。たとえば、3つのハード・ディスクがあるコンピュータには、次のシンボリック・リンクがあります。
\\.\PhysicalDrive0 \\.\PhysicalDrive1 \\.\PhysicalDrive2
これらの名前は、内部的に次のように展開されます。
\\.\PhysicalDrive0 =\Device\Harddisk0\Partition0 \\.\PhysicalDrive1 =\Device\Harddisk1\Partition0 \\.\PhysicalDrive2 =\Device\Harddisk2\Partition0
Partition0は、そのディスク上のパーティション・スキームが何であっても、物理ディスク全体を表す特別なパーティション番号です。Windowsにより、認識しているすべてのディスクの最初のブロックに署名が書き込まれます。ブロックの上書きを防ぐために、Oracle Databaseでは、Oracle Databaseデータファイルに使用される物理RAWパーティションの最初のブロックがスキップされます。
|
注意: 物理ディスクを使用することもできますが、論理パーティションの使用をお薦めします。 |
論理パーティションは、\Device\Harddiskx\Partition0以外のドライブを示します。論理パーティションには、ドライブ名(\\.\drive_letter:)の付いた名前が最初に割り当てられ、シンボリック・リンク名(\\.\symbolic link name)が再度割り当てられるのが一般的です。たとえば、\\.\D:にシンボリック・リンク名\\.\ACCOUNTING_1が割り当てられているとします。ドライブ名とシンボリック・リンク名のいずれが使用されているかにかかわらず、論理パーティションはディスク全体ではなくディスク内の特定のパーティションを表すように定義されます。これらの名前は、内部的に次のように展開されます。
\\.\D:= \Device\Harddisk2\Partition1 \\.\ACCOUNTING_1= \Device\Harddisk3\Partition2
|
注意: Oracle Databaseでは、Oracle Databaseデータファイルに使用される論理RAWパーティションの最初のブロックはスキップされません。 |
使用するRAWパーティションを決定する際に、次のことを考慮してください。
物理ディスクは、ディスク全体を表すようWindowsによって自動的に定義されます。ユーザーが定義することはできません。
論理パーティションは、ディスク内の特定のパーティションを表すようにユーザーが定義する必要があります。これらのパーティションは、拡張パーティションに含まれる論理パーティションまたはドライブにしてください。Partition0として定義することはできません。
Oracle Databaseデータファイル用にディスク全体(Partition0)を使用することと、Oracle Databaseデータファイル用にディスク全体を占めるパーティションを使用することは、同じではありません。1つのパーティションがディスク全体を占めている場合でも、ディスクにはパーティションに含まれていないわずかな領域が残っています。
ディスク全体(Partition0)をOracle Databaseデータファイル用に使用する場合は、Windowsが提供する定義済の物理RAW名を使用します。
特定のパーティションを使用し、そのパーティションがディスク全体を占める場合は、論理パーティションを使用します。
Windowsディスク管理ツールで作成した特定のパーティションを使用する場合は、(ディスク全体を占める場合でも)論理パーティション番号ではなくシンボリック・リンク名を定義して使用します。
|
注意: 物理RAW規則および論理RAW規則のいずれの場合も、バックアップ処理のためにRAWパーティションの内容を標準ファイル・システムに転送するにはOCOPYを使用します。 |
論理パーティションを作成し、それらの論理パーティションに物理ディスク規則名を定義できます。次に例を示します。
\\.\PhysicalDriveACCOUNTING_1 = \Device\Harddisk2\Partition1 \\.\PhysicalDriveACCOUNTING_2 = \Device\Harddisk3\Partition1
Oracle Databaseでは、実際には論理パーティションであったとしても、物理ディスク規則を使用してデータファイルを処理します。物理ディスク・ネーミング規則を使用しているかぎり、これによってデータが壊れたり失われたりすることはありません。できるだけ早い時期に論理パーティション規則に変換することをお薦めします。
Partition0を表す論理名も作成できますが、これはお薦めしません。次に例を示します。
\\.\ACCOUNTING_1 = \Device\Harddisk1\Partition0
ディスク管理では、通常、各ディスクの最初のブロックに署名を書き込みます。そのため、データファイルのヘッダー部分が上書きされてしまうこともあり、深刻な影響があります。また、データが失われる可能性もあります。Partition0は、論理パーティション規則で使用しないでください。
物理パーティション規則と論理パーティション規則には、互換性がありません。物理RAW規則では、追加ブロックをスキップします。また、これらのパーティションの内容に互換性がないため、単純にOCOPYを使用して物理ディスクから論理パーティションにコピーすることはできません。
物理規則から論理規則に変換するには、次のようにします。
(ローカル)ファイル・システムに全データベースのエクスポートを実行します。
論理パーティションを作成し、これらのパーティションに論理名を定義します。
新しい論理パーティションを使用してデータベースを再作成します。
新しく作成したデータベースに全データベースのインポートを実行します。
データベースのインストールで論理パーティションに物理ディスク規則を使用している場合は、前述の手順に従ってできるだけ早い時期に論理パーティション規則に変換することをお薦めします。
|
関連項目: 拡張パーティションと論理パーティションの作成の詳細は、オペレーティング・システムのドキュメントを参照 |
RAWパーティションを作成するには、最初に拡張パーティションおよび論理パーティションを生成する必要があります。拡張パーティションとは、データベース・ファイル用の複数の論理パーティションを割り当てられる、ディスク上のRAW領域を示します。拡張パーティションにより、論理パーティションを大量に定義して、Oracle Databaseサーバーを使用するアプリケーションに対応できるようになり、4つまでというパーティションの制限を回避できます。また、論理パーティションには、ドライブ文字を使用しなくてすむようにシンボリック・リンク名を付けることができます。
Windows Vistaの場合は、プライマリ・パーティションと、「新しいシンプル ボリューム」オプションを選択して拡張パーティションの論理ドライブを作成します。RAWデバイスを作成するには、「ドライブ文字またはドライブ パスを割り当てない」を選択します。RAWデバイスをマウントするには、ドライブ文字を割り当てて削除します。スパン・ボリュームやストライプ・ボリュームは使用しないでください。これらのオプションは、ボリュームをダイナミック・ディスクに変換します。自動ストレージ管理は、ダイナミック・ディスクをサポートしていません。
コマンドラインからディスク管理用のdiskpart.exeを使用できます。このコマンドにより、ディスク・ボリューム容量を動的に増やすことや、パーティションおよびボリュームの作成、削除およびサイズ変更を行うことが可能です。
ボリューム・マウント・ポイントは、ボリューム上の追加の記憶領域になります。異なるパーティションが単一の論理ボリュームとして認識されるため、26のドライブ文字の制限を回避できます。ドライブ文字のかわりとしてマウント・ポイントを使用してください。
RAWパーティション内にあるデータファイルを使用する表領域を作成するには、次のようにします。
SQL*Plusを起動します。
C:\> sqlplus
Oracle Databaseリポジトリ・データベースに接続します。
SQL> CONNECT SYSTEM
Enter password: password
ここで、ユーザー・アカウントSYSTEMのpasswordは、デフォルトではMANAGERです。このパスワードを変更した場合は、MANAGERを正しいパスワードに置き換えます。
表領域を作成します。
SQL> CREATE TABLESPACE tablespace DATAFILE '\\.\datafile' SIZE xm;
それぞれの意味は次のとおりです。
tablespaceは、表領域名
'\\.\'は、RAWパーティションに割り当てられたドライブ文字またはシンボリック・リンク名
xは、MB単位の表領域サイズ(最初の時点では、20MBが適切)
たとえば、accounting_1というシンボリック・リンク名が割り当てられたaccounting_1という表領域を作成する場合は、次のように入力します。
SQL> CREATE TABLESPACE accounting_1 DATAFILE '\\.\accounting_1' SIZE 502M;
|
注意: SQLスクリプトを使用してデータベースを作成する場合は、RAWパーティションに格納されているデータファイルを、\\.\drive_letter:または\\.\symbolic link nameのネーミング規則で変更します。 |
ダイレクト・アタッチド・ストレージ(DAS)またはストレージ・エリア・ネットワーク(SAN)で自動ストレージ管理を使用するには、asmtoolまたはasmtoolg(GUIバージョン)を使用して、ディスクにヘッダーを付ける必要があります。
|
関連項目: asmtoolまたはasmtoolgの使用方法については、Oracle Databaseのインストレーション・ガイドの自動ストレージ管理用ディスクの手動による構成に関する項を参照 |
それぞれのDASまたはSANディスクにはパーティション表が必要です。ディスクごとに、ディスク全体を含むパーティションを1つのみ作成することをお薦めします。Microsoftのコンピュータの管理またはコマンドライン・ツールdiskpartを使用してパーティションを作成します。パーティションを作成したら、asmtoolgまたはasmtoolを実行します。これらのツールは、意味のある永続名を各ディスクに関連付けて、自動ストレージ管理でディスクを使用しやすくします。自動ストレージ管理では、ディスクのグループを同時により簡単に操作するため、ディスク文字列を使用します。そのため、この操作を行う場合、Windowsのドライブ文字を使用するよりも、asmtoolで作成された名前を使用する方がより簡単です。asmtoolで作成されたディスク名はすべて、識別しやすいように接頭辞ORCLDISKで始まります。
自動ストレージ管理では、ディスク検出時に検索パスとして、初期化パラメータASM_DISKSTRINGの値を使用します。ASM_DISKSTRINGのデフォルト値は、\\.\ORCLDISKnです。別の検索パスを使用する場合は、このパラメータに別の値を指定する必要があります。
|
関連項目: 『Oracle Database管理者ガイド』のASMインスタンスの初期化パラメータに関する項 |