Oracle 单实例部署

Oracle 单实例部署

适用版本:Oracle Database 19c 文档版本:v1.0 / 2026-07


1. 概述

单实例部署是最常见的 Oracle 部署方式[1]:

适用

  • 中小型业务
  • 开发测试
  • 单点应用

2. 部署规划

2.1 硬件

组件推荐
CPU4+ 核
内存16GB+
磁盘100GB+ SSD

2.2 软件

  • Oracle Linux 8
  • Oracle Database 19c

3. 系统准备

3.1 OS 配置

dnf install -y oracle-database-preinstall-19c

详细见:Oracle Linux 安装与配置

3.2 内核参数

# /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 16777216
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

sysctl -p
******

### 3.3 用户

```bash
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle

3.4 目录

mkdir -p ******
mkdir -p ******
mkdir -p ******
chown -R oracle:oinstall /u01
chmod -R 775 /u01

3.5 环境变量

# oracle .bash_profile
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

4. 软件安装

4.1 解压

su - oracle
cd $ORACLE_HOME
unzip /tmp/LINUX.X64_193000_db_home.zip

4.2 响应文件

# db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper

4.3 静默安装

cd $ORACLE_HOME
./runInstaller -silent -responseFile /tmp/db_install.rsp

4.4 root 脚本

su -
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

详细见:Oracle 19c 静默安装


5. 监听配置

5.1 静默创建

netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

5.2 启动

lsnrctl start
lsnrctl status

详细见:Oracle 网络配置与监听器


6. 创建数据库

6.1 静默创建

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType FS \
  -datafileDestination /u01/app/oracle/oradata \
  -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \
  -recoveryAreaSize 10240 \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -listeners LISTENER \
  -totalMemory 4096 \
  -emConfiguration NONE

详细见:Oracle 数据库创建 DBCA

6.2 验证

sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
SQL> SELECT name, open_mode FROM v$pdbs;

7. 归档模式

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

ARCHIVE LOG LIST;

8. Flashback

ALTER DATABASE FLASHBACK ON;
ALTER SYSTEM SET db_flashback_retention_target = 1440;
ALTER SYSTEM SET db_recovery_file_dest_size = 100G;

详细见:Oracle 闪回技术


9. 自动启动

9.1 /etc/oratab

orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y

9.2 启动脚本

# /etc/systemd/system/oracle.service
[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.0.0/dbhome_1
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.0.0/dbhome_1
Restart=always

[Install]
WantedBy=multi-user.target

9.3 启用

systemctl enable oracle
systemctl start oracle

10. 备份配置

10.1 RMAN

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%F';
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

10.2 调度

# crontab
0 2 * * * /u01/scripts/rman_backup.sh

详细见:Oracle RMAN 备份恢复


11. 监控

11.1 EM Express

SQL> SELECT dbms_xdb_config.gethttpsport FROM dual;
SQL> EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);

访问:https://oradb:5500/em

11.2 告警

SELECT * FROM dba_outstanding_alerts;
SELECT * FROM dba_alert_history ORDER BY creation_time DESC;

详细见:Oracle 数据库健康检查


12. 参数调优

12.1 内存

ALTER SYSTEM SET sga_target = 8G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target = 4G;
ALTER SYSTEM SET pga_aggregate_limit = 8G;

12.2 进程

ALTER SYSTEM SET processes = 500 SCOPE=SPFILE;
ALTER SYSTEM SET open_cursors = 1000;

详细见:Oracle 数据库参数调优


13. 常见坑与排错

13.1 安装失败

# 1. 依赖
dnf install -y oracle-database-preinstall-19c

# 2. 日志
$ORACLE_BASE/cfgtoollogs/

13.2 启动失败

# 1. /etc/oratab
# 2. 权限
# 3. 监听

13.3 内存不足

# 1. 物理内存
# 2. Swap
# 3. SGA 调整

14. 最佳实践

  1. OL 8 + 预安装:简化
  2. 静默安装:自动化
  3. CDB 架构:12c+
  4. 归档模式:备份
  5. Flashback:快速恢复
  6. 自动启动:systemd
  7. RMAN 调度:保护
  8. EM Express:监控
  9. 参数调优:性能
  10. 文档化:维护

15. 参考资料

[1] Oracle Database Installation Guide 19c for Linux https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/