环境说明

操作系统

Oracle Linux 8.5

数据库

Oracle 19.3

IP

192.168.0.110

主机名

DBServer

Oracle软件安装目录

/oracle

Oracle数据库文件目录

/oradata

数据库名

oradb


配置本地主机解析

[root@dbserver ~]# echo "192.168.0.110 DBServer" >> /etc/hosts

禁用 CentOS 8 系统 Transparent HugePages

vi /etc/default/grub

GRUB_CMDLINE_LINUX="resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet transparent_hugepage=never"

配置文件修改完成后,使用如下命令重新生成 GRUB 配置并重启主机让配置生效:

grub2-mkconfig -o /boot/grub2/grub.cfg
systemctl reboot

验证修改结果(显示为”[never]”,则表示透明大页功能已经关闭。)

cat /sys/kernel/mm/transparent_hugepage/enabled

配置本地YUM源

mount /dev/cdrom /mnt
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk
vim dvd.repo

[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
enbaled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1

yum clean all
yum makecache

安装 Oracle Database 19c CentOS 8 系统依赖包

dnf install -y bc \
binutils \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libXrender \
libXrender-devel \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
librdmacm-devel \
libstdc++ \
libstdc++-devel \
libxcb \
make \
net-tools \
smartmontools \
sysstat \
unzip \
libnsl \
libnsl2

创建 Oracle 19c 使用的用户和属组

groupadd -g 6001 oinstall
groupadd -g 6002 dba
groupadd -g 6003 oper
groupadd -g 6004 backupdba
groupadd -g 6005 dgdba
groupadd -g 6006 kmdba
groupadd -g 6007 racdba
useradd -u 6001 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle

设置 Oracle 用户的安全权限

vi /etc/security/limits.d/30-oracle.conf

oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728

调整 CentOS 8系统参数

vi/etc/sysctl.d/98-oracle.conf

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

[root@dbserver limits.d]# sysctl -p

配置 SELinux 以及放行防火墙端口

sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/sysconfig/selinux
setenforce permissive
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --reload

创建 Oracle 19c 的工作目录以及数据库目录

mkdir -p /oracle/app/oracle/product/19.3.0/dbhome_1
mkdir -p /oradata
chown -R oracle:oinstall /oracle /oradata
chmod -R 775 /oracle /oradata

配置 Oracle 用户环境变量

su oracle
vi .bash_profile

# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=dbserver
export ORACLE_UNQNAME=oradb
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORA_INVENTORY=/oracle/app/oraInventory
export ORACLE_SID=oradb
export PDB_NAME=pdb
export DATA_DIR=/oradata
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

[oracle@dbserver ~]$ source ~/.bash_profile

[oracle@dbserver ~]$ export CV_ASSUME_DISTID=OEL8.5

[oracle@dbserver oracle]$ unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

[oracle@dbserver oracle]$ cd $ORACLE_HOME
[oracle@dbserver oracle]$ ./runInstaller