首页主机资讯Oracle数据库Ubuntu上如何扩容

Oracle数据库Ubuntu上如何扩容

时间2025-12-03 15:25:04发布访客分类主机资讯浏览578
导读:Ubuntu上Oracle数据库扩容实操指南 一、先判断扩容类型 存储层扩容:底层磁盘、分区、LVM、ext4/xfs 文件系统或 iSCSI 容量不足,需要先在操作系统层面把容量“变大”。 数据库层扩容:数据文件所在表空间不足,需要在...

Ubuntu上Oracle数据库扩容实操指南

一、先判断扩容类型

  • 存储层扩容:底层磁盘、分区、LVMext4/xfs 文件系统或 iSCSI 容量不足,需要先在操作系统层面把容量“变大”。
  • 数据库层扩容:数据文件所在表空间不足,需要在 Oracle 内给表空间“加文件/扩文件/开自动扩展”。
  • 典型现象:导入/写入时报 ORA-01654 或告警表空间使用率接近 100%

二、操作系统层扩容步骤(Ubuntu/Linux)

  • 场景A|虚拟机磁盘扩容
    1. 在虚拟化平台(如 VMware/VirtualBox/公有云)先扩容虚拟磁盘;2) Ubuntu 识别新容量后,用 fdisk/parted 调整分区;3) 若是 LVM:将新分区初始化为 PV → 扩 VG → 扩 LV;4) 扩文件系统:ext4 用 resize2fs,xfs 用 xfs_growfs;5) 用 df -h 验证。
  • 场景B|新增磁盘或 iSCSI 扩容
    1. 新盘分区并创建 PV → 加入 VG → 扩 LV;2) 扩文件系统(resize2fs/xfs_growfs);3) 若是 iSCSI:安装工具、发现目标、登录并持久化,再纳入 LVM/文件系统;4) 验证。
  • 场景C|裸设备 raw(较少见)
    1. 扩后端 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层扩容步骤(表空间/数据文件)

    1. 定位问题
    • 查表空间与数据文件:
      • 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,说明对象在对应表空间无法扩展。
    1. 三种常用扩容方式(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;
    1. 验证
    • 再次查询 dba_data_files 与表空间使用率,确认已扩容到位。
  • 以上 SQL 与流程为 Oracle 在 Linux 环境下的通用做法,适用于 Ubuntu。

四、注意事项与回退建议

  • 变更前务必做全量备份(RMAN/导出),并在维护窗口执行;变更中保持 Oracle 与监听可用或按停机计划执行。
  • 文件系统类型不同,扩容命令不同:ext4 用 resize2fsxfs 用 xfs_growfs;扩 LV 后再扩文件系统,顺序不可颠倒。
  • 自动扩展要设置合理上限(如 MAXSIZE),避免失控增长影响磁盘与性能。
  • 裸设备场景需确保 raw 设备权限与绑定正确,再在 Oracle 中新增或调整数据文件。
  • 若扩容失败,按备份与变更记录回滚(如移除新增数据文件、恢复 resize 前的大小),并复核告警与日志。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle数据库Ubuntu上如何扩容
本文地址: https://pptw.com/jishu/762419.html
Ubuntu Oracle如何进行数据恢复 如何提升Ubuntu Oracle的稳定性

游客 回复需填写必要信息