温馨提示×

linux oracle配置怎么升级

小樊
35
2026-10-13 06:52:49
栏目: 云计算

下面按常见场景给你讲 Linux 下 Oracle 数据库的配置与版本升级做法,先区分你要的是哪一类:


一、先明确:你要的是哪种“升级”

  1. Oracle 软件版本升级(如 11g → 19c)
  2. Oracle 配置参数调整(如 SGA、字符集、监听)
  3. Linux 系统层面配置优化(内核参数、用户限制)

下面分别说明。


二、Oracle 软件版本升级(重点)

1. 升级前准备

  • 查看当前版本
sqlplus / as sysdba
SELECT * FROM v$version;
  • 备份(必须)
rman target /
BACKUP DATABASE PLUS ARCHIVELOG;
  • 检查兼容性
SELECT name, value FROM v$parameter WHERE name='compatible';
  • 安装新 Oracle 软件(不覆盖旧库)
./runInstaller

选择 “Upgrade an existing database”


2. 使用 DBUA 升级(推荐)

dbua

按向导执行:

  • 检测
  • 预升级检查
  • 升级数据字典

3. 手动升级(DBA 常用)

@?/rdbms/admin/catupgrd.sql
@?/rdbms/admin/utlrp.sql

4. 升级后检查

SELECT status FROM dba_registry;
SELECT * FROM v$version;

三、Oracle 配置调整(常见)

1. 内存参数

ALTER SYSTEM SET SGA_TARGET=4G SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=2G SCOPE=SPFILE;

2. 字符集(谨慎)

SELECT parameter, value FROM nls_database_parameters;

3. 监听配置

vi $ORACLE_HOME/network/admin/listener.ora
lsnrctl reload

四、Linux 系统配置优化(Oracle 必改)

1. 内核参数

vi /etc/sysctl.conf

示例:

fs.aio-max-nr = 1048576
kernel.shmmax = 4294967295
kernel.shmall = 2097152

生效:

sysctl -p

2. 用户限制

vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536

3. 关闭透明大页(重要)

echo never > /sys/kernel/mm/transparent_hugepage/enabled

五、常见错误

  • ❌ 直接覆盖 ORACLE_HOME
  • ❌ 不备份就升级
  • ❌ compatible 参数改错

六、我可以更具体

你可以告诉我:

  1. Oracle 当前版本 + 目标版本
  2. Linux 发行版(RHEL / CentOS / Oracle Linux)
  3. 是单机还是 RAC

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

0 踩