Linux oracle 19c单机安装

Oracle 19c单机安装

  • 一、安装包准备说明
  • 二、系统前期环境配置
    • [2.1 操作系统版本](#2.1 操作系统版本)
    • [2.2 cpu、内存配置](#2.2 cpu、内存配置)
    • [2.3 关闭防火墙、SELinux](#2.3 关闭防火墙、SELinux)
    • [2.4 配置主机名、添加主机名解析](#2.4 配置主机名、添加主机名解析)
    • [2.5 挂载系统光盘、配置本地yum源](#2.5 挂载系统光盘、配置本地yum源)
    • [2.6 安装oracle需要的基础依赖包](#2.6 安装oracle需要的基础依赖包)
    • [2.7 安装compat-libstdc++](#2.7 安装compat-libstdc++)
    • [2.8 创建oracle相关用户](#2.8 创建oracle相关用户)
    • [2.9 规划oracle安装目录、授权](#2.9 规划oracle安装目录、授权)
    • [2.10 关闭avahi-daemon服务、NOZEROCONF](#2.10 关闭avahi-daemon服务、NOZEROCONF)
    • [2.11 关闭透明大页、Numa](#2.11 关闭透明大页、Numa)
    • [2.12 修改系统内核参数](#2.12 修改系统内核参数)
    • [2.13 调整系统资源限制](#2.13 调整系统资源限制)
    • [2.14 调整pam认证](#2.14 调整pam认证)
    • [2.15 调整tmfs文件系统大小](#2.15 调整tmfs文件系统大小)
    • [2.16 配置oracle用户所需要的环境变量](#2.16 配置oracle用户所需要的环境变量)
    • [2.17 系统重启](#2.17 系统重启)
  • [三、Oracle 19c安装配置](#三、Oracle 19c安装配置)
    • [3.1 上传oracle安装包](#3.1 上传oracle安装包)
    • [3.2 解压缩oracle安装包](#3.2 解压缩oracle安装包)
    • [3.3 配置响应文件](#3.3 配置响应文件)
    • [3.4 静默安装](#3.4 静默安装)
    • [3.5 以root用户身份执行脚本](#3.5 以root用户身份执行脚本)
  • 四、创建监听
    • [4.1 创建监听](#4.1 创建监听)
  • 五、创建数据库实例
    • [5.1 设置实例相关变量](#5.1 设置实例相关变量)
    • [5.2 创建实例](#5.2 创建实例)
    • [5.3 测试登录实例](#5.3 测试登录实例)

一、安装包准备说明

在Linux系统上安装Oracle 19c,主要需要准备下面的软件

说明: 其中compat-libstdc++软件可以在https://vault.centos.org自行下载

二、系统前期环境配置

2.1 操作系统版本

bash 复制代码
[root@oracle19c:/root]# cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.6"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.6 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.6:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.6"

2.2 cpu、内存配置

bash 复制代码
[root@oracle19c:/root]# nproc 
4
[root@oracle19c:/root]# free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        322M         15G         12M        278M         15G
Swap:           21G          0B         21G 

注意: swap容量要大于等于16G

2.3 关闭防火墙、SELinux

bash 复制代码
[root@oracle19c:/root]# getenforce 
Disabled
[root@oracle19c:/root]# systemctl status firewalld.service 
● firewalld.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

2.4 配置主机名、添加主机名解析

bash 复制代码
[root@oracle19c:/root]# hostnamectl set-hostname orcl19c

[root@oracle19c:/root]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.140.14	orcl19c

2.5 挂载系统光盘、配置本地yum源

bash 复制代码
[root@oracle19c:/root]# df -hT | grep iso
/dev/sr0              iso9660   4.2G  4.2G     0  100% /mnt

[root@oracle19c:/root]# cat /etc/yum.repos.d/
local.repo             packagekit-media.repo  redhat.repo            
[root@oracle19c:/root]# cat /etc/yum.repos.d/local.repo 
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0

2.6 安装oracle需要的基础依赖包

bash 复制代码
[root@oracle19c:/root]#  yum install -y bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline* psmisc 

2.7 安装compat-libstdc++

bash 复制代码
[root@oracle19c:/root]# wget https://vault.centos.org/7.6.1810/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

[root@oracle19c:/root]# rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm 

2.8 创建oracle相关用户

bash 复制代码
[root@oracle19c:/root]# groupadd oinstall
[root@oracle19c:/root]# groupadd dba
[root@oracle19c:/root]# groupadd oper
[root@oracle19c:/root]# groupadd backupdba
[root@oracle19c:/root]# groupadd dgdba
[root@oracle19c:/root]# groupadd kmdba
[root@oracle19c:/root]# groupadd racdba

[root@oracle19c:/root]# useradd -g oinstall oracle
[root@oracle19c:/root]# echo oracle | passwd --stdin oracle
[root@oracle19c:/root]# usermod -aG dba oracle
[root@oracle19c:/root]# usermod -aG backupdba oracle
[root@oracle19c:/root]# usermod -aG dgdba oracle
[root@oracle19c:/root]# usermod -aG kmdba oracle
[root@oracle19c:/root]# usermod -aG racdba oracle
[root@oracle19c:/root]# usermod -aG oper oracle

[root@oracle19c:/root]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba),1003(oper),1004(backupdba),1005(dgdba),1006(kmdba),1007(racdba)

2.9 规划oracle安装目录、授权

bash 复制代码
[root@oracle19c:/root]# mkdir -p /u01/app/oracle/product/19.3.0/db
[root@oracle19c:/root]# mkdir -p /u01/app/oraInventory
[root@oracle19c:/root]# mkdir /oradata
[root@oracle19c:/root]# mkdir /archivelog
[root@oracle19c:/root]# chown -R oracle.oinstall /u01/ /oradata/ /archivelog/
[root@oracle19c:/root]# chmod -R 755 /u01/app/

2.10 关闭avahi-daemon服务、NOZEROCONF

bash 复制代码
[root@oracle19c:/root]# systemctl stop avahi-daemon.socket avahi-daemon.service
[root@oracle19c:/root]# systemctl disable avahi-daemon.service avahi-daemon.socket 

[root@oracle19c:/root]# cat /etc/sysconfig/network
# Created by anaconda
NOZEROCONF=yes

2.11 关闭透明大页、Numa

bash 复制代码
[root@oracle19c:/root]# sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
[root@oracle19c:/root]# grub2-mkconfig -o /boot/grub2/grub.cfg

2.12 修改系统内核参数

bash 复制代码
[root@oracle19c:/root]# cat /etc/sysctl.conf
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4103171
kernel.shmmax = 16806588415
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

[root@oracle19c:/root]# sysctl -p

2.13 调整系统资源限制

bash 复制代码
[root@oracle19c:/root]# cat /etc/security/limits.conf 
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728

2.14 调整pam认证

bash 复制代码
[root@oracle19c:/root]# tail -n 2 /etc/pam.d/login
session required pam_limits.so 
session required /lib64/security/pam_limits.so

2.15 调整tmfs文件系统大小

bash 复制代码
[root@oracle19c:/root]# df -hT | grep shm
tmpfs                 tmpfs      16G     0   16G    0% /dev/shm
[root@oracle19c:/root]# 

[root@oracle19c:/root]# tail -n 1 /etc/fstab 
tmpfs /dev/shm tmpfs size=16412684k 0 0

2.16 配置oracle用户所需要的环境变量

bash 复制代码
[root@oracle19c:/root]# su - oracle
上一次登录:四 7月  2 11:01:56 CST 2026pts/0 上

[oracle@orcl19c:/home/oracle]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=orcl19C
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

2.17 系统重启

bash 复制代码
[root@oracle19c:/root]# init 6

三、Oracle 19c安装配置

3.1 上传oracle安装包

bash 复制代码
[oracle@orcl19c:/home/oracle]$ mkdir /u01/soft
[oracle@orcl19c:/home/oracle]$ ls /u01/soft/
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm  OracleShellInstall                rlwrap-0.46.tar.gz
LINUX.X64_193000_db_home.zip                 p6880880_190000_Linux-x86-64.zip  schagent.conf

3.2 解压缩oracle安装包

bash 复制代码
[oracle@orcl19c:/home/oracle]$ unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

3.3 配置响应文件

  • 说明: oracle 19c安装时,可以使用图形界面和静默两种方式安装。运行图形界面安装可以运行$ORACLE_HOME目录下的./runInstaller。
  • 这里采用的静默方式安装,使用静默方式则需要准备一个安装的响应文件,oracle安装程序会根据响应文件中的定义进行安装选项的配置
bash 复制代码
[oracle@orcl19c:/home/oracle]$ find /u01/ -name "db_install.rsp"
/u01/app/oracle/product/19.3.0/db/install/response/db_install.rsp

[oracle@orcl19c:/home/oracle]$ cd /u01/app/oracle/product/19.3.0/db/install/response/
[oracle@orcl19c:/home/oracle]$ cp db_install.rsp /home/oracle/
bash 复制代码
// 编辑响应文件 
// 以下所有配置在复制过来的模板文件中都有,找到根据自己实际的情况进行修改即可
[oracle@orcl19c:/home/oracle]$ less /home/oracle/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.3.0/db
ORACLE_BASE=/u01/app/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.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=true
oracle.install.db.rootconfig.configMethod=ROOT

3.4 静默安装

bash 复制代码
// 安装过程中会要求提供root密码 
// 安装过程中如果有错误,可根据回显提供的日志进行分析排查 
// 如果没有报错,等待一会会有软件成功安装的提示
[oracle@orcl19c:/home/oracle]$ cd $ORACLE_HOME
[oracle@orcl19c:/home/oracle]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp

3.5 以root用户身份执行脚本

bash 复制代码
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/db/root.sh

四、创建监听

4.1 创建监听

bash 复制代码
[oracle@orcl19c:/home/oracle]$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

[oracle@orcl19c:/home/oracle]$ netstat -tunlp | grep 1521
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      27246/tnslsnr     

[oracle@orcl19c:/home/oracle]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-JUL-2026 15:06:22

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl19C)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                02-JUL-2026 15:06:16
Uptime                    0 days 0 hr. 0 min. 5 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/orcl19c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl19c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

五、创建数据库实例

5.1 设置实例相关变量

bash 复制代码
## 实例名称
ORACLE_SID=orcl
## 数据文件目录
ORADATADIR=/oradata
## 归档日志目录
ARCHIVEDIR=/archivelog
## 数据库字符集
CHARACTERSET=AL32UTF8
## 国家字符集
NCHARACTERSET=AL16UTF16
## 数据库内存这里取物理内存的 50%
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
## 是否为 CDB 模式,TRUE 或者 FALSE
ISCDB=TRUE

5.2 创建实例

bash 复制代码
// 过程相对比较慢
dbca -silent -createDatabase \
-ignorePrereqFailure \
-templateName General_Purpose.dbc \
-responseFile NO_VALUE \
-gdbName ${ORACLE_SID} \
-sid ${ORACLE_SID} \
-sysPassword oracle \
-systemPassword oracle \
-redoLogFileSize 1024 \
-storageType FS \
-databaseConfigType SINGLE \
-datafileDestination ${ORADATADIR} \
-enableArchive true \
-archiveLogDest ${ARCHIVEDIR} \
-characterset ${CHARACTERSET} \
-nationalCharacterSet ${NCHARACTERSET} \
-emConfiguration NONE \
-automaticMemoryManagement false \
-totalMemory ${totalMemory} \
-databaseType OLTP \
-createAsContainerDatabase ${ISCDB}

5.3 测试登录实例

bash 复制代码
[oracle@orcl19c:/home/oracle]$ sqlplus / as sysdba