温馨提示×

ubuntu oracle怎样调参数

小樊
59
2026-10-04 19:54:57
栏目: 云计算

在 Ubuntu + Oracle 数据库 环境下,“调参数”通常分为 操作系统参数(内核/资源限制) 和 Oracle 数据库参数(SGA/PGA/进程数等) 两大类。下面按常见场景给你一个实用清单。


一、Ubuntu 系统层参数调整(Oracle 运行前提)

1️⃣ 修改系统内核参数(/etc/sysctl.conf)

Oracle 依赖共享内存、信号量等。

sudo vi /etc/sysctl.conf

常见参数(示例,按内存调整):

kernel.shmmax = 4294967296        # 单段共享内存最大(4G)
kernel.shmall = 1048576           # 共享内存总页数
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

生效:

sudo sysctl -p

2️⃣ 修改用户资源限制(/etc/security/limits.conf)

Oracle 用户(如 oracle)需要足够权限。

sudo vi /etc/security/limits.conf
oracle   soft   nofile   1024
oracle   hard   nofile   65536
oracle   soft   nproc    2047
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768

⚠ 需要重新登录 oracle 用户生效。


3️⃣ 禁用或调整 swap(视内存)

free -h
swapon -s

大内存服务器建议:

sudo swapoff -a

或修改 /etc/fstab 注释 swap。


二、Oracle 数据库参数调整(重点)

1️⃣ 登录 Oracle

su - oracle
sqlplus / as sysdba

2️⃣ 查看当前参数

SHOW PARAMETER sga;
SHOW PARAMETER pga;
SHOW PARAMETER processes;
SHOW PARAMETER sessions;

3️⃣ 调整内存参数(SGA / PGA)

自动内存管理(推荐)

ALTER SYSTEM SET MEMORY_MAX_TARGET=4G SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_TARGET=4G SCOPE=BOTH;

手动 SGA / PGA(更可控)

ALTER SYSTEM SET SGA_TARGET=3G SCOPE=BOTH;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G SCOPE=BOTH;

⚠ 修改后通常需要重启:

SHUTDOWN IMMEDIATE;
STARTUP;

4️⃣ 调整连接数

ALTER SYSTEM SET PROCESSES=500 SCOPE=SPFILE;
ALTER SYSTEM SET SESSIONS=600 SCOPE=SPFILE;

重启生效。


5️⃣ 调整 undo / redo

SHOW PARAMETER undo;
ALTER SYSTEM SET UNDO_RETENTION=1800 SCOPE=BOTH;

Redo log 大小(需重建 redo log):

SELECT GROUP#, BYTES FROM V$LOG;

三、常见性能调优参数(示例)

ALTER SYSTEM SET DB_CACHE_SIZE=2G;
ALTER SYSTEM SET SHARED_POOL_SIZE=1G;
ALTER SYSTEM SET OPEN_CURSORS=1000;
ALTER SYSTEM SET LOG_BUFFER=16M;

四、验证与监控

SELECT * FROM V$SGA;
SELECT * FROM V$PGASTAT;
SELECT COUNT(*) FROM V$SESSION;

系统层:

top
free -h
ipcs -l

五、如果你告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • Ubuntu 版本
  • 内存大小
  • 用途(OLTP / 数据仓库 / 测试)

我可以 直接给你一套可复制的参数配置 ✅

0 踩