CentOS7 安装Oracle12cR2

在CentOS7.8 Minimal版本下安装Oracle Database 12c Release 2

一键安装

CentOS7 安装Oracle12cR2 oracle-single-install.zip


系统环境准备

sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
setenforce 0
egrep "SELINUX=disabled" /etc/selinux/config
systemctl stop firewalld.service && systemctl disable firewalld.service
echo "192.168.3.210 oracle" >> /etc/hosts
hostnamectl --static set-hostname oracle && su

CentOS7 安装Oracle12cR2


更新系统组件

yum update -y


安装必要组件

yum install binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 \
glibc-devel.i686 glibc-devel.x86_64 ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 \
libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 \
libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 wget vim xorg-x11-server-utils -y 

yum -y groupinstall 'X Window System'

wget -O /etc/yum.repos.d/oracle.repo http://public-yum.oracle.com/public-yum-ol7.repo
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
rpm -e --nodeps centos-release-7-8.2003.0.el7.centos.x86_64
yum -y install oracle-database-server-12cR2-preinstall
reboot

#preinstall已自动设置如下
#创建用户 
id oracle
#修改sysctl.conf 
cat /etc/sysctl.conf
#修改limits.conf  12c不再修改/etc/security/limits.conf而是/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
#修改network  
cat /etc/sysconfig/network
#修改grub  
cat /etc/default/grub  
cd /boot/grub2


设置目录

mkdir -p /u01/app/oracle
mkdir -p /u01/app/software
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01


配置环境变量

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

export ORACLE_HOSTNAME=oracle
export ORACLE_UNQNAME=orcl12c
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl12c
export PDB_NAME=ORDERS

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

设置生效

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


关闭邮件检查提示

You have new mail in /var/spool/mail/root

echo "unset MAILCHECK" >> /etc/profile
source /etc/profile


安装Oracle

wget -P /u01/app/software http://192.168.1.3/tools/oracle/12c/linuxx64_12201_database.zip
unzip /u01/app/software/linuxx64_12201_database.zip -d /u01/app/software/
chown -R oracle:oinstall /u01/app/software/database

su - oracle
echo $DISPLAY
export DISPLAY=:0.0
export DISPLAY=192.168.1.2:0.0
xhost +
cd /u01/app/software/database
./runInstaller


CentOS7 安装Oracle12cR2

等几秒钟弹出窗口


CentOS7 安装Oracle12cR2

去掉勾选I wish to receive security update via My Oracle Support


CentOS7 安装Oracle12cR2

Yes


CentOS7 安装Oracle12cR2

创建并配置一个数据库


CentOS7 安装Oracle12cR2

勾选服务类型


CentOS7 安装Oracle12cR2

单实例模式


CentOS7 安装Oracle12cR2

高级安装


CentOS7 安装Oracle12cR2

企业版


CentOS7 安装Oracle12cR2

路径默认


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

默认使用自动内存管理


CentOS7 安装Oracle12cR2

默认使用unicode字符集


CentOS7 安装Oracle12cR2

勾选安装示例数据库


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

开启还原


CentOS7 安装Oracle12cR2

输入复杂性密码


CentOS7 安装Oracle12cR2

下一步


CentOS7 安装Oracle12cR2

自动检查环境


CentOS7 安装Oracle12cR2

点击Install


CentOS7 安装Oracle12cR2

等待安装


CentOS7 安装Oracle12cR2

在root账户下运行两个脚本

cd /u01/app/oraInventory/ 
./orainstRoot.sh

CentOS7 安装Oracle12cR2

cd /u01/app/oracle/product/12.2.0/dbhome_1/
./root.sh

CentOS7 安装Oracle12cR2


CentOS7 安装Oracle12cR2

关闭


配置开机脚本

vim /home/oracle/scripts/dbora.sh
添加
#!/bin/bash
#Oracle startup script
source /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
source oraenv
export ORAENV_ASK=YES
 
startup_log=/home/oracle/scripts/startup.log
shutdown_log=/home/oracle/scripts/shutdown.log
 
function oracle_start(){
    # Start the Oracle database:
    echo "--------------------------------------------------"
    date +" %T %a %D : Starting Oracle Database as part of system up."
    echo "--------------------------------------------------"
    ${ORACLE_HOME}/bin/sqlplus /nolog << EOF
    conn / as sysdba
    startup
    alter pluggable database all open;
    exit
EOF
    echo "Done."
 
    # Start the Listener:
    echo "--------------------------------------------------"
    date +" %T %a %D : Starting Oracle Listeners as part of system up."
    echo "--------------------------------------------------"
    ${ORACLE_HOME}/bin/lsnrctl start
    echo "Done."
    echo "--------------------------------------------------"
    date +" %T %a %D : Finished."
    echo "--------------------------------------------------"
}
 
function oracle_stop(){
    # Stop the Oracle Listener:
    echo "--------------------------------------------------"
    date +" %T %a %D : Stoping Oracle Listeners as part of system up."
    echo "--------------------------------------------------"
    ${ORACLE_HOME}/bin/lsnrctl stop
    echo "Done."
 
    # Stop the Oracle database:
    echo "--------------------------------------------------"
    date +" %T %a %D : Stoping Oracle Database as part of system up."
    echo "--------------------------------------------------"
    ${ORACLE_HOME}/bin/sqlplus /nolog << EOF
    conn / as sysdba
    alter pluggable database all close immediate;
    shutdown immediate
    exit
EOF
    echo "Done."
    echo ""
    echo "--------------------------------------------------"
    date +" %T %a %D : Finished."
    echo "--------------------------------------------------"
}
 
case "$1" in
start)
    echo "Starting Oracle Database ... "
    oracle_start >> $startup_log
    echo "Oracle Started Successfully."
    ;;
stop)
    echo "Stoping Oracle Database ... "
    oracle_stop >> $shutdown_log
    echo "Oracle Stopped."
    ;;
restart)
    echo "Restarting Oracle Database ... "
    oracle_stop >> $shutdown_log
    oracle_start >> $startup_log
    echo "Oracle Restarted."
    ;;
status)
    ${ORACLE_HOME}/bin/lsnrctl status
    ;;
*)
    echo "Usage: $(basename $0) {start|stop|restart|status}"
    exit 1
esac
 
exit 0

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


设置为服务

vim /etc/systemd/system/oracle.service
添加
[Unit]
Description=Oracle Service
After=network.target
After=syslog.target
 
[Service]
User=oracle
Group=dba
Type=oneshot
ExecStart=/home/oracle/scripts/dbora.sh start
ExecReload=/home/oracle/scripts/dbora.sh restart
ExecStop=/home/oracle/scripts/dbora.sh stop
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target

执行
systemctl enable oracle.service


https://IP:5500/em打开界面

CentOS7 安装Oracle12cR2


输入用户名sys 密码是刚输入的复杂性密码

CentOS7 安装Oracle12cR2


升级

#https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=6880880
su - oracle
mkdir /home/oracle/patch
$ORACLE_HOME/OPatch/opatch version
$ORACLE_HOME/OPatch/opatch lspatches
cd $ORACLE_HOME
mv OPatch OPatch.bak
unzip /home/oracle/patch/p6880880_122010_Linux-x86-64.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch lsinventory

tar -cvf oracle_home20200207.tar $ORACLE_HOME
export ORACLE_SID=orcl
lsnrctl stop
sqlplus / as sysdba
shut immediate

#https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=30446254
unzip p30446254_122010_Linux-x86-64.zip
cd /30446254
$ORACLE_HOME/OPatch/opatch apply

lsnrctl start
sqlplus / as sysdba
startup;
alter pluggable database all open;

./datapatch -verbose
$ORACLE_HOME/OPatch/opatch lsinventory



更新日期: 2018年03月05日
文章标签: LinuxOracle
文章链接: https://www.vos.cn/db/197.html  
版权说明:如非注明,本站文章均为vOS原创,转载请注明出处和附带本文链接。