Oracle 21c Enterprise Edition 部署文档(CentOS 7.9)

Oracle 21c Enterprise Edition 部署文档(CentOS 7.9)

一、部署前必读

要求项 最低配置 推荐配置 本次使用
操作系统 CentOS 7.6+ CentOS 7.9 CentOS 7.9
内存 4 GB 8 GB+ 7.6 GB
硬盘剩余空间 50 GB 100 GB+ 437 GB
Oracle 安装包 - - LINUX.X64_213000_db_home.zip (2.9 GB)
root 密码 - - admin

⚠️ 重要提醒

  • 只能 CentOS 7.x,CentOS 8 / Rocky Linux / Ubuntu 都不行
  • 安装前确保服务器能连外网(yum 需要下载依赖包)
  • 本教程不用任何图形界面,全程命令行,复制粘贴即可
  • 命令前标了 [root@localhost ~]# 的用 root 执行,标了 [oracle@localhost ~]$ 的用 oracle 执行

二、部署后数据库信息

项目
主机 IP 你服务器的 IP(本文以 192.168.9.62 为例)
监听端口 1521
数据库服务名 orcl
数据库 SID orcl
ORACLE_HOME /opt/oracle/product/21c/dbhome_1
ORACLE_BASE /opt/oracle
字符集 ZHS16GBK
归档目录 /oracle/archive_log/

账户密码表

用途 用户名 密码
操作系统登录 oracle Oracle123!
数据库超级管理员 SYS Admin123!
数据库管理员 SYSTEM Admin123!

我用夸克网盘给你分享了「LINUX.X64_213000_db_home.zip」
链接:https://pan.quark.cn/s/eeefd54762a7

三、开始部署

步骤1:确认系统环境

用 root 用户登录服务器,依次执行:

# 1.1 确认是 CentOS 7
[root@localhost ~]# cat /etc/os-release | grep "CentOS Linux 7"
# 应该看到: CentOS Linux 7 (Core)

# 1.2 确认内存(至少 4 GB)
[root@localhost ~]# free -h | grep Mem
#              total        used        free      shared  buff/cache   available
# Mem:           xxxG                      ← 看这个 total 列

# 1.3 确认磁盘空间(至少 50 GB)
[root@localhost ~]# df -h /
# 看 "可用" 列

步骤2:确认安装包

[root@localhost ~]# ls -lh /root/LINUX.X64_213000_db_home.zip
# 应该看到文件,大小约 2.9G

# 如果没有,请先上传安装包到 /root/

步骤3:安装依赖包

[root@localhost ~]# yum install -y gcc gcc-c++ libaio-devel unzip ksh sysstat libnsl

看到 "完毕!" 表示成功。过程约 2-5 分钟。

步骤4:创建用户和目录

Oracle 需要专用的操作系统用户和组来运行,不能直接用 root。

# 4.1 创建 oracle 用户组
[root@localhost ~]# groupadd -f oinstall
[root@localhost ~]# groupadd -f dba
[root@localhost ~]# groupadd -f oper

# 4.2 创建 oracle 用户
[root@localhost ~]# useradd -g oinstall -G dba,oper -s /bin/bash -m oracle

# 4.3 设置 oracle 用户密码
[root@localhost ~]# echo 'oracle:Oracle123!' | passwd --stdin oracle

# 4.4 创建数据库相关目录
[root@localhost ~]# mkdir -p /opt/oracle/product/21c/dbhome_1
[root@localhost ~]# mkdir -p /opt/oracle/oraInventory
[root@localhost ~]# mkdir -p /oracle/archive_log

# 4.5 设置目录权限(oracle 用户需要读写这些目录)
[root@localhost ~]# chown -R oracle:oinstall /opt/oracle /oracle/archive_log

参数说明:

命令 说明
groupadd oinstall Oracle 软件安装组,拥有此组才能安装和升级 Oracle 软件
groupadd dba 数据库管理员组,拥有此组的用户可以以 OS 认证登录数据库(sqlplus / as sysdba
groupadd oper 数据库操作员组,权限低于 dba,可以启停数据库但不能访问数据
useradd -g oinstall -G dba,oper 创建 oracle 用户,主组 oinstall,附加组 dba、oper
-s /bin/bash 指定 shell 为 bash
-m 自动创建家目录 /home/oracle
chown -R oracle:oinstall /opt/oracle/oracle/archive_log 的所有权改为 oracle 用户 + oinstall 组,这样才能在里面写文件

步骤5:配置内核参数

Oracle 数据库对操作系统的内核参数有要求(主要是内存和文件句柄),需要用 sysctl 调整。

[root@localhost ~]# cat >> /etc/sysctl.conf << 'EOF'
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF

# 使参数立即生效(不用重启)
[root@localhost ~]# sysctl -p

参数说明:

参数 分类 说明
fs.file-max 6815744 文件句柄 系统级最大打开文件数。Oracle 需要打开大量数据文件、日志文件、网络 socket,这个值要够大
kernel.sem 250 32000 100 128 信号量 四个值:①每个 set 最大信号量数 ②系统最大信号量数 ③每次调用最大操作数 ④系统最大信号量集数。Oracle 启动需要大量信号量来协调进程
kernel.shmmni 4096 共享内存 系统最多允许创建的共享内存段数。Oracle SGA 使用共享内存,需要多段
kernel.shmall 1073741824 共享内存 系统能使用的共享内存总大小(单位:页,即 4KB)。这个值约等于 4TB,足够大
kernel.shmmax 4398046511104 共享内存 单个共享内存段最大允许大小(约 4TB)。Oracle SGA 不能超过这个值
net.core.rmem_default 262144 网络缓冲 默认 TCP 接收缓冲区大小(256KB)。Oracle 网络传输的数据块较大,加大缓冲区减少网络等待
net.core.rmem_max 4194304 网络缓冲 TCP 接收缓冲区最大允许值(4MB)
net.core.wmem_default 262144 网络缓冲 默认 TCP 发送缓冲区大小(256KB)
net.core.wmem_max 1048576 网络缓冲 TCP 发送缓冲区最大允许值(1MB)
fs.aio-max-nr 1048576 异步 IO 系统允许的最大并发异步 I/O 请求数。Oracle 大量使用异步 IO,默认值太小会导致性能下降
net.ipv4.ip_local_port_range 9000 65500 网络端口 本地可用端口范围。Oracle 数据库和客户端之间需要大量 TCP 连接,扩大端口范围防止端口耗尽

步骤6:配置资源限制

[root@localhost ~]# cat >> /etc/security/limits.conf << 'EOF'
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF

参数说明:

参数 soft hard 说明
nproc 2047 16384 oracle 用户能启动的最大进程数。Oracle 启动后会创建几十个后台进程(DBWr、LGWR、CKPT 等),连接数多时进程更多
nofile 1024 65536 最大打开文件数。Oracle 同时打开数据文件、控制文件、redo 日志、归档日志、监听 socket,值太小会报 "too many open files"
stack 10240 32768 栈大小(KB),oracle 的每个进程都需要

soft = 软限制(警告阈值),hard = 硬限制(绝对上限,不可超越)

步骤7:配置 oracle 用户环境变量

[root@localhost ~]# cat >> /home/oracle/.bashrc << 'EOF'
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
EOF

参数说明:

变量 说明
ORACLE_BASE /opt/oracle Oracle 基础目录,是所有 Oracle 文件(软件、数据、诊断日志)的根目录
ORACLE_HOME /opt/oracle/product/21c/dbhome_1 Oracle 软件安装目录,存放 sqlplus、lsnrctl、dbca 等可执行文件
ORACLE_SID orcl Oracle 实例标识符。同一台机器可能有多个数据库实例,靠这个区分要操作哪个
PATH 加上了 $ORACLE_HOME/bin 让 oracle 用户在任意目录都能直接敲 sqlpluslsnrctl 等命令,不用写完整路径
LD_LIBRARY_PATH 加上了 $ORACLE_HOME/lib 动态库搜索路径,让 oracle 程序能找到自己的 .so 库文件

配置完成后,切换到 oracle 用户才会生效。后面步骤中 su - oracle 会自动加载。

步骤8:复制并解压安装包

# 8.1 把 ZIP 包复制到 oracle 用户目录
[root@localhost ~]# cp /root/LINUX.X64_213000_db_home.zip /home/oracle/

# 8.2 设所有权为 oracle
[root@localhost ~]# chown oracle:oinstall /home/oracle/LINUX.X64_213000_db_home.zip

# 8.3 切换到 oracle 用户
[root@localhost ~]# su - oracle

切换用户后,命令提示符会从 [root@localhost ~]# 变成 [oracle@localhost ~]$,说明当前是 oracle 用户。

接着以 oracle 用户执行:

# 进入安装目录
[oracle@localhost ~]$ cd /opt/oracle/product/21c/dbhome_1

# 解压(大约 10 分钟,耐心等)
[oracle@localhost dbhome_1]$ unzip -q /home/oracle/LINUX.X64_213000_db_home.zip

# 解压后退出 oracle 用户,回到 root
[oracle@localhost dbhome_1]$ exit

看到提示符变回 [root@localhost ~]# 说明已经回到 root。

步骤9:创建安装响应文件

# 先切换到 oracle 用户
[root@localhost ~]# su - oracle

# 创建响应文件
[oracle@localhost ~]$ cat > /home/oracle/db_install.rsp << 'EOF'
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
ORACLE_HOME=/opt/oracle/product/21c/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false
EOF

# 验证文件已创建
[oracle@localhost ~]$ ls -la /home/oracle/db_install.rsp

关键参数说明:

参数 说明
oracle.install.option INSTALL_DB_SWONLY 只安装数据库软件(Software Only),不创建数据库。创建数据库放在后面单独用 dbca 命令做
INVENTORY_LOCATION /opt/oracle/oraInventory 清单目录,记录已安装的 Oracle 产品信息,类似"程序列表"
ORACLE_HOME /opt/oracle/product/21c/dbhome_1 Oracle 软件安装目录,存放可执行文件、库文件等
ORACLE_BASE /opt/oracle Oracle 基础目录,通常放 Oracle 软件和数据文件的上级目录
oracle.install.db.InstallEdition EE 安装版本。EE = Enterprise Edition(企业版),功能最全
oracle.install.db.OSDBA_GROUP dba 操作系统 DBA 组,拥有该组的用户可以以 OS 认证连接数据库
oracle.install.db.rootconfig.executeRootScript false 不自动执行 root 配置脚本,稍后手动执行(防止权限问题)

步骤10:静默安装数据库软件(⏱️ 约 20-30 分钟)

# 确保当前是 oracle 用户(提示符是 [oracle@localhost ~]$)
# 如果不是,执行 su - oracle

[oracle@localhost ~]$ cd /opt/oracle/product/21c/dbhome_1

[oracle@localhost dbhome_1]$ ./runInstaller -silent -ignorePrereqFailure \
  -responseFile /home/oracle/db_install.rsp \
  -waitforcompletion

参数说明:

参数 说明
-silent 静默模式,不弹图形界面,全自动执行
-ignorePrereqFailure 忽略所有前置检查失败(因为 CentOS 7 不在 Oracle 官方认证列表中,会报 INS-13001,不影响安装)
-responseFile /home/oracle/db_install.rsp 指定响应文件路径,响应文件里写好了所有安装参数(ORACLE_HOME、字符集等)
-waitforcompletion 等待安装完全结束再返回,不加这个命令会立即返回后台运行

⏱️ 这一步需要 20-30 分钟,期间不要关终端。

看到 Successfully Setup Software with warning(s). 就说明安装成功。

过程中可能有一些 WARNING,是正常的,不用管。

步骤11:执行 root 配置脚本

# 回到 root 用户执行
[oracle@localhost dbhome_1]$ exit

[root@localhost ~]# /opt/oracle/oraInventory/orainstRoot.sh
[root@localhost ~]# /opt/oracle/product/21c/dbhome_1/root.sh

第二行 /opt/oracle/product/21c/dbhome_1/root.sh 执行后会提示 /usr/local/bin 目录,直接按回车就行。

步骤12:创建监听

# 切换到 oracle 用户
[root@localhost ~]# su - oracle

# 创建默认监听
[oracle@localhost ~]$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
# 看到 "成功完成 Oracle Net Services 配置" 即可

说明:

  • netca = Oracle Net Configuration Assistant,负责创建监听器和网络配置
  • 默认监听配置完成后会监听 TCP 1521 端口,服务名默认就是 orcl
  • 如果不用静默模式,会弹出图形界面让你一步步点,用 -silent 参数全程无需交互

步骤13:修改监听绑定地址(⚠️ 重要!不做这一步远程连不上)

# 依然是 oracle 用户

# 设置监听配置文件路径
[oracle@localhost ~]$ LSO=/opt/oracle/homes/OraDB21Home1/network/admin/listener.ora

# 查看当前配置(确认是否存在)
[oracle@localhost ~]$ cat $LSO

# 修改:把 localhost 改成 0.0.0.0,这样外部 IP 才能连接
[oracle@localhost ~]$ sed -i 's/HOST = localhost/HOST = 0.0.0.0/' $LSO

# 停掉旧监听
[oracle@localhost ~]$ lsnrctl stop

# 启动新监听
[oracle@localhost ~]$ lsnrctl start
# 应该看到 Listening on: (ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521))

说明:

  • HOST = localhost:监听只绑定本地回环地址,只有本机(127.0.0.1)能连接,外部无法访问
  • HOST = 0.0.0.0:监听绑定所有网络接口,允许来自任意 IP 的连接请求

步骤14:关闭防火墙

# 先回到 root 用户
[oracle@localhost ~]$ exit

# 关闭并禁用防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

# 确认已关闭
[root@localhost ~]# firewall-cmd --state
# 应该输出: not running

步骤15:创建数据库(⏱️ 约 10-15 分钟)

# 切换到 oracle 用户
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbname orcl \
  -sid orcl \
  -characterSet ZHS16GBK \
  -sysPassword Admin123! \
  -systemPassword Admin123! \
  -storageType FS \
  -datafileDestination /opt/oracle/oradata \
  -redoLogFileSize 500 \
  -enableArchive true \
  -archiveLogDest /oracle/archive_log

参数说明:

参数 说明
-silent - 静默模式,不弹图形界面,全程命令行
-createDatabase - 执行创建数据库操作
-templateName General_Purpose.dbc 模板名 使用 Oracle 自带的"通用"模板,参数都已优化,直接可用
-gdbname orcl orcl 全局数据库名(Global Database Name),对外提供服务的名字,客户端连接时用
-sid orcl orcl 系统标识符(System Identifier),Oracle 实例名,操作系统层面区分不同实例用
-characterSet ZHS16GBK ZHS16GBK 数据库字符集。ZHS16GBK = GBK 编码,支持中文
-sysPassword Admin123! Admin123! SYS 用户的密码。SYS 是数据库最高权限用户,相当于 MySQL 的 root
-systemPassword Admin123! Admin123! SYSTEM 用户的密码。SYSTEM 是数据库管理员,权限仅次于 SYS
-storageType FS FS 存储类型。FS = File System,文件系统存储(另一选项是 ASM,需要额外配置)
-datafileDestination /opt/oracle/oradata 路径 数据文件存放目录。数据库的所有数据文件、控制文件、redo 日志都会放在这里
-redoLogFileSize 500 500 MB 每个 redo 日志组的大小(单位 MB)。redo 日志记录数据修改,用于数据库恢复
-enableArchive true true 创建数据库时直接开启归档模式(ARCHIVELOG),否则默认不开启
-archiveLogDest /oracle/archive_log 路径 归档日志存放目录。开启归档后,redo 日志文件被归档备份到这里

⏱️ 约 10-15 分钟。进度从 10% → 100%,看到 数据库创建完成 即可。

参数说明:

  • -gdbname orcl:全局数据库名
  • -sid orcl:实例标识
  • -characterSet ZHS16GBK:GBK 字符集
  • -enableArchive true:开启归档模式
  • -archiveLogDest /oracle/archive_log:归档日志存放位置
  • -redoLogFileSize 500:每组 redo log 大小 500MB

步骤16:配置强制日志和附加日志

# 依然是 oracle 用户
[oracle@localhost ~]$ export ORACLE_SID=orcl

这里使用 sqlplus 连接数据库,逐条执行以下 SQL:

[oracle@localhost ~]$ sqlplus / as sysdba

进入 sqlplus 后(提示符变成 SQL>),逐条执行:

SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER SYSTEM SET archive_lag_target=1800 SCOPE=BOTH;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> EXIT

SQL 命令说明:

SQL 命令 说明
ALTER DATABASE FORCE LOGGING; 强制日志记录。开启后,所有操作都会记录到 redo 日志,即使表空间设置了 NOLOGGING,保障数据完整性和 CDC 同步
ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS 附加日志 - 主键。开启后,CDC 同步时若数据被删除,能通过主键定位到被删行,支持 PK 变更捕获
ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS 附加日志 - 唯一索引。开启后,CDC 同步时能通过唯一索引(UK/bitmap index)定位行,支持 UI 变更捕获
ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS 附加日志 - 外键。开启后,CDC 同步时外键关联的父子表变更可以正确追踪,支持 FK 依赖链
ALTER SYSTEM SET archive_lag_target=1800 SCOPE=BOTH; 设置归档日志切换间隔为 1800 秒(30 分钟)。每 30 分钟强制切换一次 redo 日志,生成新的归档日志文件,防止日志堆积
ALTER SYSTEM SWITCH LOGFILE; 手动触发一次 redo 日志切换,立即生成一个归档日志,验证归档是否正常工作

每条执行成功后会显示 "数据库已更改" 或 "系统已更改"。

注意:如果 sqlplus 中显示的是乱码(如"????"),这是因为 CentOS 7 缺少中文语言包。执行以下命令修复:

[oracle@localhost ~]$ echo 'export NLS_LANG=AMERICAN_AMERICA.AL32UTF8' >> ~/.bashrc
[oracle@localhost ~]$ source ~/.bashrc

解释NLS_LANG=AMERICAN_AMERICA.AL32UTF8 把 sqlplus 的输出语言设为英文 + UTF-8 编码,这样就不会出现中文乱码了。

补充:开启全部字段的附加日志

如果 CDC 工具要求开启全部字段的变更记录(ALL mode),在前面步骤16执行完后再多跑一条:

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

解释

  • (ALL) COLUMNS:除了 PK/UI/FK 外,还对 每张表的每个字段 都记录变更信息
  • ⚠️ 这会大幅增加日志量(可能几十倍),生产环境慎用
  • 大多数 CDC 场景 PK+UI+FK 已经够用,除非明确需要才开这个

EXIT 命令退出 sqlplus,回到 oracle 用户命令行。

EXIT 命令退出 sqlplus,回到 oracle 用户命令行。


四、验证安装

# 确保是 oracle 用户
[oracle@localhost ~]$ export ORACLE_SID=orcl

# 1. 检查监听状态
[oracle@localhost ~]$ lsnrctl status
# 应该看到 orcl 服务状态为 READY,端口 1521(HOST=0.0.0.0)
# 2. 进入数据库检查
[oracle@localhost ~]$ sqlplus / as sysdma
SQL> COLUMN log_mode FORMAT A20
SQL> SELECT log_mode, force_logging,
       supplemental_log_data_pk AS pk,
       supplemental_log_data_ui AS ui,
       supplemental_log_data_fk AS fk
FROM v$database;

SQL> SELECT instance_name, status, version FROM v$instance;

SQL> SELECT name, open_mode FROM v$database;

SQL> EXIT

正常结果应该如下:

检查项 期望值
LOG_MODE ARCHIVELOG
FORCE_LOGGING YES
pk YES
ui YES
fk YES
INSTANCE_NAME orcl
STATUS OPEN
VERSION 21.0.0.0.0
OPEN_MODE READ WRITE

五、客户端连接

打开数据库客户端工具(如 PL/SQL Developer、Navicat、DBeaver),填写以下信息:

字段
主机名/IP 你服务器的 IP 地址(如 192.168.9.62)
端口 1521
服务名 orcl
用户名 system
密码 Admin123!

如果连不上,按顺序排查

在服务器上排查(oracle 用户):

# 1. 确认监听绑定了 0.0.0.0
[oracle@localhost ~]$ grep HOST /opt/oracle/homes/OraDB21Home1/network/admin/listener.ora
# 应该是 HOST = 0.0.0.0,如果是 localhost 说明步骤13没做

# 2. 确认防火墙已关闭
[root@localhost ~]# firewall-cmd --state
# 应该输出: not running

# 3. 确认服务已注册到监听
[oracle@localhost ~]$ lsnrctl status | grep orcl
# 应该看到 "orcl" 和 "READY"

在客户端电脑上排查(Windows 命令行 cmd):

C:\> ping 192.168.9.62
# 能 ping 通说明网络没问题

C:\> telnet 192.168.9.62 1521
# 如果通会变成黑屏/空光标,说明端口没问题
# 如果提示 "telnet 不是内部或外部命令",需要先去 Windows 功能里开启 Telnet 客户端

六、常见问题

安装失败需要重装

# 以 root 执行以下清理命令
[root@localhost ~]# rm -rf /opt/oracle/oraInventory
[root@localhost ~]# rm -rf /tmp/InstallActions*
[root@localhost ~]# mkdir -p /opt/oracle/oraInventory
[root@localhost ~]# chown -R oracle:oinstall /opt/oracle/oraInventory
# 然后从步骤10重新开始

报错 ORA-01034: Oracle not available

[oracle@localhost ~]$ export ORACLE_SID=orcl
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> STARTUP

监听启动后服务列表为空(没有 orcl)

[oracle@localhost ~]$ export ORACLE_SID=orcl
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> ALTER SYSTEM REGISTER;
# 等 10 秒后检查
SQL> EXIT
[oracle@localhost ~]$ lsnrctl status

数据库开机不会自动启动

# 以 root 执行,配置数据库自动启动
[root@localhost ~]# sed -i 's/ORACLE_HOME_LISTNER=$1/ORACLE_HOME_LISTNER=\/opt\/oracle\/product\/21c\/dbhome_1/' /opt/oracle/product/21c/dbhome_1/bin/dbstart

[root@localhost ~]# cat >> /etc/oratab << 'EOF'
orcl:/opt/oracle/product/21c/dbhome_1:Y
EOF

# 设置开机自启
[root@localhost ~]# cat > /etc/systemd/system/oracle.service << 'EOF'
[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/opt/oracle/product/21c/dbhome_1/bin/dbstart /opt/oracle/product/21c/dbhome_1
ExecStop=/opt/oracle/product/21c/dbhome_1/bin/dbshut /opt/oracle/product/21c/dbhome_1
Restart=no

[Install]
WantedBy=multi-user.target
EOF

[root@localhost ~]# systemctl enable oracle
posted @ 2026-06-23 14:57  谢墨尘  阅读(14)  评论(0)    收藏  举报