@clisdodo
2019-11-12T08:08:28.000000Z
字数 6195
阅读 7533
Oracle19.3
rhel8
AskScuti :搭建类 1-0-5 Oracle 19c 单实例文件系统 2019-06-06
此操作可以在
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
编辑 /etc/selinux/config
文件,设置 SELINUX=disabled
setenforce 0
SELINUX=disabled
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
编辑 /etc/hosts
文件,添加 IP 地址及主机名
echo "192.168.1.14 henry" >> /etc/hosts
编辑 /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
编辑 /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,最后两行大内存页配置可忽略
挂载本地镜像,编辑 /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
下面列出的软件包,如果有些没有安装,不必担心,它不会阻止安装数据库
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
添加相关组和用户
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
更改 oracle
用户密码
passwd oracle
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
注意:如果不是使用
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
目的是为了可以配合 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
压缩包上传至 /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
注意:RHEL 8 如果不设置版本兼容,则会报错 [INS-08101]
export CV_ASSUME_DISTID=RHEL7.6
# 图形安装
./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
安装报错?点我查看
使用 root
用户执行脚本文件
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
# 启动监听
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
编辑 /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