配置安装环境

#!/bin/bash

##仅供参考
##hosts文件、yum源、环境变量需结合实际进行修改
##其他配置可保持默认
##kernel.shmmax默认按总内存的75%配置
##memlock设置为unlimited 

echo "关闭SELinux--------------------"
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

echo "关闭防火墙--------------------"
systemctl stop firewalld.service
systemctl disable firewalld.service

echo "配置hosts文件--------------------"
cat>>/etc/hosts<<EOF
192.168.1.3 dg1
EOF

echo "配置本地yum源--------------------"
mkdir /etc/yum.repos.d/back
mv /etc/yum.repos.d/C* /etc/yum.repos.d/back
touch /etc/yum.repos.d/rac.repo
cat >>/etc/yum.repos.d/rac.repo<<EOF
[RAC]
name=rac
baseurl=file:///media
enable=1
gpgcheck=0
EOF
mount /dev/sr0 /media
yum makecache

echo "安装所需依赖包--------------------"
yum -y install bc
yum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install elfutils-libelf
yum -y install elfutils-libelf-devel
yum -y install fontconfig-devel
yum -y install glibc
yum -y install glibc-devel
yum -y install ksh
yum -y install libaio
yum -y install libaio-devel
yum -y install libX11
yum -y install libXau
yum -y install libXi
yum -y install libXtst
yum -y install libXrender
yum -y install libXrender-devel
yum -y install libgcc
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install libxcb
yum -y install make
yum -y install smartmontools
yum -y install sysstat
yum -y install gcc-c++


echo "创建用户和组--------------------"
groupadd -g 10001 oinstall
groupadd -g 10002 dba
groupadd -g 10003 oper
groupadd -g 10004 backupdba
groupadd -g 10005 dgdba
groupadd -g 10006 kmdba
groupadd -g 10007 asmdba
groupadd -g 10008 asmoper
groupadd -g 10009 asmadmin
groupadd -g 10010 racdba
useradd -u 20001 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle
useradd -u 20002 -g oinstall -G dba,asmadmin,asmdba,asmoper,racdba grid
echo oracle | passwd --stdin oracle
echo grid | passwd --stdin grid


echo "配置内核参数文件--------------------"
MEM=`free -g|grep Mem|awk '{print $2}'`
SHMMAX=$(($MEM*1024*1024*1024*75/100))
SHMALL=$(($MEM*1024*1024*1024/4096))
cat>>/etc/sysctl.conf<<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmall = $SHMALL
kernel.shmmax = $SHMMAX
kernel.shmmni = 4096   
net.core.rmem_default = 262144
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF

sysctl -p

echo "配置login文件--------------------"
cat>>/etc/pam.d/login<<EOF
session required pam_limits.so
EOF

echo "配置limits.conf文件--------------------"
cat>>/etc/security/limits.conf<<EOF
oracle soft nofile 1024 
oracle hard nofile 65536 
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft stack 10240 
oracle hard stack 32768 
oracle soft memlock unlimited 
oracle hard memlock unlimited 
grid soft nofile 1024 
grid hard nofile 65536 
grid soft nproc 2047
grid hard nproc 16384 
grid soft stack 10240 
grid hard stack 32768

EOF

echo "创建所需目录--------------------"
mkdir -p /u01/app/oracle 
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /u01/app/oraInventory/
chown -R oracle:oinstall /u01
chmod -R 775 /u01

echo "关闭avahi服务--------------------"
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service

echo "配置network文件--------------------"
echo 'NOZEROCONF=yes' >>/etc/sysconfig/network

echo "禁用透明大页功能--------------------"
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo "重新配置tmpfs 挂载点--------------------"
echo 'tmpfs /dev/shm tmpfs defaults,size=6g 0 0' >>/etc/fstab
mount -o remount /dev/shm

echo "用户环境变量配置--------------------"
cat>>/home/oracle/.bash_profile<<EOF
export TMP=/tmp   
export TMPDIR=$TMP   
export ORACLE_SID=orcltest    
export ORACLE_UNQNAME=orcltest
export ORACLE_HOSTNAME=dg1
export ORACLE_BASE=/u01/app/oracle   
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1   
export TNS_ADMIN=$ORACLE_HOME/network/admin   
export PATH=/usr/sbin:$PATH   
export PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch   
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib   
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib   
export LANG=zh_CN.UTF-8 
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
umask 022

EOF

echo "配置完成--------------------"

安装Oracle软件

上传文件

上传安装文件至

$ORACLE_HOME文件夹后解压

复制编辑rsp文件

db_install.rsp文件

cd $ORACLE_HOME/install/response

cp db_install.rsp /tmp

vim /tmp/db_install.rsp

修改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=/oracle/oraInventory

ORACLE_HOME=/oracle/product/19.3.0/db_1

ORACLE_BASE=/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

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

oracle.install.db.config.starterdb.SID=oracle

静默安装Oracle软件

cd $ORACLE_HOME

./runInstaller -silent -responseFile /tmp/db_install.rsp -ignorePrereq

安装结束后需要以root用户执行以下两个脚本

/oracle/oraInventory/orainstRoot.sh

/oracle/product/19.3.0/db_1/root.sh

配置监听

静默配置监听

netca -silent -responseFile /tmp/netca.rsp

安装数据库

编辑dbca.rsp安装文件

responseFileVersion=/home/oracle/rspfmt_dbca_response_schema_v19.0.0

gdbName=oracle

sid=oracle

templateName=General_Purpose.dbc

emExpressPort=5500

totalMemory=1500

sysPassword=Oracle123

systemPassword=Oracle123

datafileDestination=/oradata

characterSet=ZHS16GBK

nationalCharacterSet=AL16UTF16

databaseType=OLTP

静默安装数据库

dbca -silent -createDatabase -responseFile /tmp/dbca.rsp

检查状态

监听状态

lsnrctl status

数据库与实例状态

sqlplus / as sysdba

select name,db_unique_name,open_mode from v$database;

select instance_name,status from v$instance;


补充:

db_install.rsp

vim ~/db_install.rsp

#这里只截取了安装oracle软件部分
#指定安装选项,INSTALL_DB_SWONLY或INSTALL_DB_AND_CONFIG
oracle.install.option=INSTALL_DB_SWONLY
#指定要为库存目录设置的 Unix 组
UNIX_GROUP_NAME=oinstall
#指定保存清单文件的位置
INVENTORY_LOCATION=/u01/app/oraInventory
#指定 Oracle Home 的完整路径
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
#指定 Oracle Base 的完整路径
ORACLE_BASE=/u01/app/oracle
#指定组件的安装版本,EE或SE2
oracle.install.db.InstallEdition=EE
#指定数据库管理员OSDBA组
oracle.install.db.OSDBA_GROUP=dba
#指定数据库操作员OSOPER组
oracle.install.db.OSOPER_GROUP=oper
#指定数据库备份和恢复OSBACKUPDBA组
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
#指定data guard管理组
oracle.install.db.OSDGDBA_GROUP=dgdba
#指定加密密钥管理OSKMDBA组
oracle.install.db.OSKMDBA_GROUP=kmdba
#指定RAC管理OSRACDBA组
oracle.install.db.OSRACDBA_GROUP=racdba
#指定root脚本执行模式
oracle.install.db.rootconfig.executeRootScript=false

dbca.rsp

vim ~/dbca.rsp

#这里只截取了关键参数
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
#全局数据库名
gdbName=orcltest
#实例名
sid=orcltest
#数据库配置类型, SI\RAC\RACONENODE
databaseConfigType=SI
#是否创建为容器数据库
createAsContainerDatabase=true
#指定要创建的 pdb 数量
numberOfPDBs=1
#指定pdb名称
pdbName=pdb1
#是否为pdb创建本地undo表空间
useLocalUndoForPDBs=true
#pdb管理员密码
pdbAdminPassword=Che_1234
#模板名称,依据$ORACLE_HOME/assistants/dbca/templates/ 目录下文件
templateName=General_Purpose.dbc
#sys用户密码
sysPassword=Che_1234
#system用户密码
systemPassword=Che_1234
#企业管理器配置类型, CENTRAL|DBEXPRESS|BOTH|NONE
emConfiguration=DBEXPRESS
#企业管理器端口号
emExpressPort=5500
#dbsnmp用户密码
dbsnmpPassword=Che_1234
#数据文件位置
datafileDestination=/u01/app/oracle/oradata
#快速恢复区位置
recoveryAreaDestination=/u01/app/oracle/flash_recovery_area
#指定存储类型, FS (CFS for RAC), ASM
storageType=FS
#指定数据库字符集
characterSet=AL32UTF8
#指定国家字符集
nationalCharacterSet=AL16UTF16
#指定要注册数据库的监听
listeners=LISTENER
#是否安装示例数据库模板
sampleSchema=true
#指定数据库安装类型, MULTIPURPOSE|DATA_WAREHOUSING|OLTP
databaseType=OLTP
#分配给Oracle的总内存
totalMemory=4096