ディスク・グループの変更
ディスク・グループは、SQL*Plus、ASMCAまたはASMCMDコマンドで変更できます。
ALTER DISKGROUP SQL文を使用してディスク・グループの構成を変更できます。Oracle ASMコンフィギュレーション・アシスタント(ASMCA)とASMCMD chdgコマンドを使用して、ディスク・グループ構成を変更することもできます。
データベースの状態がオンラインのままで、ディスクの追加、サイズ変更および削除を行うことができます。可能であれば、1つのALTER DISKGROUP文で複数の操作を行うことをお薦めします。1つのALTER DISKGROUP文で操作をグループ化すると、リバランス操作を削減できます。
ディスク・グループの構成が変更されると、Oracle ASMにより自動的にリバランスが行われます。デフォルトでは、ALTER DISKGROUP文は、操作の完了を待たずに戻されます。この操作のステータスを監視するには、V$ASM_OPERATIONビューに問い合せます。
リバランス操作が完了するのを待ってからALTER DISKGROUP文の処理が戻されるようにするには、REBALANCE WAIT句を使用します。これは特にスクリプトの場合に役に立ちます。この文では、REBALANCE NOWAIT句も使用できます。これにより、リバランス操作をバックグラウンドで非同期に実行するデフォルトの動作が呼び出されます。
多くのプラットフォーム上でCTRL+Cと入力すると、待機モードのリバランス実行を中断できます。これにより、「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」というメッセージとともに文は即時に戻され、操作は非同期で続行されます。CTRL+Cを入力しても、リバランス操作またはディスクの追加、ドロップ、リサイズ操作はキャンセルされません。
リバランス操作の速度およびリソース消費を制御するには、ディスクを追加、削除またはサイズ変更する文にREBALANCE POWER句を含めます。
次の内容について説明します。
関連項目:
-
Oracle ASMコンフィギュレーション・アシスタント(ASMCA)を使用したディスク・グループ構成の変更の詳細は、「ASMCAによるディスク・グループの管理」
-
ASMCMD
chdgを使用したディスク・グループ構成の変更の詳細は、「chdg」 -
REBALANCE句とPOWER句の詳細は、「ディスク・グループの手動リバランス」 -
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループでのOracle ADVMボリュームの管理
ディスク・グループでは、Oracle ASM動的ボリューム・マネージャ(Oracle ADVM)ボリュームを作成できます。
作成後は、動的ボリュームに関連付けられたボリューム・デバイスを使用してOracle ACFSファイルシステムをホスト管理できます。
ディスク・グループの互換性属性COMPATIBLE.ASMおよびCOMPATIBLE.ADVMは、11.2以上に設定する必要があります。
ALTER DISKGROUP VOLUME SQL文を使用すると、ボリュームを追加、変更、サイズ変更、無効化、有効化および削除する機能を含め、Oracle ADVMボリュームを管理できます。
Oracle ADVMボリュームがフレックス・ディスク・グループにある場合、ALTER DISKGROUP MODIFY FILEGROUP volume_name SQL文を使用してオンラインのOracle ADVMボリュームの冗長性を変更できます。
注意:
ボリュームでOracle ACFSファイルシステムをホスト管理している場合、SQL ALTER DISKGROUP文を使用してそのボリュームのサイズを変更することはできません。かわりに、acfsutil sizeコマンドを使用する必要があります。
次に、ALTER DISKGROUP VOLUME文の例を示します。
例4-5 ALTER DISKGROUP VOLUME文によるボリュームの管理
SQL> ALTER DISKGROUP data ADD VOLUME volume1 SIZE 10G; Diskgroup altered. SQL> ALTER DISKGROUP data RESIZE VOLUME volume1 SIZE 15G; Diskgroup altered. SQL> ALTER DISKGROUP data DISABLE VOLUME volume1; Diskgroup altered. SQL> ALTER DISKGROUP data ENABLE VOLUME volume1; Diskgroup altered. SQL> ALTER DISKGROUP ALL DISABLE VOLUME ALL; Diskgroup altered. SQL> ALTER DISKGROUP data DROP VOLUME volume1; Diskgroup altered.
関連項目:
-
ディスク・グループの互換性属性の詳細は、「ディスク・グループの互換性属性」
-
acfsutilsizeを使用したボリュームのサイズ変更の詳細は、「acfsutil size」 -
Oracle ADVMの詳細は、「Oracle ASM動的ボリューム・マネージャの概要」
-
ASMCMDを使用したOracle ADVMボリュームの管理の詳細は、「ASMCMDによるOracle ADVMの管理」
-
ASMCAによるOracle ADVMボリュームの管理の詳細は、「Oracle ACFSおよびOracle ADVMを管理するためのASMCA GUIツール」
-
ファイル・グループ・プロパティの詳細は、「Oracle ASMファイル・グループのプロパティについて」
-
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループへのディスクの追加
ALTER DISKGROUP文のADD句を使用して、ディスク・グループにディスクまたは障害グループを追加できます。
CREATE DISKGROUP文でディスクまたは障害グループを追加する場合と同じ構文を、ALTER DISKGROUP文で使用できます。新しいディスクを追加した後、リバランスが進むにつれ、新しいディスクで処理されるワークロードの割合が徐々に増え始めます。
ディスクを追加する際、ディスクはディスク・グループの他のディスクと同じサイズにする必要があります。
関連項目:
-
CREATEDISKGROUPSQL文の例は、例4-1 -
SQL文を使用してディスク・グループにディスクを追加する例は、「ALTER DISKGROUP SQL文を使用したディスク・グループへのディスクの追加」
-
ASMCAを使用したディスク・グループへのディスクの追加については、「ASMCAによるディスク・グループの管理」
-
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
ALTER DISKGROUP SQL文を使用したディスク・グループへのディスクの追加
次の例で示すSQL文では、ディスク検出とADD DISK操作との相互作用について説明します。
ディスク検出により、ディレクトリ/devicesで次のディスクが識別されたとします。
/devices/diska1 -- member of data1 /devices/diska2 -- member of data1 /devices/diska3 -- member of data1 /devices/diska4 -- member of data1 /devices/diska5 -- candidate disk /devices/diska6 -- candidate disk /devices/diska7 -- candidate disk /devices/diska8 -- candidate disk /devices/diskb1 -- member of data1 /devices/diskb2 -- member of data1 /devices/diskb3 -- member of data1 /devices/diskb4 -- member of data2 /devices/diskc1 -- member of data2 /devices/diskc2 -- member of data2 /devices/diskc3 -- member of data3 /devices/diskc4 -- candidate disk /devices/diskd1 -- candidate disk /devices/diskd2 -- candidate disk /devices/diskd3 -- candidate disk /devices/diskd4 -- candidate disk /devices/diskd5 -- candidate disk /devices/diskd6 -- candidate disk /devices/diskd7 -- candidate disk /devices/diskd8 -- candidate disk
Oracle ASMディスクのステータスを表示するには、V$ASM_DISKビューに問合せを行います。「Oracle ASMディスク・グループ情報を表示するビュー」を参照してください。
次の文は、/devices/diska1から/devices/diska4までが、現在、ディスク・グループdata1に属しているため、失敗します。
ALTER DISKGROUP data1 ADD DISK
'/devices/diska*';
次の文を発行すると、ディスク/devices/diska5から/devices/diska8までがdata1に正常に追加されます。ALTER DISKGROUP文にはFAILGROUP句が含まれていないため、各ディスクはそれぞれ独自の障害グループに割り当てられます。NAME句により、各ディスクに名前が割り当てられます。この句がない場合は、システム生成の名前が割り当てられます。
ALTER DISKGROUP data1 ADD DISK
'/devices/diska5' NAME diska5,
'/devices/diska6' NAME diska6,
'/devices/diska7' NAME diska7,
'/devices/diska8' NAME diska8;
次の文は、検索文字列に一致するディスクが別のディスク・グループに含まれているため失敗します。具体的には、/devices/diska4がディスク・グループdata1に属しており、/devices/diskb4がディスク・グループdata2に属しています。
ALTER DISKGROUP data1 ADD DISK
'/devices/disk*4';
次の文を発行すると、/devices/diskd1から/devices/diskd8までがディスク・グループdata1に正常に追加されます。この文は、リバランス指数5で実行されており、リバランス操作が完了するまでは戻されません。
ALTER DISKGROUP data1 ADD DISK
'/devices/diskd*'
REBALANCE POWER 5 WAIT;
/devices/diskc3がディスク・グループの以前のメンバーで現在は存在しない場合、FORCEオプションを使用して、別のディスク・グループのメンバーとしてこのディスクを追加できます。たとえば、次のようにFORCE句を使用すると、/devices/diskc3が現在はdata3のメンバーであっても、data2に追加できます。この文を正常に実行するためには、data3はマウントできません。
ALTER DISKGROUP data2 ADD DISK
'/devices/diskc3' FORCE;ディスク・グループ内のディスクの置換
ディスク・グループ内のディスクは、削除して追加するのではなく、置換することができます。
単一の置換操作は、ディスクを削除および追加するよりも効率的です。この操作はディスクに欠落や破損があった場合、特に役立ちます。
たとえば、diskc7ディスクを/devices/diskc18パスで識別される別のディスクと置換するには、次の文を発行します。
SQL> ALTER DISKGROUP data2 REPLACE DISK diskc7 WITH '/devices/diskc18' POWER 3;
指数オプションは、0に設定できない点を除いて、ALTER DISKGROUP REBALANCE文の指数オプションと同じように機能します。
REPLACE句のあるALTER DISKGROUP SQL文は、WAITまたはNOWAITの各オプション、さらにFORCEオプションを含んでいます。
注意:
-
ディスク・グループのリバランスにおける指数オプションの詳細は、「ディスク・グループの手動リバランス」
-
ASM_POWER_LIMIT初期化パラメータの詳細は、「ASM_POWER_LIMIT」
ディスク・グループ内のディスクの名前変更
ALTER DISKGROUP RENAME DISK SQL文を使用して、ディスク・グループ内のディスクの名前を変更できます。
注意:
RENAME DISK操作を使用できるのは、ディスクを含むディスク・グループがMOUNT RESTRICTED状態の場合のみです。ディスク・グループ内のいずれかのディスクがオフラインの場合、RENAME操作は失敗します。新しいディスク名が存在する場合、RENAME操作は失敗します。ディスクの名前を変更するには、SYSASM権限を持っている必要があります。
1つのSQL文で1つまたは複数のディスクの名前を変更したり、RENAME DISKS ALL句を使用してディスク・グループ内のすべてのディスクの名前を変更できます。
たとえば、次のようにディスクの名前を変更できます。
SQL> ALTER DISKGROUP fra2 MOUNT RESTRICTED;
SQL> ALTER DISKGROUP fra2 RENAME DISK 'FRA1_0001' TO 'FRA2_0001',
'FRA1_0002' TO 'FRA2_0002';
NORMAL、HIGHおよびFLEX冗長性ディスク・グループの場合、ALTERDISKGROUPRENAMEDISKをSITE句とともに使用して名前を関連付けることができます。次に例を示します。
SQL> ALTER DISKGROUP data1 RENAME DISK 'DATA1_0001' SITE SITE1;
データ・サイト、拡張ディスク・グループおよびディスクの優先読取りの詳細は、Oracle ASM拡張ディスク・グループとPREFERRED_READ.ENABLEDを参照してください。ASMCMD stampコマンドの詳細は、「stamp」を参照してください。
EXTERNAL冗長性ディスク・グループの場合、ALTERDISKGROUPRENAMEDISKをFAILGROUP句とともに使用して、ディスクの障害グループを指定できます。次に例を示します。
SQL> ALTER DISKGROUP external1 RENAME DISK 'EXTERNAL1_0001' FAILGROUP FG_EXT1_0001;
SITE句とFAILGROUP句は、同じSQL ALTERDISKGROUPRENAME文で同時に使用することはできません。
ALTER DISKGROUP diskgroupname RENAME DISKS ALL文をrenamedgユーティリティの後に実行して、名前変更されたディスク・グループ内のディスクの名前を変更できます。renamedgについては、「ディスク・グループの名前変更」を参照してください。
ALTER DISKGROUP diskgroupname RENAME DISKS ALL文を実行すると、diskgroupname_number形式でないディスク名はすべてこの形式に名前変更されます。すでにdiskgroupname_number形式になっているディスク名は変更されません。
注意:
ASMLIB、ASMFD、EXADATA、ASMTOOLなどのサブシステムによってディスクにラベルが付けられる場合、そのラベルは仕様によりディスク名になります。このようなサブシステムでは、ALTER DISKGROUP RENAME DISKS SQL文に効力はなく、ディスクの名前は変更されません。
ディスク・グループからのディスクの削除
ALTER DISKGROUP文のDROP DISK句を使用して、ディスク・グループからディスクを削除できます。
また、DROP DISKS IN FAILGROUP句を使用すると、指定した障害グループのすべてのディスクを削除できます。
ディスクを削除すると、削除したディスクのすべてのファイル・エクステントをディスク・グループ内の他のディスクに移動することにより、ディスク・グループがリバランスされます。他のディスク上で使用可能な領域が十分でない場合、ディスクの削除操作は失敗する場合があります。最適の方法は、同じALTER DISKGROUP文で追加と削除の両方の操作を実行する方法です。この方法には、データ・エクステントのリバランスを一度しか行わず、リバランス操作を成功させるのに十分な領域を確保するという利点があります。
注意:
ALTER DISKGROUP...DROP DISK SQL文では、削除およびリバランス操作が完了する前にSQLプロンプトが戻されます。V$ASM_DISKビューでこのディスクのHEADER_STATUS列がFORMERに変わるまでは、削除したディスクを再利用、削除または切断しないでください。V$ASM_OPERATIONビューに問い合せれば、削除およびリバランス操作が完了するまでの残りの時間を確認できます。
削除操作にFORCE句を指定すると、Oracle ASMによるディスクでの読取りまたは書込みができない場合でも、ディスクは削除されます。外部冗長性のディスク・グループからディスクを削除する場合、FORCEフラグは使用できません。
注意:
DROP FORCE操作を実行すると、後続のリバランス操作が完了するまでデータの冗長性は低下した状態のままになります。これにより、リバランス中にディスク障害が発生した場合、データが損失する危険性が高くなります。DROP FORCEは慎重に使用してください。
例4-6の文では、ディスク・グループdata1からディスクを削除する方法を示しています。1つ目の例では、ディスク・グループdata1からdiska5を削除します。2つ目の例では、ディスク・グループdata1からdiska5を削除するとともに、1つのALTER DISKGROUP文で可能な複数のアクションの実行も示しています。
例4-6 ディスク・グループからのディスクの削除
ALTER DISKGROUP data1 DROP DISK diska5;
ALTER DISKGROUP data1 DROP DISK diska5
ADD FAILGROUP failgrp1 DISK '/devices/diska9' NAME diska9;関連項目:
-
ASMCAを使用したディスク・グループからのディスクの削除については、「ASMCAによるディスク・グループの管理」
-
ALTERDISKGROUP文の例は、「ALTER DISKGROUP SQL文を使用したディスク・グループへのディスクの追加」 -
V$ASM_OPERATIONビューの詳細は、『Oracle Databaseリファレンス』 -
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループ内のディスクのサイズ変更
ALTER DISKGROUPのRESIZE句を使用すると、ディスク・グループ内のディスクのサイズを変更できます。
ディスク・グループのディスクをサイズ変更する際には、すべてのディスクを同じサイズにする必要があります。
SIZE句で新しいサイズを指定しない場合、Oracle ASMではオペレーティング・システムから戻されるディスクのサイズが使用されます。新しいサイズはOracle ASMディスク・ヘッダーに書き込まれ、サイズが大きくなっている場合、新しい領域の割当てが即時に可能になります。サイズが小さくなっている場合、リバランスにより、新しいサイズ制限を超えるファイル・エクステントが制限未満の使用可能領域に再配置される必要があります。リバランス操作によってすべてのエクステントを正常に再配置できる場合、新しいサイズが確定されます。正常に再配置できない場合、リバランスは失敗します。
次の例では、ディスク・グループdata1内のすべてのディスクのサイズを変更します。新しいサイズがディスク容量を超えている場合、この文は失敗します。
例4-7 ディスク・グループ内のディスクのサイズ変更
ALTER DISKGROUP data1 RESIZE ALL SIZE 100G;
ディスク・グループ内のディスクの削除解除
ALTER DISKGROUP文のUNDROP DISKS句を使用すると、ディスク・グループ内のディスクに対して保留中の削除操作をすべて取り消すことができます。
ディスクの削除操作が完了している場合、この文はディスクのリストアに使用できません。この文は、DROP DISKGROUP文の結果として削除されるディスク、またはFORCE句を使用して削除されるディスクのリストアには使用できません。
次の例では、ディスク・グループdata1からのディスクの削除を取り消します。
例4-8 ディスク・グループ内のディスクの削除解除
ALTER DISKGROUP data1 UNDROP DISKS;
注意:
-
DROPDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』 -
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループの手動リバランス
ALTER DISKGROUP文のREBALANCE句を使用して、ディスク・グループ内のファイルを手動でリバランスできます。
ファイル・グループへの変更も含め、ディスク・グループは構成が変更されるとOracle ASMによって自動的にリバランスされるため、通常、手動によるリバランスは必要ありません。ただし、自動リバランス操作の速度を管理するには、手動リバランス操作の実行が必要になります。
ALTER DISKGROUP REBALANCE文のPOWER句を使用して並列度、つまりリバランス操作の速度を指定します。値を大きくすると、リバランス操作の速度が上がります。これは最低で0に設定でき、値を0にすると、この文が暗黙的または明示的に再実行されるまではリバランス操作が停止します。
デフォルトのリバランス指数は、ASM_POWER_LIMIT初期化パラメータによって設定されます。POWER句の値の範囲は、ASM_POWER_LIMIT初期化パラメータと同じです。
進行中のリバランス操作の指数レベルは、MODIFY POWER句を使用してリバランス文を入力すると変更できます。たとえば、次のSQL文では、進行中のリバランスの指数設定を10に変更します。
ALTER DISKGROUP data2 REBALANCE MODIFY POWER 10;
次のSQL文では、指数設定をデフォルト値に変更します。
ALTER DISKGROUP data2 REBALANCE MODIFY POWER;
ディスク・グループをリバランスする際、特に注意書きがないかぎり、WITHキーワードまたはWITHOUTキーワードを使用して次のフェーズ・オプションを選択できます。
-
RESTORERESTOREフェーズには、RESYNC、RESILVERおよびREBUILDの各操作があります。RESTOREフェーズは常にデフォルトで実行され、除外できません。-
RESYNCこの操作は、オンラインになっているディスク上の失効したエクステントを同期します。
-
RESILVERこの操作は、Exadataシステムにのみ固有です。このフェーズでは、あるミラーから失効したデータがあるミラーにデータがコピーされます。
-
REBUILDこの操作では、強制ディスクのみの冗長性をリストアします。強制ディスクとは、FORCEオプションを使用して削除されたディスクです。
-
-
BALANCEこのフェーズでは、ファイル・グループを含め、ディスク・グループ内のすべてのディスクの冗長性をリストアし、Oracle ASMディスク上のエクステントのリバランスも行います。
-
PREPAREこのフェーズでは、prepare SQL操作に対応する動作が実行されます。このフェーズは、
FLEXまたはEXTENDED冗長性のディスク・グループの場合のみ有効です。COMPATIBLE.ASMは12.2以上に設定する必要があります。 -
COMPACTこのフェーズでは、Oracle ASMディスク全体でエクステントをデフラグして圧縮します。
リバランス操作では、最適な順序でフェーズが実行されます。どのフェーズにもALTER DISKGROUP...REBALANCE SQL文を指定しない場合、動作はOracle ASM 12.2リリースより前のリバランス操作と同じで、すべてのリバランス・フェーズが実行されます。
次に、ALTER DISKGROUP...REBALANCEでのフェーズ・オプションの使用例を示します。
ALTER DISKGROUP data2 REBALANCE WITH BALANCE COMPACT; ALTER DISKGROUP data3 REBALANCE WITHOUT BALANCE;
デフォルトでは、ALTER DISKGROUP...REBALANCEコマンドはすぐに戻されるため、リバランス操作がバックグラウンドで非同期に実行されている間に他のコマンドを実行できます。リバランス操作のステータスを確認するには、V$ASM_OPERATIONビューに問い合せます。リバランス・フェーズの一部が実行されない場合は、V$ASM_OPERATIONビューに、ORA-59000エラーがリバランスの最後に表示されます。
リバランス操作が完了するのを待ってからALTER DISKGROUP...REBALANCEコマンドが戻されるようにするには、REBALANCE句にWAITキーワードを追加します。この待機機能は特にスクリプトの場合に役に立ちます。このコマンドでは、NOWAITキーワードも使用できます。これにより、リバランス操作を非同期に実行するデフォルトの動作が呼び出されます。多くのプラットフォーム上でCTRL+Cと入力すると、待機モードのリバランス実行を中断できます。これにより、「ORA-01013: ユーザーによって現行の操作の取消しがリクエストされました」というメッセージとともにコマンドはすぐに戻され、リバランス操作は非同期で続行されます。
リバランス操作の追加ルールは、次のとおりです。
-
ユーザーが構成を変更する場合や、障害または機能停止が原因で構成が変わる場合にストレージ構成が変わると、進行中のリバランス・コマンドが再開されます。さらに、ユーザー・エラーが原因で新しいリバランスが失敗した場合、手動リバランスが必要になることがあります。
-
ALTER DISKGROUP...REBALANCE文は、Oracle Real Application Clusters(Oracle RAC)を使用している場合でも単一ノードで実行されます。 -
Oracle ASMが特定のインスタンスで一度に実行できるディスク・グループのリバランスは1回です。異なるディスク・グループに対して複数のリバランスを開始した場合、その操作は使用可能な追加のノードがあれば同時に処理されます。ただし、1つのノードの場合はリバランスは順番に処理されます。異なるノード上の異なるディスク・グループに対するリバランスを明示的に同時に開始できます。
-
リバランスは、リバランスを実行しているOracle ASMインスタンスの1つの障害の間中続行されます。
-
REBALANCE句(および関連するPOWERおよびWAIT/NOWAITキーワード)は、ディスクを追加、削除またはサイズ変更するALTER DISKGROUPコマンドでも使用できます。注意:
ストレージ構成が変わると、進行中のリバランス操作の処理が再開されます。ユーザー・エラーが原因で次のリバランス操作が失敗した場合、手動リバランスが必要になることがあります。
次の例では、ディスク・グループdata2を手動でリバランスします。このコマンドは、リバランス操作が完了するまでは戻されません。リバランス操作のサポートされているフェーズがすべて実行されます。RESTOREフェーズは、リバランス時に必ず実行されるため、指定する必要はありません。
例4-9 ディスク・グループの手動リバランス
ALTER DISKGROUP data2 REBALANCE RESTORE POWER 5 WAIT;
関連項目:
-
ASM_POWER_LIMIT初期化パラメータの詳細は、「ASM_POWER_LIMIT」 -
リバランス操作の詳細は、「リバランス操作の調整」
-
ALTERDISKGROUPSQL文の詳細は、『Oracle Database SQL言語リファレンス』
リバランス操作の調整
ALTER DISKGROUP文でPOWER句を指定しなかった場合や、ディスクの追加または削除によってリバランスが暗黙的に実行される場合は、リバランス指数はデフォルトでASM_POWER_LIMIT初期化パラメータの値になります。このパラメータの値は動的に調整できます。POWER句の値の範囲は、ASM_POWER_LIMIT初期化パラメータと同じです。
指数が大きくなるほど、リバランス操作の完了は早くなります。指数の値が小さいほどリバランスにかかる時間は長くなりますが、データベースなどの他のアプリケーションで共有される処理とI/Oの消費リソースは少なくなります。
Oracle ASMでは、各パワーユニットのリバランスI/Oを保持しようとします。各I/Oは、リロケーションに含まれるエクステントのPGAメモリーが必要です。
デフォルト値の1を使用すると、他のアプリケーションへの影響は最小限に抑えられます。適切な値は、ハードウェアの構成とパフォーマンスおよび可用性の要件によって異なります。Oracle ASMでは、常に、使用可能なメモリーに適合するように指数が調整されます。
COMPATIBLE.ASMディスク・グループを11.2.0.2以上に設定すると、リバランス操作は、非同期I/Oを使用した1つのプロセスとして実行される可能性があります。リバランス・プロセスの詳細を参照するために、Oracle ASMアラート・ログを確認することができます。
ディスクが手動または自動で削除されたためにリバランスが進行中の場合は、リバランス指数を大きくすると、削除されたディスク上のデータの冗長コピーが他のディスク上で復元される間の時間枠は短くなります。
CONTENT.CHECKおよびTHIN_PROVISIONEDディスク・グループ属性を使用して、リバランスの動作に影響を与えることもできます。
EXPLAIN WORK SQL文によって、リバランス操作の作業量が決定し、生成された計算は、V$ASM_ESTIMATEビューに表示されます。
次に例を示します。
EXPLAIN WORK FOR ALTER DISKGROUP data DROP DISK data_0000;
Explained.
SELECT est_work FROM V$ASM_ESTIMATE;
EST_WORK
--------
4211
EXPLAIN WORK SET STATEMENT_ID='online' FOR ALTER DISKGROUP data
ONLINE disk data_000;
Explained.
SELECT est_work FROM V$ASM_ESTIMATE WHERE STATEMENT_ID='online';
EST_WORK
--------
421
V$ASM_ESTIMATEビューでは、ASM_POWER_LIMITの調整用の情報と、リバランス操作の結果の指数が示されます。EST_WORK列には、リバランス操作の完了によって移動する必要がある割当て単位の見積り数が示されます。
V$ASM_OPERATIONのPASS列は、再同期およびリバランス操作のために更新されます。列の内容は、RESYNC、REBALANCEまたはCOMPACTになります。たとえば、次のSQL問合せでは、リバランス操作中のPASS列の値を示しています。
SQL> SELECT GROUP_NUMBER, PASS, STATE FROM V$ASM_OPERATION;
GROUP_NUMBER PASS STAT
------------ --------- ----
2 RESYNC WAIT
2 REBALANCE WAIT
2 COMPACT WAIT
関連項目:
-
ASM_POWER_LIMIT初期化パラメータの詳細は、「ASM_POWER_LIMIT」 -
ディスク・グループの属性の詳細は、「ディスク・グループ属性の概要」
-
ディスク・グループのリバランスの詳細は、「ディスク・グループの手動リバランス」
ディスク・グループの修正
Oracle ASMのディスク修正では、読み取られる可能性が少ないデータを検索することによって、可用性および信頼性が向上します。ディスク修正は、論理データの破損をチェックし、標準冗長性および高冗長性のディスク・グループで、破損を自動的に修復します。修正プロセスは、ミラー・ディスクを使用して論理破損を修復します。ディスク修正は、ディスク・グループのリバランスと組み合せて、I/Oリソースを減らすことができます。ディスク修正プロセスは、本番システムでの通常のI/Oへの影響を最小限に抑えます。
ALTER DISKGROUP SQL文を使用して、ディスク・グループ、指定したディスク、またはディスク・グループの指定したファイルで修正を実行できます。たとえば、次のSQL文は、ALTER DISKGROUP disk_group SCRUB SQL文を実行する際に使用される様々なオプションを示します。
SQL> ALTER DISKGROUP data SCRUB POWER LOW;
SQL> ALTER DISKGROUP data SCRUB FILE '+DATA/ORCL/DATAFILE/example.266.806582193'
REPAIR POWER HIGH FORCE;
SQL> ALTER DISKGROUP data SCRUB DISK DATA_0005 REPAIR POWER HIGH FORCE;
ALTER DISKGROUPをSCRUBオプションとともに使用する場合、次のアイテムが適用されます。
-
任意の
REPAIRオプションは、ディスクの破損を自動的に修復します。REPAIRオプションを指定しない場合、SCRUBオプションのみが、指定したターゲットの論理的な破損をチェックおよびレポートします。 -
任意の
POWERの値は、AUTO、LOW、HIGHまたはMAXに設定できます。POWERオプションを指定しない場合、指数の値はデフォルトでAUTOになり、指数はシステムに対して最適なレベルに調整されます。 -
任意の
WAITオプションを指定した場合、コマンドは、修正オプションの完了後に戻されます。WAITオプションを指定しない場合、修正処理は修正キューに追加され、コマンドは即時に戻されます。 -
任意の
FORCEオプションを指定した場合、システムのI/O負荷が高かったり、修正がシステム・レベルで内部的に無効にされていても、コマンドが処理されます。
修正プロセスは、修正プロセスの実行中にV$ASM_OPERATIONビューのフィールドで表示できます。