ディスク・グループのメンテナンス
この項では、ディスク・グループで実行するメンテナンス操作について説明します。
この項では、次の項目について説明します。
ディスク・グループのマウントおよびディスマウント
ASM_DISKGROUPS
初期化パラメータで指定したディスク・グループは、Oracle ASMインスタンスの起動時に自動的にマウントされます。このプロセスにより、Oracle ASMと同じノードで動作しているすべてのデータベース・インスタンスが、これらのディスク・グループを使用できるようになります。ディスク・グループは、Oracle ASMインスタンスの停止時にディスマウントされます。また、Oracle ASMでは、ディスク・グループは最初に作成するときにも自動的にマウントされ、削除するときにディスマウントされます。
ディスク・グループのマウント時に、ディスク・グループ番号が選択されます。この番号は、ディスク・グループのマウントごとに変わります。ディスク・グループ番号は永続的な構造で記録されませんが、現在の値はV$ASM
ビューのGROUP_NUMBER
列に表示できます。
ディスク・グループを手動でマウントまたはディスマウントする場合は、ALTER DISKGROUP...MOUNT
またはALTER DISKGROUP...DISMOUNT
文を使用します。ディスク・グループは名前別にマウントまたはディスマウントすることも、ALL
を指定することもできます。オプションのFORCE
オプションを指定することもできます。FORCE
オプションの使用の詳細は、「FORCEオプションを使用したディスク・グループのマウント」を参照してください。
オープン・ファイルを含むディスク・グループをディスマウントしようとすると、FORCE
句も指定しないかぎり、この文は失敗します。
RESTRICTED
モードのOracle ASMクラスタ環境では、ディスク・グループは単一インスタンスの排他モードでマウントされます。このクラスタ内の他のOracle ASMインスタンスはこのディスク・グループをマウントできません。このモードでは、Oracle ASMクライアントはディスク・グループを使用できません。このモードは、高速リバランスを実行する場合に使用します。
次のSQL文では、Oracle ASMインスタンスに現在マウントされているすべてのディスク・グループをディスマウントします。
ALTER DISKGROUP ALL DISMOUNT;
次のSQL文では、ディスク・グループdata1
をマウントします。
ALTER DISKGROUP data1 MOUNT;
FORCEオプションを使用したディスク・グループのマウント
Oracle ASMには、一部のOracle ASMディスクがマウント時にディスク・グループで使用できない場合でも、標準冗長性モードまたは高冗長性モードでOracle ASMディスク・グループをマウントできるMOUNT
FORCE
オプションが、ALTER
DISKGROUP
にあります。
FORCE
オプションを使用しない場合、破損または欠落しているディスクが含まれるディスク・グループのマウントはデフォルトで失敗します。
MOUNT
FORCE
オプションは、ディスクが一時的に使用できず、機能停止の原因となった状況の修正中に、冗長性を低下させてディスク・グループをマウントする場合に役立ちます。
MOUNT
FORCE
オプションを使用して正常にマウントするには、Oracle ASMがディスク・グループの全ファイルのエクステントのコピーを1つ以上検出できる必要があります。この場合、Oracle ASMによりディスク・グループのマウントは成功しますが、冗長性が損われる可能性があります。
Oracle ASMがアクセスできないディスクは、オフライン・モードになります。Oracle ASMは、次にこれらのディスクがオフライン・モードになる時間の計測を開始します。ディスクのオフラインの期間が、DISK_REPAIR_TIME
ディスク・グループ属性で設定したタイマーのしきい値を超えると、これらのディスクはディスク・グループから完全に削除されます。ディスクがオフライン状態になった後にオフラインのタイマーを変更するには、ALTER
DISKGROUP
OFFLINE
文を使用します。
注意:
Oracle ASMインスタンスは、指定の互換性に応じて異なる方法で不完全なディスク・グループをマウントします。
Oracle ASMクラスタ環境では、Oracle ASMインスタンスがディスク・グループをマウントする最初のインスタンスでない場合、MOUNT
FORCE
文の使用は失敗します。これは、ディスクが別のインスタンスからアクセスされたとしても、ローカルではアクセスできないためです。
すべてのディスクを使用できる場合、FORCE
オプションを使用するとMOUNT
コマンドは失敗します。このため、この機能は不必要かつ不適切に使用しないようにします。
次の例では、FORCE
オプションを使用してdata1
ディスク・グループのマウントを強制する方法を示します。
SQL> ALTER DISKGROUP data1 MOUNT FORCE;
関連項目:
-
DISK_REPAIR_TIME
ディスク・グループ属性の設定の詳細は、「Oracle ASMの高速ミラー再同期」 -
ディスク・グループの互換性属性により使用可能になる機能の詳細は、「ディスク・グループの互換性属性設定により使用可能になる機能」
-
ALTER
DISKGROUP
文およびFORCE
オプションの詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループ・メタデータの内部整合性のチェック
CHECK
キーワードを指定してALTER
DISKGROUP
文を使用し、ディスク・グループ・メタデータの内部整合性をチェックできます。この文を使用すると、ディスク・グループ内の特定のファイル、ディスク・グループ内の特定のディスクまたはすべてのディスク、あるいはディスク・グループ内の特定の障害グループをチェックできます。これらのチェックを実行するには、ディスク・グループをマウントする必要があります。
デフォルトでは、CHECK
DISK
GROUP
句ですべてのメタデータ・ディレクトリを検証します。Oracle ASMにサマリー・エラーが表示され、エラーの詳細がアラート・ログに書き込まれます。CHECK
キーワードによって、次の処理が実行されます。
-
ディスクの整合性を検証します。
-
整合性に関してファイルのエクステント・マップと割当て表をすべてクロス・チェックします。
-
エイリアス・メタデータ・ディレクトリとファイル・ディレクトリが正しくリンクされているかどうかをチェックします。
-
エイリアス・ディレクトリ・ツリーが正しくリンクされているかどうかを検証します。
-
Oracle ASMメタデータ・ディレクトリに、到達できない割当てブロックがないかどうかをチェックします。
REPAIR
|
NOREPAIR
句は、チェック中に検出されるエラーをOracle ASMが修復を試みる必要があるかどうかを指定します。デフォルトはNOREPAIR
です。NOREPAIR
句を使用して非一貫性に関するアラートを受信し、Oracle ASMがエラーを自動的に解決しないようにします。次の例の文では、data1
ディスク・グループ内のすべてのディスクについてメタデータの整合性をチェックします。
ALTER DISKGROUP data1 CHECK ALL;
関連項目:
CHECK
句の構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
ディスク・グループの削除
DROP
DISKGROUP
文を使用すると、Oracle ASMディスク・グループおよび必要に応じてそのすべてのファイルを削除できます。
ディスク・グループに含まれるファイルもすべて削除する必要がある場合は、INCLUDING
CONTENTS
句を指定できます。デフォルトはEXCLUDING
CONTENTS
です。この場合、構文上の整合性が保たれ、内容のあるディスク・グループの削除を回避できます。
DROP DISKGROUP
文が成功するには、Oracle ASMインスタンスが起動しており、ディスク・グループ・ファイルが開かれていない状態でディスク・グループがマウントされている必要があります。この文は、ディスク・グループが削除されるまでは戻されません。
ディスク・グループを削除すると、ディスク・グループはOracle ASMによりディスマウントされ、サーバー・パラメータ・ファイルを使用している場合はASM_DISKGROUPS
初期化パラメータからディスク・グループ名が削除されます。テキスト初期化パラメータ・ファイルを使用しており、ASM_DISKGROUPS
初期化パラメータにこのディスク・グループが記載されている場合、次回Oracle ASMインスタンスを停止して再起動する前に、このディスク・グループ名をASM_DISKGROUPS
初期化パラメータから削除する必要があります。
次の文では、data1
を削除します。
DROP DISKGROUP data1;
data1
に含まれるファイルのいずれも開かれていないことが確認された後、ディスク・グループの各ディスクのヘッダーがOracle ASMによりリライトされ、Oracle ASMのフォーマット情報が削除されます。この文にはINCLUDING CONTENTS
が指定されていないため、ディスク・グループにファイルが含まれていると、削除操作が失敗します。
Oracle Automatic Storage Managementクラスタ・ファイルシステム(Oracle ACFS)がディスク・グループ内にあるボリュームにマウントされている場合は、そのファイルシステムをディスマウントする必要があります。ファイルシステムが登録されている場合は、登録解除する必要があります。INCLUDING
CONTENTS
句を使用して、このディスク・グループを削除する必要があります。ファイルシステム内のすべてのデータが破棄されます。ディスク・グループに関連付けられたボリュームおよびマウント・パスを表示するには、V$ASM_VOLUME
ビューに問い合せます。
ディスク・グループをマウントできないのに削除する必要がある場合は、DROP
DISKGROUP
文のFORCE
オプションを使用できます。このコマンドを使用すると、次の例に示すように、Oracle ASMインスタンスによってマウントできないディスク・グループに属するディスクのヘッダーを削除できます。
SQL> DROP DISKGROUP data1 FORCE;
この操作を実行するディスク・グループは、クラスタ内でマウントされていない必要があります。FORCE
オプションを使用する場合、Oracle ASMインスタンスにより、ディスク・グループが同じストレージ・サブシステム内の別のOracle ASMインスタンスで使用されているかどうかは検証されません。
注意:
FORCE
オプションを使用する際は十分に注意してください。
ASMCAを使用して、ディスク・グループからディスクを削除することもできます。
関連項目:
-
V$ASM_VOLUME
ビューに対する問合せを示す例は、例12-9 -
Oracle ACFSファイルシステムの登録解除およびディスマウントの詳細は、「ボリュームおよびOracle ACFSファイルシステムの登録解除、ディスマウント、無効化」
-
ASMCAの詳細は、「ASMCAによるディスク・グループの管理」
ディスク・グループの名前変更
renamedg
ツールを使用すると、クローン化されたディスク・グループの名前を変更できます。ディスク・グループ上でrenamedg
を実行する前に、クラスタ内のすべてのノードでディスク・グループをディスマウントする必要があります。
renamedg
では、次の2段階のプロセスを使用して、ディスク・グループの名前を変更します。
-
フェーズ1
このフェーズでは、フェーズ2で使用される構成ファイルを生成します。
-
フェーズ2
このフェーズでは、構成ファイルを使用して、ディスク・グループの名前を変更します。
構文は次のとおりです。
renamedg {-help | help=true} renamedg [phase={one|two |both}] dgname=diskgroup newdgname=newdiskgroup [config=configfile] [asm_diskstring=discoverystring, discoverystring ...] [clean={true|false}] [check={true|false}] [confirm={true|false}] [verbose={ true|false}] [keep_voting_files={true|false}]
-
phase=
{one
|two
|both
}実行されるフェーズを指定します。指定可能な値は
one
、two
またはboth
です。この引数はオプションです。デフォルトはboth
です。通常、両方のフェーズを実行します。第2フェーズ中に問題が発生した場合は、生成された構成ファイルを使用してフェーズ
two
を再実行します。 -
dgname=
diskgroup
名前を変更するディスク・グループの名前を指定します。
-
newdgname=
newdiskgroup
ディスク・グループの新しい名前を指定します。
-
config=
configfile
フェーズ1で生成される構成ファイルへのパスを指定するか、フェーズ2で使用される構成ファイルへのパスを指定します。
この引数はオプションです。デフォルトの構成ファイルの名前は
renamedg_config
で、コマンドが実行されるディレクトリにあります。プラットフォームによっては、一重引用符が必要になります。 -
asm_diskstring=
discoverystring
,
discoverystring
...Oracle ASM検出文字列を指定します。Oracle ASMディスクがプラットフォームのデフォルトの場所にない場合は、
asm_diskstring
値を指定する必要があります。通常ワイルドカード文字を指定する場合に、プラットフォームによっては一重引用符が必要になります。 -
clean=
{true
|false
}許容しなければ無視されるエラーを削除するかどうかを指定します。デフォルトは
true
です。 -
check=
{true
|false
}フェーズ2で使用されるブール値を指定します。
true
の場合、ディスクに加えられる変更のリストが出力されます。書込みは発行されません。オプション・パラメータで、デフォルトはfalse
です。 -
confirm=
{true
|false
}フェーズ2で使用されるブール値を指定します。
false
の場合、加えられる変更が出力され、実際に変更が加えられる前に確認を求めます。オプションの値で、デフォルトはfalse
です。checkがtrue
に設定されている場合、このパラメータの値は不要です。 -
verbose=
{true
|false
}verbose=true
の場合、verboseの実行を指定します。デフォルトは、false
です。 -
keep_voting_files=
{true
|false
}名前を変更したディスク・グループで投票ファイルを保持するかどうかを指定します。デフォルトは
false
で、名前を変更したディスク・グループから投票ファイルを削除します。
注意:
renamedg
は リソースを更新せず、またrenamedg
は、データベース内のファイル参照も更新しません。この動作のため、フェーズtwo
の完了後に、ディスク・グループの元のリソースは自動的に削除されません。ディスク・グループの古いリソースは、Oracle Clusterware Control(CRSCTL)のcrsctl
stat
res
-t
コマンドを使用してステータスをチェックした後、サーバー制御ユーティリティ(SRVCTL)のsrvctl
remove
diskgroup
コマンドを使用して手動で削除できます。
例4-12は、renamedg
のいくつかの使用例を示しています。最初の例では、ディスクを検索するためにディスク文字列を使用し、verbose
オプションを有効にして、fra1
ディスク・グループの名前をfra2
に変更します。2番目の例では、renamedg
操作のフェーズone
の実行中に構成ファイルのみを作成します。3番目の例では、renamedg
のフェーズone
の実行で生成された構成ファイルを使用して、renamedg
操作のフェーズtwo
を実行します。
ディスク・グループの名前を変更後、新しいディスク・グループ名と一致するように、ディスク・グループ内のディスクの名前を変更できます。次に例を示します。
SQL> ALTER DISKGROUP fra2 RENAME DISKS ALL;
ディスクの名前変更の詳細は、「ディスク・グループ内のディスクの名前変更」を参照してください。
例4-12 renamedgの使用方法
$ renamedg dgname=fra1 newdgname=fra2 asm_diskstring='/devices/disk*' verbose=true $ renamedg phase=one dgname=fra1 newdgname=fra2 asm_diskstring='/devices/disk*' config=/tmp/fra2.conf verbose=true $ renamedg phase=two dgname=fra1 newdgname=fra2 config=/tmp/fra2.conf verbose=true