Oracle数据库Ubuntu上如何扩容
导读:Ubuntu上Oracle数据库扩容实操指南 一、先判断扩容类型 存储层扩容:底层磁盘、分区、LVM、ext4/xfs 文件系统或 iSCSI 容量不足,需要先在操作系统层面把容量“变大”。 数据库层扩容:数据文件所在表空间不足,需要在...
Ubuntu上Oracle数据库扩容实操指南
一、先判断扩容类型
- 存储层扩容:底层磁盘、分区、LVM、ext4/xfs 文件系统或 iSCSI 容量不足,需要先在操作系统层面把容量“变大”。
- 数据库层扩容:数据文件所在表空间不足,需要在 Oracle 内给表空间“加文件/扩文件/开自动扩展”。
- 典型现象:导入/写入时报 ORA-01654 或告警表空间使用率接近 100%。
二、操作系统层扩容步骤(Ubuntu/Linux)
- 场景A|虚拟机磁盘扩容
- 在虚拟化平台(如 VMware/VirtualBox/公有云)先扩容虚拟磁盘;2) Ubuntu 识别新容量后,用 fdisk/parted 调整分区;3) 若是 LVM:将新分区初始化为 PV → 扩 VG → 扩 LV;4) 扩文件系统:ext4 用 resize2fs,xfs 用 xfs_growfs;5) 用 df -h 验证。
- 场景B|新增磁盘或 iSCSI 扩容
- 新盘分区并创建 PV → 加入 VG → 扩 LV;2) 扩文件系统(resize2fs/xfs_growfs);3) 若是 iSCSI:安装工具、发现目标、登录并持久化,再纳入 LVM/文件系统;4) 验证。
- 场景C|裸设备 raw(较少见)
- 扩后端 LV;2) 重新绑定 raw 设备;3) 调整 Oracle 数据文件指向或新增数据文件到该 raw 设备。
- 关键命令示例(LVM 通用)
- 识别磁盘:lsblk、fdisk -l
- 扩 LV:lvextend -L +10G /dev/vg01/lv_oradata
- 扩文件系统:resize2fs /dev/vg01/lv_oradata(ext4)或 xfs_growfs /mount/oradata(xfs)
- iSCSI:iscsiadm -m discovery -t st -p :;iscsiadm -m node -T -l
- 以上流程与命令要点可参考 Linux 磁盘与 LVM 扩容、iSCSI 接入及 raw 设备扩容实践。
三、Oracle层扩容步骤(表空间/数据文件)
-
- 定位问题
- 查表空间与数据文件:
- SELECT tablespace_name, file_name, bytes/1024/1024 MB FROM dba_data_files ORDER BY tablespace_name;
- 查使用率:
- SELECT a.tablespace_name, a.bytes/1024/1024 “total(MB)”, (a.bytes-b.bytes)/1024/1024 “used(MB)”, b.bytes/1024/1024 “free(MB)”, ROUND(((a.bytes-b.bytes)/a.bytes)*100,2) “used%” FROM (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name=b.tablespace_name ORDER BY ((a.bytes-b.bytes)/a.bytes) DESC;
- 若报错 ORA-01654,说明对象在对应表空间无法扩展。
-
- 三种常用扩容方式(SQL*Plus,sysdba)
- 给现有数据文件扩容(resize):
- ALTER DATABASE DATAFILE ‘/u02/app/oracle/oradata/orcl/tbs301.dbf’ RESIZE 20M;
- 给表空间新增数据文件:
- ALTER TABLESPACE tbs3 ADD DATAFILE ‘/u02/app/oracle/oradata/orcl/tbs302.dbf’ SIZE 10M;
- 开启数据文件自动扩展(谨慎设置上限):
- ALTER DATABASE DATAFILE ‘/u02/app/oracle/oradata/orcl/tbs302.dbf’ AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;
-
- 验证
- 再次查询 dba_data_files 与表空间使用率,确认已扩容到位。
- 以上 SQL 与流程为 Oracle 在 Linux 环境下的通用做法,适用于 Ubuntu。
四、注意事项与回退建议
- 变更前务必做全量备份(RMAN/导出),并在维护窗口执行;变更中保持 Oracle 与监听可用或按停机计划执行。
- 文件系统类型不同,扩容命令不同:ext4 用 resize2fs,xfs 用 xfs_growfs;扩 LV 后再扩文件系统,顺序不可颠倒。
- 自动扩展要设置合理上限(如 MAXSIZE),避免失控增长影响磁盘与性能。
- 裸设备场景需确保 raw 设备权限与绑定正确,再在 Oracle 中新增或调整数据文件。
- 若扩容失败,按备份与变更记录回滚(如移除新增数据文件、恢复 resize 前的大小),并复核告警与日志。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle数据库Ubuntu上如何扩容
本文地址: https://pptw.com/jishu/762419.html
