如何调整Exadata DB节点文件系统大小

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

以上

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号