一時的なディスク・パス障害後にOracle ASMディスク・グループの冗長性をリストアする処理には、時間がかかります。このことは特に、リカバリ・プロセスにOracle ASMディスク・グループ全体の再構築が必要である場合は顕著です。Oracle ASMの高速ミラー再同期を行うと、このような状況下で障害が発生したディスクの再同期に要する時間を大幅に短縮できます。障害が発生したディスクを置換する場合、Oracle ASMディスクのエクステントを簡単に再同期できます。
注意:
この機能を使用するには、ディスク・グループの互換性属性を11.1
以上に設定する必要があります。詳細は、「ディスク・グループの互換性」を参照してください。
障害グループが一時的に使用できなくなる問題は、Oracle ASMの高速ミラー再同期機能によってリカバリすることが可能な、一時的障害とみなされます。一時的障害は、たとえば、ディスク・パスの不具合(ケーブル障害、ホスト・バス・アダプタ障害、コントローラ障害など)や、ディスク電源の停電などによって発生します。
Oracle ASMの高速再同期では、停止時にオフラインのディスクのエクステントに対して保留になっている変更が追跡されます。これらのエクステントは、ディスクがオンラインに戻ったときに再同期されます。
デフォルトでは、ディスクはオフラインになってから3.6時間でOracle ASMにより削除されます。この削除操作は、DISK_REPAIR_TIME
ディスク・グループ属性を設定することによって遅らせることもできます。つまり、ディスクを修復してオンラインに戻すまでの時間間隔をこの属性に指定できます。この時間は、分単位(m
、M
)または時間単位(h
、H
)で指定できます。単位を省略すると、デフォルトでは時間単位になります。DISK_REPAIR_TIME
ディスク・グループ属性は、ALTER
DISKGROUP
SQL文を使用してのみ設定でき、標準冗長性および高冗長性のディスク・グループにのみ適用されます。
この属性が明示的に設定されていない場合、明示的なDROP
AFTER
句なしでOFFLINE
モードに設定されたディスクには、デフォルト値(3.6h
)が適用されます。I/OエラーによってオフラインになったディスクにはDROP
AFTER
句がありません。
DISK_REPAIR_TIME
属性のデフォルト値は、多くの環境に適合すると思われる予測値です。ただし、この属性値は、実際の環境で一時的なディスク・エラーを修正するために必要と考えられ、データの冗長性の低下を許容できる時間に設定してください。
経過時間(ディスクがOFFLINE
モードになってからの時間)は、オフラインになったディスクが属しているディスク・グループがマウントされている場合にのみ増分されます。V$ASM_DISK
のREPAIR_TIMER
列には、オフラインのディスクが削除されるまでの残り時間(秒単位)が表示されます。指定した時間を経過すると、Oracle ASMによりディスクは削除されます。この属性は、ALTER
DISKGROUP
OFFLINE
DISK
文およびDROP
AFTER
句を使用してオーバーライドできます。
注意:
ディスクがI/O(書込み)エラーのためにOracle ASMによってオフラインにされた場合、またはDROP
AFTER
句のないALTER
DISKGROUP
... OFFLINE
文によって明示的にオフラインにされた場合は、ディスク・グループのDISK_REPAIR_TIME
属性に指定された値が使用されます。
DISK_REPAIR_TIME
属性の変更はオフライン・ディスクには影響しません。属性が更新された後にオフラインになるディスクには、この新しい値が使用されます。この動作は、Oracle ASMのアラート・ログを参照することによって確認できます。
オフラインのディスクが2回目にオフラインになると、経過時間はリセットされてから再開されます。このディスクに対してDROP
AFTER
を使用して別の時間を指定すると、最初の値がオーバーライドされ、新しい値が適用されます。OFFLINE
モードのディスクは、ALTER
DISKGROUP
DROP
DISK
文では削除できません。削除しようとするとエラーが戻されます。なんらかの理由(ディスクを修復できない場合など)により、修復時間が経過する前にディスクを削除する必要がある場合、0h
または0m
を指定したDROP
AFTER
句を使用して2回目のOFFLINE
文を発行して、ディスクを即時に削除できます。
ALTER
DISKGROUP
を使用して、DISK_REPAIR_TIME
属性を特定の時間または分の値(4.5時間または270分など)に設定できます。次に例を示します。
ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '4.5h' ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '270m'
ディスクを修復した後、SQL文ALTER
DISKGROUP
ONLINE
DISK
を実行します。この文により、修復したディスク・グループがオンラインに戻され、新しい書込みが失われないよう書込みが有効になります。また、この文により、冗長コピー上で失効とマークされているすべてのエクステントをコピーする手順が開始されます。
Oracle ASMインスタンスがローリング・アップグレード・モードのときにディスクがオフラインになると、ローリング・アップグレードが終了するまでディスクはオフラインのままであり、Oracle ASMクラスタがローリング・アップグレード・モードでなくなるまでディスクの削除タイマーは停止されます。「Oracle ASMのアップグレードおよびパッチ適用」を参照してください。ディスクをオフラインにして、オンラインに戻す例を次に示します。
次の例では、ディスクDATA_001
をオフラインにして、5分後に削除します。
ALTER DISKGROUP data OFFLINE DISK DATA_001 DROP AFTER 5m;
次の例では、ディスクDATA_001
をオフラインにして、DISK_REPAIR_TIME
で指定した時間の経過後にこのディスクを削除します。
ALTER DISKGROUP data OFFLINE DISK DATA_001;
この例では、障害グループFG2
のディスクをすべてオフラインにして、DISK_REPAIR_TIME
で指定した時間の経過後にこれらを削除します。DROP
AFTER
句を使用した場合、指定時間の経過後にこのディスクは削除されます。
ALTER DISKGROUP data OFFLINE DISKS IN FAILGROUP FG2;
次の例では、障害グループFG2
のディスクをすべてオンラインに戻します。
ALTER DISKGROUP data ONLINE DISKS IN FAILGROUP FG2;
この例では、ディスクDATA_001
のみをオンラインに戻します。
ALTER DISKGROUP data ONLINE DISK DATA_001;
この例では、ディスク・グループDATA
のディスクをすべてオンラインに戻します。
ALTER DISKGROUP data ONLINE ALL;
ALTER
DISKGROUP
ONLINE
文の実行中にV$ASM_OPERATION
ビューに問い合せると、現在実行している操作の名前と状態が表示されます。たとえば、次のSQL問合せでは、オンライン操作中のPASS
列の値を示しています。
SQL> SELECT GROUP_NUMBER, PASS, STATE FROM V$ASM_OPERATION; GROUP_NUMBER PASS STAT ------------ --------- ---- 1 RESYNC RUN 1 REBALANCE WAIT 1 COMPACT WAIT
オフライン操作では、V$ASM_OPERATION
ビュー問合せでの表示は生成されません。
FAILGROUP_REPAIR_TIME
およびCONTENT.TYPE
ディスク・グループ属性を設定できます。FAILGROUP_REPAIR_TIME
ディスク・グループ属性は、ディスク・グループ内の障害グループのデフォルトの修復時間を指定します。CONTENT.TYPE
ディスク・グループ属性は、ディスク・グループに格納される予定のデータのタイプを指定します。これらの属性は、ASMCA、ASMCMDのmkdg
、またはSQLのCREATE
およびALTER
DISKGROUP
文を使用して設定できます。ディスク・グループ属性の詳細は、「ディスク・グループ属性の管理」を参照してください。
ASMCMDのlsop
コマンドは、再同期の見積時間を表示します。リバランスの各フェーズ(ディスク再同期、リバランスおよびデータ比較)用に、V$ASM_OPERATION
表に別々の行があります。
ASMCMDのonline
コマンドには、オンライン操作の指数を指定するためのpower
オプションがあります。SQLのALTER
DISKGROUP
REPLACE
DISK
文にも指数オプションがあります。
ASMCMDのchdg
コマンドでは、add
およびdrop
タグの他に、replace
オプションが提供されます。ASMCMDのmkdg
コマンドには、障害グループをオフラインにする時間を指定するための追加の時間パラメータ(-t
)があります。
関連項目:
ALTER
DISKGROUP
およびCREATE
DISKGROUP
の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。