温馨提示×

ubuntu oracle怎么扩容

小樊
44
2026-09-23 02:27:10
栏目: 云计算

在 Ubuntu + Oracle(数据库) 环境下“扩容”,通常分为 操作系统层扩容 和 Oracle 数据库层扩容 两部分。下面按常见场景给你一个完整思路。


一、确认现在“哪里满了”

先明确是 磁盘满了 还是 Oracle 表空间满了。

df -h
SELECT tablespace_name, bytes/1024/1024 MB, maxbytes/1024/1024 MAX_MB
FROM dba_data_files;

二、Ubuntu 磁盘扩容(OS 层)

场景 1:虚拟机 / 云服务器(最常见)

1. 在云平台或虚拟机管理端

  • 扩展虚拟磁盘(如 100G → 200G)

2. Ubuntu 中识别新空间

lsblk

如果看到磁盘变大了,但分区没变:

3. 扩展分区(以 /dev/sda 为例)

sudo growpart /dev/sda 1

4. 扩展文件系统

  • ext4:
sudo resize2fs /dev/sda1
  • xfs:
sudo xfs_growfs /

场景 2:LVM 扩容(推荐生产环境)

pvcreate /dev/sdb
vgextend ubuntu-vg /dev/sdb
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv

三、Oracle 数据库扩容(DB 层)

场景 1:表空间不足(最常见)

1. 查看表空间使用率

SELECT
  tablespace_name,
  ROUND(SUM(bytes)/1024/1024) AS size_mb
FROM dba_data_files
GROUP BY tablespace_name;

2. 增加数据文件

ALTER TABLESPACE USERS
ADD DATAFILE '/u01/oradata/ORCL/users02.dbf'
SIZE 10G
AUTOEXTEND ON
NEXT 1G
MAXSIZE 30G;

3. 或扩展已有数据文件

ALTER DATABASE DATAFILE '/u01/oradata/ORCL/users01.dbf'
RESIZE 20G;

场景 2:ASM 环境(企业级)

ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK2';

四、常见坑点

✅ Oracle 数据文件必须放在 已扩容的文件系统
✅ 不要直接删 .dbf 文件
✅ 云服务器扩容后必须 growpart
✅ 表空间满 ≠ 磁盘满


五、我可以更精确地帮你

你可以告诉我:

  1. Ubuntu 版本(20.04 / 22.04?)
  2. Oracle 版本(11g / 19c?)
  3. 是 磁盘满了 还是 表空间满了
  4. 是否是 虚拟机 / 云服务器 / 物理机

我可以直接给你 一步步命令。

0 踩