たとえば、ロジックボリュームは次のとおりです。
lvcreate -L2G -n Lv_OraD1 vg_db lvcreate -L180G -n Lv_OraD2 vg_db lvdisplay /dev/mapper/Lv_OraD*
LVを生にするUDEVルール:
vi /etc/udev/rules.d/60-raw.rules ACTION=="add", ENV{MAJOR}=="253",ENV{MINOR}=="3", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", ENV{MAJOR}=="253",ENV{MINOR}=="4", RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add",KERNEL=="raw[1-9]",OWNER="grid",GROUP="dba",MODE="660" start_udev raw -qa
ASMディスクグループは次のようになります。
CREATE DISKGROUP DATA1 NORMAL REDUNDANCY FAILGROUP Fg1 DISK '/dev/raw/raw1' SIZE 2048M ,'/dev/raw/raw2' SIZE 184320M;
効果:DISKGROUPDATA1の2Gサイズアップは使用できません。
それで、この結果をオンラインで達成するためのトリックはありますか?
lvreduce -L90G /dev/mapper/Lv_OraD2 lvextend -L90G /dev/mapper/Lv_OraD1
ありがとう。
まず、ディスク名とパスを見つけます。
select name, failgroup, path, os_mb, total_mb, free_mb from v$asm_disk;
縮小するディスクのASMで生成された名前を見つけたら、ASMで目的のサイズに縮小します(DATA1_0002
と呼ばれると仮定します。
alter diskgroup data1 resize disk DATA1_0002 size 90G;
これによりリバランスが開始され、リバランスが完了するまで待ちます。進行状況は次のように表示されます。
select * from v$asm_operation;
リバランス後、次のクエリを再度実行します。
select name, failgroup, path, os_mb, total_mb, free_mb from v$asm_disk;
縮小したばかりのディスクの元の184320OS_MB
と92160TOTAL_MB
が表示されます。次に、lvreduceを使用してLVを縮小します。
lvreduce -L 90G vg_db/Lv_OraD2
LVのサイズをASMディスクサイズTOTAL_MB
より小さくしないでください。
それが完了したら、他のLVを増やします。
lvextend -L 90G g_db/Lv_OraD1
ASMに戻り、これを再度実行します。
select name, failgroup, path, os_mb, total_mb, free_mb from v$asm_disk;
ここで、最初のディスクのOS_MB
は92160に増加するはずですが、TOTAL_MB
はまだ2048のままです。
最後のステップは、ASMの最初のディスクサイズを増やすことです。
alter diskgroup data1 resize all;
上記は、ディスクグループ内のすべてのASMディスクのサイズをOS_MB
まで変更します。これにより、別の短いリバランスがトリガーされ、それが完了すると、両方のディスクのOS_MB
とTOTAL_MB
に92160が表示されます。