[关闭]
@clisdodo 2019-11-12T08:08:28.000000Z 字数 6195 阅读 7533

Oracle Database 19c Installation On RHEL 8

Oracle19.3 rhel8


AskScuti :搭建类 1-0-5 Oracle 19c 单实例文件系统 2019-06-06

1 软件获取

2 安装前准备

2.0 创建文件系统

此操作可以在 linux 安装分区时做
/dev/sdb/dev/sdc 进行分区

fdisk -l
fdisk /dev/sdb
fdisk /dev/sdc

格式化分区

mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdc1

创建目录

mkdir /u01
mkdir /u02

手工挂载

mount /dev/sdb1 /u01
mount /dev/sdc1 /u02

获取分区 blokid

blkid /dev/sdb1
blkid /dev/sdc1

添加到 /etc/fstab 开机自启文件

UUID=457af061-6eef-4532-abcd-21cf770f87fa /u01            xfs     defaults    0 0
UUID=7bdf61c5-0fe2-456c-82d4-447fa5a41e61 /u02            xfs     defaults    0 0

2.1 禁用 SELinux

编辑 /etc/selinux/config 文件,设置 SELINUX=disabled

setenforce 0
SELINUX=disabled

2.2 禁用 Firewall

关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service 

2.3 配置 HOSTS 文件

编辑 /etc/hosts 文件,添加 IP 地址及主机名

echo "192.168.1.14 henry" >> /etc/hosts 

2.4 配置内核参数

编辑 /etc/sysctl.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

然后使之生效

/sbin/sysctl -p

2.5 限制用户资源

编辑 /etc/security/limits.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

注意:如果内存小于8G,最后两行大内存页配置可忽略

2.6 配置YUM源

挂载本地镜像,编辑 /etc/yum.repos.d/henry.repo

注意:RHEL 8 版本的 YUM 仓库分为两个部分
BaseOS 为操作系统底层提供的基础安装包
AppStream 应用程序流为应用程序、语言运行库和数据库提供安装包

cd /etc/yum.repos.d/
mv redhat.repo redhat.repo.bak
echo "[henry_baseos]" >> henry.repo
echo "name=19cbaseos" >> henry.repo 
echo "baseurl=file:///mnt/BaseOS/" >> henry.repo 
echo "enabled=1" >> henry.repo 
echo "gpgcheck=0" >> henry.repo 

echo "[henry_appstream]" >> henry.repo
echo "name=19cappstream" >> henry.repo 
echo "baseurl=file:///mnt/AppStream/" >> henry.repo 
echo "enabled=1" >> henry.repo 
echo "gpgcheck=0" >> henry.repo 
cat henry.repo 

yum repolist all

2.7 RPM包检查

下面列出的软件包,如果有些没有安装,不必担心,它不会阻止安装数据库

dnf install -y bc    
dnf install -y binutils
dnf install -y compat-libstdc++-33
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y librdmacm-devel
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y net-tools # Clusterware
dnf install -y nfs-utils # ACFS
dnf install -y python # ACFS
dnf install -y python-configshell # ACFS
dnf install -y python-rtslib # ACFS
dnf install -y python-six # ACFS
dnf install -y targetcli # ACFS
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y unixODBC
dnf install -y libnsl2
dnf install -y libnsl2.i686

2.8 创建用户和组

添加相关组和用户

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

更改 oracle 用户密码

passwd oracle

2.9 创建目录及授权

mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02

2.10 Oracle环境变量

注意:如果不是使用 cat 命令,则需要去除 $ 符号前面的转移字符 \

mkdir /home/oracle/scripts

cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=henry
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=cdb1
export PDB_NAME=pdb1
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:\$PATH
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
EOF

将环境变量添加至 /home/oracle/.bash_profile

echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

切换 oracle 用户,查看环境

su - oracle
env |grep ORACLE

2.11 添加启动/关闭数据库服务脚本(可选

目的是为了可以配合 Linux 操作系统启停来直接调用脚本,启动或关闭数据库服务

注意:如果不是使用 cat 命令,则需要去除 $ 符号前面的转移字符 \

cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart \$ORACLE_HOME
EOF


cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut \$ORACLE_HOME
EOF

chown -R oracle:oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh

安装完成并编辑 /etc/oratab 后即可使用 oracle 用户调用上面脚本完成数据库的启动和关闭

~/scripts/start_all.sh
~/scripts/stop_all.sh

3 数据库软件安装

3.1 解压

压缩包上传至 /u02 目录,用 oracle 用户进行解压,注意权限

注意:从 oracle 18c 开始,必须把压缩文件解压到 $ORACLE_HOME 里面,点我查看官方文档

chown -R oracle:oinstall /u02
chmod -R 775 /u02
su - oracle
cd $ORACLE_HOME
unzip /u02/V982063-01.zip

3.2 设置版本兼容

注意:RHEL 8 如果不设置版本兼容,则会报错 [INS-08101]

export CV_ASSUME_DISTID=RHEL7.6

3.3 执行安装

# 图形安装 
./runInstaller

# 静默安装
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=henry \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
SELECTED_LANGUAGES=en,en_GB \
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 \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true

安装报错?点我查看

3.4 执行脚本

使用 root 用户执行脚本文件

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

4 创建数据库

# 启动监听
lsnrctl start

# 图形创建
dbca

# 静默创建
dbca -silent -createDatabase -templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-databaseConfigType SI \
-createAsContainerDatabase TRUE \
-numberOfPDBs 1 \
-pdbName pdb1 \
-useLocalUndoForPDBs TRUE \
-pdbAdminPassword oracle \
-sysPassword oracle \
-systemPassword oracle \
-characterSet AL32UTF8 \
-memoryPercentage 30

5 安装后(可选)

编辑 /etc/oratab 文件,将启动标志设置为 Y

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

之后,就可以在OS层面调用 2.11 小节的两个脚本

~/scripts/start_all.sh
~/scripts/stop_all.sh
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注