一、背景

随着业务的不断成熟,数据库积累的数据也越来越多了。前些天发现服务器的磁盘将要满了。因此向虚拟化管理员申请增加磁盘空间。

由于这个系统是建立在威睿的vSphere平台上的,因此虚拟化管理员只简单地通过 VMware vSphere Client 扩大了磁盘空间,剩余的工作就又是我的了。

二、环境

系统环境是RHEL6.3。为了保障扩展性,实施初期根目录 / 就采用了LVM。此外,为了尽量降低不可用时间,在扩大虚拟硬盘空间时系统始终处于运行状态。

三、过程

当虚拟化管理员完成对磁盘的扩展后,我发现系统本身并没有立即识别到硬盘大小的变化。我执行了几次partprobe也没有作用。因此首先重启了服务器。

重启完成后,通过fdisk -l发现磁盘已经被识别为新的容量。

此时,开始按照LVM的方式调整磁盘。

由于新增加的硬盘在系统中被识别为未分区的空间,首先通过fdisk进行分区

fdisk /dev/sda

在其提示下依次是n(创建新分区),选择分区类型、序号,输入起始位置,输入大小。

完成后按w退出并保存对分区的修改。这时候系统还不能够识别新添加的分区。要执行

partx -a /dev/sda

使分区生效。如果报错说添加失败,则建议重启系统。

将新添加的分区创建为物理卷(PV)

pvcreate /dev/sda5

然后将该物理卷增加到卷组(VG)中

vgextend vg_rhel /dev/sda5

这时候可以使用vgdisplay查看卷组状态。

现在我们可以调整逻辑卷大小

lvextend -L+20G /dev/vg_rhel/lv_root

完成之后,文件系统还不能够识别新的大小,需要调整文件大小

resize2fs /dev/vg_rhel/lv_root

由于线上使用Oracle数据库,完成以上步骤后,需要启动Oracle

sqlplus / as sysdba

在Oracle提示符下执行startup

提示成功后,退出sqlplus,启动监听服务

lsnrctl start

到此全部过程结束。