配合LVM逻辑卷,xfs 文件系统可以做到平滑扩容。
案例如下:
接到告警通知, Oracle DG 库磁盘满了
# df -hlFilesystem Size Used Avail Use% Mounted ondevtmpfs 32G 0 32G 0% /dev/dev/mapper/centos-root 68G 20G 48G 29%/dev/mapper/vgora-lvora 100G 35G 66G 35% u01/dev/mapper/vgora-lvdata 10T 10T 665M 100% oradata
检查LVM的物理卷,查看是否还有空闲
# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- <99.51g 0vgora 6 3 0 wz--n- <12.00t 1.12t# pvsPV VG Fmt Attr PSize PFreedev/vda2 centos lvm2 a-- <99.51g 0dev/vdb vgora lvm2 a-- <2.00t 0dev/vdc vgora lvm2 a-- <2.00t 0dev/vdd vgora lvm2 a-- <2.00t 0dev/vde vgora lvm2 a-- <2.00t 0dev/vdf vgora lvm2 a-- <2.00t 0dev/vdg vgora lvm2 a-- <2.00t 1.12t
检查发现卷组vgora下的物理卷还有1.12t的未使用空间,再次确认逻辑卷信息
# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <67.51gswap centos -wi-ao---- 32.00glvdata vgora -wi-ao---- 10.00tlvfra vgora -wi-ao---- 800.00glvora vgora -wi-ao---- 100.00g# df -hl | grep lvdata/dev/mapper/vgora-lvdata 10T 10T 665M 100% oradata
对逻辑卷 lvdata 进行扩容
# lvextend -l +100%FREE dev/mapper/vgora-lvdataSize of logical volume vgora/lvdata changed from 10.00 TiB (2621440 extents) to 11.12 TiB (2915322 extents).Logical volume vgora/lvdata successfully resized.
确认挂载点的文件系统类型为 xfs
# mount| grep lvora/dev/mapper/vgora-lvora on /u01 type xfs (rw,relatime,attr2,inode64,noquota)
对 xfs 文件系统进行扩容
# xfs_growfs dev/mapper/vgora-lvdatameta-data=/dev/mapper/vgora-lvdata isize=512 agcount=41, agsize=65536000 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=2684354560, imaxpct=25= sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=128000, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 2684354560 to 2985289728
检查扩容后的效果
# df -hlFilesystem Size Used Avail Use% Mounted ondevtmpfs 32G 0 32G 0% /dev/dev/mapper/centos-root 68G 20G 48G 29% //dev/mapper/vgora-lvora 100G 35G 66G 35% /u01/dev/mapper/vgora-lvdata 12T 10T 1.2T 90% /oradata
oradata 目录已经空出来1.2T可用空间。
以上情况是在卷组有未分配空间情况下的扩容,考虑到数据库的空间增长过快,需要提前做好准备,查询主库的数据规模,以及数据文件总的大小
SELECT SUM(t.bytes) / 1024 / 1024 / 1024 gbFROM dba_segments tUNIONSELECT SUM(t.bytes) / 1024 / 1024 / 1024 gbFROM dba_data_files t;
主库数据文件大小已超10T,备库需要增加磁盘对分区进行扩容,通过pvs检查物理卷使用情况,再三确认新增加的磁盘没有挂载、没有加入到其它逻辑卷、没有被私自占用,对新磁盘执行物理卷初始化:
# pvsPV VG Fmt Attr PSize PFree/dev/vda2 centos lvm2 a-- <99.51g 0/dev/vdb vgora lvm2 a-- <2.00t 0/dev/vdc vgora lvm2 a-- <2.00t 0/dev/vdd vgora lvm2 a-- <2.00t 0/dev/vde vgora lvm2 a-- <2.00t 0/dev/vdf vgora lvm2 a-- <2.00t 0/dev/vdg vgora lvm2 a-- <2.00t 0# pvcreate /dev/vdhPhysical volume "/dev/vdh" successfully created.# pvsPV VG Fmt Attr PSize PFree/dev/vda2 centos lvm2 a-- <99.51g 0/dev/vdb vgora lvm2 a-- <2.00t 0/dev/vdc vgora lvm2 a-- <2.00t 0/dev/vdd vgora lvm2 a-- <2.00t 0/dev/vde vgora lvm2 a-- <2.00t 0/dev/vdf vgora lvm2 a-- <2.00t 0/dev/vdg vgora lvm2 a-- <2.00t 0/dev/vdh lvm2 --- 2.00t 2.00t
对卷组进行扩容
# vgextend vgora /dev/vdhVolume group "vgora" successfully extended# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- <99.51g 0vgora 7 3 0 wz--n- <14.00t <2.00t
对逻辑卷进行扩容
# lvextend -L +1t /dev/mapper/vgora-lvdataSize of logical volume vgora/lvdata changed from 11.12 TiB (2915322 extents) to 12.12 TiB (3177466 extents).Logical volume vgora/lvdata successfully resized.
这次不全部分配,先分1T空间给逻辑卷。
最后再次对 xfs 文件系统进行扩容:
# xfs_growfs /dev/mapper/vgora-lvdatameta-data=/dev/mapper/vgora-lvdata isize=512 agcount=46, agsize=65536000 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=2985289728, imaxpct=25= sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=128000, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 2985289728 to 3253725184# df -hl| grep oradata/dev/mapper/vgora-lvdata 13T 10T 2.2T 83% /oradata
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




