ディスク・グループの変更
ディスク・グループは、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
句の詳細は、「ディスク・グループの手動リバランス」 -
ALTER
DISKGROUP
SQL文の詳細は、『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.
関連項目:
-
ディスク・グループの互換性属性の詳細は、「ディスク・グループの互換性属性」
-
acfsutil
size
を使用したボリュームのサイズ変更の詳細は、「acfsutil size」 -
Oracle ADVMの詳細は、「Oracle ASM動的ボリューム・マネージャの概要」
-
ASMCMDを使用したOracle ADVMボリュームの管理の詳細は、「ASMCMDによるOracle ADVMの管理」
-
ASMCAによるOracle ADVMボリュームの管理の詳細は、「Oracle ACFSおよびOracle ADVMを管理するためのASMCA GUIツール」
-
ファイル・グループ・プロパティの詳細は、「Oracle ASMファイル・グループのプロパティについて」
-
ALTER
DISKGROUP
SQL文の詳細は、『Oracle Database SQL言語リファレンス』
ディスク・グループへのディスクの追加
ALTER
DISKGROUP
文のADD
句を使用して、ディスク・グループにディスクまたは障害グループを追加できます。
ALTER DISKGROUP
SQL文を使用して、ディスクまたは障害グループを追加できます。使用される構文は、CREATE
DISKGROUP
文に似ています。新しいディスクを追加した後、リバランスが進むにつれ、新しいディスクで処理されるワークロードの割合が徐々に増え始めます。
ディスクを追加する際、ディスクはディスク・グループの他のディスクと同じサイズにする必要があります。
関連項目:
-
SQL文を使用してディスク・グループにディスクを追加する例は、ALTER DISKGROUP SQL文を使用したディスク・グループへのディスクの追加
-
CREATE
DISKGROUP
SQL文の例は、例4-1 -
冗長性レベルと障害グループの詳細は、「ミラー化、冗長性および障害グループ・オプション」と「Oracle ASMの概要の理解」
-
ASMCAを使用したディスク・グループへのディスクの追加については、「ASMCAによるディスク・グループの管理」
-
ALTER
DISKGROUP
SQL文の詳細は、『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/diska6
までがdata1
に正常に追加されます。ALTER DISKGROUP
文にはFAILGROUP
句が含まれていないため、各ディスクはそれぞれ独自の障害グループに割り当てられます。NAME
句により、各ディスクに名前が割り当てられます。この句がない場合は、システム生成の名前が割り当てられます。
ALTER DISKGROUP data1 ADD DISK '/devices/diska5' NAME diska5, '/devices/diska6' NAME diska6;
障害グループを指定する場合は、タイプ(標準またはクォーラム)と名前を指定できます。障害グループ・タイプのデフォルト値は標準にデフォルト設定されます。クォーラム障害グループを指定するには、QUORUM
FAILGROUP
句を含める必要があります。次の文を発行すると、障害グループを指定するため、FAILGROUP
句を使用して、ディスク/devices/diska7
と/devices/diska8
がdata1
に正常に追加されます。
ALTER DISKGROUP data1 ADD FAILGROUP fg_diska78 DISK '/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
冗長性ディスク・グループの場合、ALTER
DISKGROUP
RENAME
DISK
をSITE
句とともに使用して名前を関連付けることができます。次に例を示します。
SQL> ALTER DISKGROUP data1 RENAME DISK 'DATA1_0001' SITE SITE1;
データ・サイト、拡張ディスク・グループおよびディスクの優先読取りの詳細は、Oracle ASM拡張ディスク・グループとPREFERRED_READ.ENABLEDを参照してください。ASMCMD stamp
コマンドの詳細は、「stamp」を参照してください。
EXTERNAL
冗長性ディスク・グループの場合、ALTER
DISKGROUP
RENAME
DISK
をFAILGROUP
句とともに使用して、ディスクの障害グループを指定できます。次に例を示します。
SQL> ALTER DISKGROUP external1 RENAME DISK 'EXTERNAL1_0001' FAILGROUP FG_EXT1_0001;
SITE
句とFAILGROUP
句は、同じSQL ALTER
DISKGROUP
RENAME
文で同時に使用することはできません。
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によるディスク・グループの管理」
-
ALTER
DISKGROUP
文の例は、「ALTER DISKGROUP SQL文を使用したディスク・グループへのディスクの追加」 -
V$ASM_OPERATION
ビューの詳細は、『Oracle Databaseリファレンス』 -
ALTER
DISKGROUP
SQL文の詳細は、『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;
ノート:
-
DROP
DISKGROUP
SQL文の詳細は、『Oracle Database SQL言語リファレンス』 -
ALTER
DISKGROUP
SQL文の詳細は、『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
キーワードを使用して次のフェーズ・オプションを選択できます。
-
RESTORE
RESTORE
フェーズには、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」 -
リバランス操作の詳細は、「リバランス操作の調整」
-
ALTER
DISKGROUP
SQL文の詳細は、『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;
進行中のSCRUB操作は、STOP
オプションで停止できます。
SQL> ALTER DISKGROUP data SCRUB STOP;
ALTER
DISKGROUP
をSCRUB
オプションとともに使用する場合、次のアイテムが適用されます。
-
任意の
REPAIR
オプションは、ディスクの破損を自動的に修復します。REPAIR
オプションを指定しない場合、SCRUB
オプションのみが、指定したターゲットの論理的な破損をチェックおよびレポートします。 -
任意の
POWER
の値は、AUTO
、LOW
、HIGH
またはMAX
に設定できます。POWER
オプションを指定しない場合、指数の値はデフォルトでAUTO
になり、指数はシステムに対して最適なレベルに調整されます。 -
任意の
WAIT
オプションを指定した場合、コマンドは、修正オプションの完了後に戻されます。WAIT
オプションを指定しない場合、修正処理は修正キューに追加され、コマンドは即時に戻されます。 -
任意の
FORCE
オプションを指定した場合、システムのI/O負荷が高かったり、修正がシステム・レベルで内部的に無効にされていても、コマンドが処理されます。
修正プロセスは、修正プロセスの実行中にV$ASM_OPERATION
ビューのフィールドで表示できます。