在CentOS系统中扩展Oracle数据库存储,需根据存储架构(本地LVM、ASM)选择对应步骤。以下是具体方法及注意事项:
若Oracle数据库部署在本地LVM分区(如/home/oracle),可通过添加物理磁盘→创建物理卷→扩展卷组→扩展逻辑卷→调整文件系统的流程实现扩容。
使用fdisk或parted工具对新磁盘(如/dev/sdb)进行分区,设置分区类型为Linux LVM(Hex代码8e):
fdisk /dev/sdb
# 依次输入:n(新建分区)→ p(主分区)→ 默认分区号 → +5G(分区大小)→ t(修改分区类型)→ 8e → w(保存并退出)
同步磁盘分区表:
partprobe /dev/sdb
将新分区初始化为物理卷:
pvcreate /dev/sdb1
将物理卷添加到Oracle数据库所在的卷组(如centos-home):
vgextend centos-home /dev/sdb1
扩展逻辑卷大小(如增加5G):
lvextend -L +5G /dev/centos/home
根据文件系统类型选择对应命令:
xfs_growfs /dev/mapper/centos-home
resize2fs /dev/mapper/centos-home
/home/oracle)挂载在LVM上,调整文件系统后无需重新挂载;/etc/fstab中未注释挂载选项,避免重启失败。若Oracle使用ASM(Automatic Storage Management)管理存储,可通过添加磁盘→在线扫盘→创建ASM磁盘→添加至磁盘组→自动Rebalance的流程扩容。
在存储设备上划分新磁盘(如/dev/sdh、/dev/sdi),并通过多路径绑定(若有)生成可用路径。
在所有节点上执行以下命令,识别新增磁盘:
for host in /sys/class/scsi_host/host*; do echo "- - -" > $host/scan; done
oracleasm createdisk ASM_DISK1 /dev/sdh1
oracleasm createdisk ASM_DISK2 /dev/sdi1
/dev/sdh1):oracleasm createdisk ASM_DISK1 /dev/sdh1
oracleasm scandisks
oracleasm listdisks # 确认新磁盘(如ASM_DISK1、ASM_DISK2)已列出
登录Grid用户,使用ALTER DISKGROUP命令将新磁盘添加至目标磁盘组(如DATADG),并指定Rebalance power(1-11,数值越大速度越快):
alter diskgroup DATADG add disk 'ASM_DISK1', 'ASM_DISK2' rebalance power 5;
select group_number, name, total_mb, free_mb, usable_file_mb from v$asm_diskgroup where name = 'DATADG';
或使用ASM命令:
asmcmd lsdg
v$asm_diskgroup)、集群状态(crsctl check cluster);NORMAL冗余模式,需确保新增磁盘数量满足冗余要求(如2路镜像需至少2块新磁盘)。power limit参数控制速度。