本文详细描述一次在IBM P750的小机上动态给Oracle数据库扩展存储空间的操作。
背景描述:一套2台IBM P750的小机通过HACMP做的HA,上面跑的是Oracle 11gR2的单实例数据库,除小机自带两块300G本地存储之外,共享存储采用的是IBM DS 5100,做RAID 10之后,可用空间2.1TB。目前该机器上有两个VG:rootvg,datavg。其中,rootvg存放AIX操作系统,由本机自带两块盘提供物理卷,datavg给oracle数据库用,物理卷是阵列上的磁盘。其中,datavg下的逻辑卷/oradata用于存放数据库的数据文件、联机日志文件、控制文件等;/oraflash主要用于存放归档日志和RMAN备份。
1 添加之前,查看当前文件系统使用信息:
$ df -g Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/hd4 1.00 0.78 23% 10542 6% / /dev/hd2 10.00 7.48 26% 52002 3% /usr /dev/hd9var 5.00 4.45 12% 8742 1% /var /dev/hd3 10.00 7.22 28% 729 1% /tmp /dev/hd1 0.50 0.49 2% 135 1% /home /dev/hd11admin 0.50 0.50 1% 5 1% /admin /proc - - - - - /proc /dev/hd10opt 0.50 0.23 55% 10267 16% /opt /dev/livedump 0.50 0.50 1% 4 1% /var/adm/ras/livedump /dev/oracle 100.00 80.71 20% 357020 2% /u01 /dev/oradata 500.00 135.74 73% 39 1% /oradata /dev/oraflash 500.00 58.62 89% 1186 1% /oraflash $
从上看到,挂载在/oraflash下的/dev/oraflash文件系统大小是500G,可用空间剩余58G,挂载在/oradata下的/dev/oradata文件系统大小是500G,剩余空间是135G,因业务量迅速增长,现需要扩充存储空间。接下来准备扩充文件系统/oradata和/oraflash,准备分别扩充300G。
2 扩之前,查看VG信息:
$ lsvg -o datavg rootvg $
看到,当前varyon的卷组是rootvg和datavg。
3 查看datavg的物理卷信息:
$ lsvg -p datavg datavg: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION hdisk2 active 1599 0 00..00..00..00..00 hdisk3 active 1599 0 00..00..00..00..00 hdisk4 active 1199 397 00..00..00..157..240 hdisk5 active 1599 1598 320..319..319..320..320 hdisk6 active 1599 1599 320..320..319..320..320 hdisk7 active 1599 0 00..00..00..00..00 hdisk8 active 1599 0 00..00..00..00..00 hdisk9 active 1599 797 157..00..00..320..320 hdisk10 active 1599 1599 320..320..319..320..320 hdisk11 active 1599 1599 320..320..319..320..320 $
4 查看datavg下的逻辑卷信息:
$ lsvg -l datavg datavg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT oradata jfs2 4000 4000 3 open/syncd /oradata loglv01 jfs2log 1 1 1 open/syncd N/A oraflash jfs2 4000 4000 3 open/syncd /oraflash $
从上,看到oradata,oraflash两个逻辑卷都位于datavg卷组下。
5 接下来,查看datavg的详细信息:
$ lsvg datavg VOLUME GROUP: datavg VG IDENTIFIER: 00f64a5100004c000000012d5e49cf72 VG STATE: active PP SIZE: 128 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 15590 (1995520 megabytes) MAX LVs: 256 FREE PPs: 7589 (971392 megabytes) LVs: 3 USED PPs: 8001 (1024128 megabytes) OPEN LVs: 3 QUORUM: 6 (Enabled) TOTAL PVs: 10 VG DESCRIPTORS: 10 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 10 AUTO ON: no MAX PPs per VG: 32768 MAX PVs: 1024 LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no HOT SPARE: no BB POLICY: relocatable PV RESTRICTION: none $
从上看到,datavg卷组的PP size=128M,Totol PPs=15590,意味着卷组的总大小=128*15590M=1948G,已用8001个PPs(1000G),可用PPs 7589个(948G)。说明,卷组上还有空间可供使用。
6 查看逻辑卷oraflash的信息:
$ lslv oraflash LOGICAL VOLUME: oraflash VOLUME GROUP: datavg LV IDENTIFIER: 00f64a5100004c000000012d5e49cf72.3 PERMISSION: read/write VG STATE: active/complete LV STATE: opened/syncd TYPE: jfs2 WRITE VERIFY: off MAX LPs: 4000 PP SIZE: 128 megabyte(s) COPIES: 1 SCHED POLICY: parallel LPs: 4000 PPs: 4000 STALE PPs: 0 BB POLICY: relocatable INTER-POLICY: minimum RELOCATABLE: yes INTRA-POLICY: middle UPPER BOUND: 1024 MOUNT POINT: /oraflash LABEL: /oraflash MIRROR WRITE CONSISTENCY: on/ACTIVE EACH LP COPY ON A SEPARATE PV ?: yes Serialize IO ?: NO DEVICESUBTYPE : DS_LVZ COPY 1 MIRROR POOL: None COPY 2 MIRROR POOL: None COPY 3 MIRROR POOL: None $
这里,看到oraflash逻辑卷MAX LPs、LPs、PPs都是4000,说明如果要直接扩充文件系统的话,扩充之后的文件系统Max LPs不能超过4000,否则就得先扩逻辑卷oraflash了。oraflash文件系统类型是jfs2。
7 顺便查看oraflash占用哪几个物理卷的信息:
$ lslv -l oraflash oraflash:/oraflash PV COPIES IN BAND DISTRIBUTION hdisk7 1599:000:000 20% 320:320:319:320:320 hdisk8 1599:000:000 20% 320:320:319:320:320 hdisk9 802:000:000 39% 163:320:319:000:000 $
8 尝试直接使用smitty直接扩充oraflash文件系统,尝试增加100G,即从现有的500G扩充到600G:
从上看到,oraflash文件系统类型是jfs2,直接以root执行smitty chjfs2命令,进入smitty界面:
然后,选择/oraflash,回车,进入下一操作界面:
将Unit Size选择为G,Number of units输入600,表示600G大小,即该文件系统的扩充目标大小。回车,进入下图:
发现报错,提示逻辑卷oraflash的超出最大4000个Lps。扩充失败。看来得先修改逻辑卷oraflash的属性了。
9 接下来,先修改逻辑卷oraflash的最大Lps,这里准备增加2400个,从目前的4000个Lps增加到6400个。2400*128=300G,这个需要事先计算好。
root用户执行smitty chlv,进入下述操作界面:
选择第一项,Change a Logical Volume,然后选择对应的oraflash,如下图:
回车,进入下一界面:
然后,修改MAXIMUM NUMBER of LOGICAL PARTITIONS值为6400,改完之后,直接回车,进入下一界面:
提示成功,状态OK。执行Esc+0退出。
10 再次对/oraflash文件系统进行扩充。依次以root执行smitty chjfs2命令,选择/oraflash文件系统,同样将Unit Size选择为G,Number of units输入800,表示800G大小,即该文件系统的扩充目标大小。这里,因为上述我们已经将逻辑卷oraflash的最大Lps,增加2400个Lps,2400Lps*128M/Lps=300G,所以我们的目标大小是800G。如下图所示:
修改之后,直接回车。发现最后扩充成功了。
如法炮制,通过smit chlv修改oradata逻辑卷的MAX LPs为6400个之后,然后,执行smit chjfs2选择修改/oradata文件系统,扩展到800G。
最终,修改之后,文件系统使用信息如下:
# df -g Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/hd4 1.00 0.78 23% 10542 6% / /dev/hd2 10.00 7.48 26% 52002 3% /usr /dev/hd9var 5.00 4.45 12% 8742 1% /var /dev/hd3 10.00 7.22 28% 729 1% /tmp /dev/hd1 0.50 0.49 2% 135 1% /home /dev/hd11admin 0.50 0.50 1% 5 1% /admin /proc - - - - - /proc /dev/hd10opt 0.50 0.23 55% 10267 16% /opt /dev/livedump 0.50 0.50 1% 4 1% /var/adm/ras/livedump /dev/oracle 100.00 80.71 20% 357030 2% /u01 /dev/oradata 800.00 435.70 46% 39 1% /oradata /dev/oraflash 800.00 358.54 56% 1187 1% /oraflash #
看到/oradata和/oraflash已从500G扩充到800G。同时,看到datavg的FREE PPS变少了,从之前的7589减少到2789,减少了7589-2789=4800个,正好是分别往oradata和oraflash上加的2400个:
# lsvg datavg VOLUME GROUP: datavg VG IDENTIFIER: 00f64a5100004c000000012d5e49cf72 VG STATE: active PP SIZE: 128 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 15590 (1995520 megabytes) MAX LVs: 256 FREE PPs: 2789 (356992 megabytes) LVs: 3 USED PPs: 12801 (1638528 megabytes) OPEN LVs: 3 QUORUM: 6 (Enabled) TOTAL PVs: 10 VG DESCRIPTORS: 10 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 10 AUTO ON: no MAX PPs per VG: 32768 MAX PVs: 1024 LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no HOT SPARE: no BB POLICY: relocatable PV RESTRICTION: none #
并且,oraflash和oradata的PPs都从4000增加到6400:
# lsvg -l datavg datavg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT oradata jfs2 6400 6400 5 open/syncd /oradata loglv01 jfs2log 1 1 1 open/syncd N/A oraflash jfs2 6400 6400 5 open/syncd /oraflash #
而此时,oraflash、oradata占用物理卷信息也改变了:
# lslv -l oradata oradata:/oradata PV COPIES IN BAND DISTRIBUTION hdisk2 1599:000:000 20% 320:320:319:320:320 hdisk3 1599:000:000 20% 320:320:319:320:320 hdisk4 1199:000:000 20% 240:240:239:240:240 hdisk11 1599:000:000 20% 320:320:319:320:320 hdisk5 404:000:000 78% 000:319:085:000:000 # lslv -l oraflash oraflash:/oraflash PV COPIES IN BAND DISTRIBUTION hdisk7 1599:000:000 20% 320:320:319:320:320 hdisk8 1599:000:000 20% 320:320:319:320:320 hdisk9 1599:000:000 20% 320:320:319:320:320 hdisk6 1599:000:000 20% 320:320:319:320:320 hdisk10 004:000:000 100% 000:004:000:000:000 #
最终,完成在IBM P750小机上在Oracle数据库正常运行的前提下,动态给Oracle添加存储。