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文件系统进行调整
1) 停止这个节点的集群软件,emagent, OSW, 以及其它工具例如ogg等。
停用crs:
#/u01/app/11.2.0.3/grid/bin/crsctl stop crs
停用osw:
#/opt/oracle.oswatcher/osw/stopOSW.sh
停用em agent:
#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。
5) 检查/u01文件系统:
#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
以上