http://www.dbaleet.org/how_to_resize_exadat_filesystem_on_db_node/
此文整理自MOS文档How to Expand Exadata Compute Node File Systems (Doc ID 1357457.1)
虽然是Oracle的一体机,但是操作系统是Oracle Linux 5, 所以跟普通Linux文件调整文件系统大小的方法没有太多不一样,nothing special。
早于11.2.1.3.1版本的DB节点没有使用LVM,以下针对使用LVM的文件系统进行调整。
Exadata DB节点使用了一个大小为600G的VG,大小为什么是600G?,请参看上一篇文章:Exadata X2-2 db节点系统盘的RAID是如何配置的?
首先来看一下根分区的结构:
#df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VGExaDb-LVDbSys1 30963708 21867152 7523692 75% /
推断根分区是建立在LVDDbSys1之上的, 可以用lvscan进行验证:
#lvm lvscan ACTIVE '/dev/VGExaDb/LVDbSys1' [30.00 GB] inherit ACTIVE '/dev/VGExaDb/LVDbSwap1' [24.00 GB] inherit ACTIVE '/dev/VGExaDb/LVDbOra1' [100.00 GB] inherit
从名字上可知VGExaDB这个VG上一共建立有三个LV:用于系统本身LVDbSys1, 用于swap分区的LVDbSwap1, 用于Oracle二进制文件的LVDbOra1。以下通过lvdisplay来查看LVDbSys1是否是位于VGExaDb:
#lvm lvdisplay /dev/VGExaDb/LVDbSys1 --- Logical volume --- LV Name /dev/VGExaDb/LVDbSys1 VG Name VGExaDb LV UUID GScpD7-lKa8-gLg9-oBo2-uWaM-ZZ4W-Keazih LV Write Access read/write LV Status available # open 1 LV Size 30.00 GB Current LE 7680 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
确认VGExaDb这个VG是否有空间:
#lvm vgdisplay VGExaDb -s "VGExaDb" 556.80 GB [154.00 GB used / 402.80 GB free]
好了,需要收集的信息都已经收集完毕,下面就开始正式对根文件系统/和Oracle二进制文件分区/u01进行resize(以下是扩容,其它调整类似)
#/u01/app/11.2.0.3/grid/bin/crsctl stop crs
#/opt/oracle.oswatcher/osw/stopOSW.sh
#su - oracle $/u01/app/oracle/product/11.2.0.3/dbhome_1/bin/emctl stop agent
2) 使用root用户umount /u01文件系统:
#umount /u01
如果提示忙,则是当前分区还有进程在运行。使用fuser /u01查看其进程的信息,然后关闭这些进程,然后重试。
3) 对LVDbOra1进行检查:
#fsck -f /dev/VGExaDb/LVDbOra1
4) 使用那个lvextend对LVDbOra1这个VG进行扩展:
#lvm lvextend -L+sizeG --verbose /dev/VGExaDb/LVDbOra1
将实际需要增加的值替换以上size,例如对这个lv扩展10G空间对应的命令为:lvm lvextend -L+10G –verbose /dev/VGExaDb/LVDbOra1。
#e2fsck -f /dev/VGExaDb/LVDbOra1
6) 对/u01文件系统进行扩展:
#resize2fs -p /dev/VGExaDb/LVDbOra1
7) 重新mount /u01文件系统:
#mount -t ext3 /dev/VGExaDb/LVDbOra1 /u01
8) 确认调整已经生效:
#df -h /u01
9) 启动集群, osw, emagent等:
启动集群:
#/u01/app/11.2.0.3/grid/bin/crsctl start crs
启动osw:
#/opt/oracle.oswatcher/osw/startOSW.sh
启动em agent:
#su - oracle $/u01/app/oracle/product/11.2.0.3/dbhome_1/bin/emctl stop agent
(一)对/根文件系统进行调整
众所周知,/跟文件系统无法在线进行调整。 需要先启动到诊断模式(diagnostic mode)
1) 系统启动到诊断模式:
将db节点的/opt/oracle.SupportTools/diagnostics.iso文件拷贝到本地,或者其它任何使用ilom的机器上。打开浏览器输入这台主机的ilom地址,使用root用户登录,找到Remote Control标签->Redirection标签->点击Launch Remote Console, 然后在 Sun ILOM Remote Console中选择Devices目录,选择 CD-ROM Image,在对话框中选择本地的diagnostics.iso,然后选择Open。然后在Remote Control标签页中选择Host Control, 选择CDROM,然后点击保存。这样这台主机就只有下一次启动会从这个虚拟光驱启动。使用shutdown -r -y now重启操作系统,自动进入诊断模式。
2) 在对话选项中输入e表示进入交互的诊断模式shell:
Choose from following by typing letter in '()': (e)nter interactive diagnostics shell. Must use credentials from Oracle support to login (reboot or power cycle to exit the shell), (r)estore system from NFS backup archive, Select:e
3) 在提示用户名地方输入用户名root, 其对应的密码是sos1exadata:
localhost login: root Password: ********* -sh-3.1#
4) 将resizefs二进制命令,拷贝到/sbin下:
# cp /mnt/cell/sbin/resize2fs /sbin
5) 然后umount /mnt/cell文件系统:
#cd / #umount /mnt/cell
6) 查看LV的名称:
#lvm lvscan ACTIVE '/dev/VGExaDb/LVDbSys1' [30.00 GB] inherit ACTIVE '/dev/VGExaDb/LVDbSwap1' [24.00 GB] inherit ACTIVE '/dev/VGExaDb/LVDbOra1' [100.00 GB] inherit
7) 使用lvextend对/dev/VGExaDb/LVDbSys1进行扩展:
#lvm lvextend -L+sizeG --verbose /dev/VGExaDb/LVDbSys1
将实际需要增加的值替换以上size,例如对这个lv扩展10G空间对应的命令为:
lvm lvextend -L+10G –verbose /dev/VGExaDb/LVDbSys1
8) 对/文件系统进行检查:
# e2fsck -f /dev/VGExaDb/LVDbSys1
9) 对/文件系统大小进行调整:
#resize2fs -p /dev/VGExaDb/LVDbSys1
10) 重启操作系统:
#reboot
11) 确认修改已经生效:
#df -h /u01
以上
Comment