配置安装环境
#!/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