静默安装oracle19c数据库


前言

有的环境不允许图形化安装oracle数据库,这个时候就可以通过静默安装的方式安装。本文是静默安装19c数据库的过程,过程中如有什么需要改进和错误的地方,还请大家帮忙指出。


本次环境配置如下:

IP地址主机名称实例名称oracle版本操作系统版本
192.168.40.16test16testdb19coraclelinux 7.6

一、配置操作系统环境

注意:安装文件放置位置在/soft目录下

[root@test16:/root]# ls /soft
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm  
LINUX.X64_193000_db_home.zip

0.环境变量设置

#设置ORACLE_HOME目录
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db
#设置ORACLE_BASE目录
ORACLE_BASE=/u01/app/oracle
#设置oraInventory目录
oraInventory_HOME=/u01/app/oraInventory
#设置数据文件存放目录
DATA_HOME=/oradata
#设置归档存放目录
ARCH_HOME=/oradata/archivelog
#设置实例名
ORACLE_SID=testdb
#设置实例字符集
INSTANCE_CHARACTERSET=AL32UTF8
#设置实际国家字符集
INSTANCE_NCHARACTERSET=AL16UTF16
#设置是否CDB模式(TRUE/FALSE)
ISCDB=FALSE

1.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

2.关闭 Selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
cat /etc/selinux/config

3.挂载光驱

mount /dev/sr0 /mnt

4.配置本地yum文件

mkdir /etc/yum.repos.d/bak -p

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

cat<<EOF>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
#更新
yum repolist all

5.安装依赖包

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 --skip-broken

#注意:RHEL 7 需要手动安装 compat-libstdc++ 依赖包:

rpm -ivh /soft/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

6.配置host

cat <<EOF >>/etc/hosts
${HOST_IP} ${HOSTNAME}     
EOF
cat /etc/hosts

7.创建用户和组

#创建 oinstall dba oper 组
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54330 racdba
# 创建 oracle 用户
/usr/sbin/useradd -u 54321 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper oracle
# 修改 oracle 用户密码为 oracle
echo oracle | passwd --stdin oracle
# 检查 oracle 用户
id oracle

8.创建安装目录

mkdir -p ${ORACLE_HOME}
mkdir -p ${oraInventory_HOME}
mkdir -p ${DATA_HOME}
mkdir -p ${ARCH_HOME}
chown -R oracle:oinstall ${DATA_HOME}
chown -R oracle:oinstall ${ARCH_HOME}
chown -R oracle:oinstall ${oraInventory_HOME}
chown -R oracle:oinstall ${ORACLE_BASE}
chmod -R 775 ${oraInventory_HOME}
chmod -R 775 ${ORACLE_BASE}

9.配置 avahi-deamon

systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket

#关闭 NOZEROCONF
cat <<EOF >>/etc/sysconfig/network
NOZEROCONF=yes
EOF
cat /etc/sysconfig/network

10.关闭透明大页和 numa

sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub

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

11.配置系统参数文件(这里参数按照8G内存配置)

DAYTIME=$(date +%Y%m%d)
mv /etc/sysctl.conf /etc/sysctl.conf.${DAYTIME}
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
  shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
  shmmax=4294967295
fi
cat <<EOF >/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 = $shmall
kernel.shmmax = $shmmax
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
EOF
##使之生效
sysctl -p

12.配置系统资源限制

cat <<EOF >>/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
EOF

13.配置 pam.d

cat <<EOF >>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF

14.配置 /dev/shm

cp /etc/fstab /tmp/fstab
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
shmTotal=$(df -k /dev/shm | awk '{print $2}' | head -n 2 | tail -n 1)
if [ "$(grep -E -c "/dev/shm" /etc/fstab)" -eq 0 ]; then
    cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
    mount -o remount /dev/shm
else
  if [ "$shmTotal" -lt "$memTotal" ]; then
    shmTotal=$memTotal
    line=$(grep -n "/dev/shm" /etc/fstab | awk -F ":" '{print $1}')
    sed -i "${line} d" /etc/fstab
    cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
    fi
    mount -o remount /dev/shm
fi

15.配置用户环境变量

15.1.配置 root 用户

cat <<EOF >>/root/.bash_profile
alias so='su - oracle'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]# '
EOF

15.2.配置 oracle 用户

cat <<EOF >>/home/oracle/.bash_profile
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=${ORACLE_BASE}
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=${HOSTNAME}
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=${ORACLE_SID}
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
export INVENTORY_LOCATION=${oraInventory_HOME}
export ORADATADIR=${DATA_HOME}
export ARCHIVEDIR=${ARCH_HOME}
export CHARACTERSET=${INSTANCE_CHARACTERSET}
export NCHARACTERSET=${INSTANCE_NCHARACTERSET}
export ISCDB=${ISCDB}
EOF

cat /home/oracle/.bash_profile

17.重启

#重启系统,让前面的配置生效
reboot

18.验证

cat /etc/selinux/config
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
rpm -q 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

二、配置响应文件

1.首先需要授予 /soft 目录权限

chown -R oracle.oinstall /soft

2.连接 oracle 用户

su - oracle
cd /soft

3.创建响应文件

cat <<EOF >>/soft/db.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=${INVENTORY_LOCATION}
ORACLE_BASE=${ORACLE_BASE}
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.rootconfig.configMethod=
EOF

三、静默安装数据库软件

进入ORACLE_HOME目录解压安装文件并执行静默安装

#静默安装
cd $ORACLE_HOME
#解压安装文件
unzip /soft/LINUX.X64_193000_db_home.zip
#运行静默安装
./runInstaller -silent -force -responseFile /soft/db.rsp -ignorePrereq -waitForCompletion

安装结束需要以root身份执行两个root脚本

#安装结束需要以root身份执行两个root脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/db/root.sh

四、安装监听

su - oracle
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
lsnrctl status

五、静默安装实例

#数据库内存这里取物理内存的 50%
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))

##执行安装命令
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}

六、登录数据库

sqlplus / as sysdba
SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

总结

以上就是今天要讲的内容,本文仅仅简单介绍了19c的静默安装方法。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值