一、背景
随着业务的不断成熟,数据库积累的数据也越来越多了。前些天发现服务器的磁盘将要满了。因此向虚拟化管理员申请增加磁盘空间。
由于这个系统是建立在威睿的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
到此全部过程结束。