Oracle 单实例部署
Oracle 单实例部署
适用版本:Oracle Database 19c 文档版本:v1.0 / 2026-07
1. 概述
单实例部署是最常见的 Oracle 部署方式[1]:
适用:
- 中小型业务
- 开发测试
- 单点应用
2. 部署规划
2.1 硬件
| 组件 | 推荐 |
|---|---|
| CPU | 4+ 核 |
| 内存 | 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. 最佳实践
- OL 8 + 预安装:简化
- 静默安装:自动化
- CDB 架构:12c+
- 归档模式:备份
- Flashback:快速恢复
- 自动启动:systemd
- RMAN 调度:保护
- EM Express:监控
- 参数调优:性能
- 文档化:维护
15. 参考资料
[1] Oracle Database Installation Guide 19c for Linux https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/