大家好,我是明哥!
最近自己在某台 Centos7上安装了 Oracle 19c, 特地整理记录了下过程,跟大家分享下。(卷一下,搞大数据的,怎么能不懂 RDBMS扛把子 Oracle 的方方面面,哈哈)
01 Oracle 安装方式概述
Oracle的安装,一般使用官方提供的Oracle Universal Installations (OUI) 来进行安装,OUI支持图形化的安装和非图形化的静默安装两种方式。
图形化的安装方式是向导式的比较直观,但需要在服务器上安装图形组件比如Gnome,且需要配置运行级别runLevel为多用户图形级别,此时对服务器资源消耗较大,所以在服务器没有安装图形组件时,或者在大规模批量安装部署数据库时,一般都选用静默安装。
本文重点讲述静默安装。
02 Oracle OUI 静默安装要点概述
Oracle OUI 静默安装,即 Oracle OUI Silent Installations,之所以能实现静默,是因为底层通过三个 response files 指定了一些必需的配置项的具体设置,管理员可以通过修改这三个 response file,针对自己的情况进行定制配置,从而实现静默安装。
这三个 response files,说明如下:
- $ORACLE_HOME/install/response/db_install.rsp: 静默式安装或升级 oracle 二进制包时使用;
- $ORACLE_HOME/assistants/dbca/dbca.rsp: 静默式安装、配置、删除数据库实例时使用;
- $ORACLE_HOME/assistants/netca/netca.rsp: 静默式配置 oracle 数据库的网络监听时使用;
在执行静默安装前,最好备份这三个文件。
03 Oracle 正式安装前软硬件配置检查和资源下载
该步骤是正式安装前的准备工作,主要涉及一些软硬件配置检查(硬件资源的检查和一些软件配置项的更改),以及 oracle 安装包的下载。
- 检查硬件配置:
- 内存至少8G: grep MemTotal /proc/meminfo
- SWAP分区至少8G: grep SwapTotal /proc/meminfo
- 磁盘空间至少10g,其中/tmp目录下空间至少2g: df -h
- 配置 /etc/hosts 和 /etc/hostname;
- 配置 selinux 为permissive或disabled:涉及文件/etc/selinux/config 和命令 setenforce Permissive
- 关闭防火墙:systemctl stop/disalbe firewalld
- 确认操作系统版本,并下载对应版本的 preinstall rpm包(该rpm 包可以用来在正式安装前执行一些必要的配置);
- 下载 oracle19c 的二进制zip安装包;
说明:
- preinstall rpm 包下载链接如下:https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
- zip 安装包的下载链接如下:https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
04 Oracle正式安装前的准备工作
该步骤是正式安装前的准备工作,主要涉及一些依赖包的安装,Oracle运行时必需目录的创建和赋权,oracle系统用户的创建和环境变量的配置,以及一些辅助脚本的创建及赋权。
- 执行安装前自动配置:yum localinstall ./oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
注意:该步骤自动在操作系统上创建了oracle系统用户;
- 创建oracle运行时必需的目录并赋权;
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 mkdir -p /u02/oradata mkdir /u02/flash_recovery_area chown -R oracle:oinstall /u01 /u02 chmod -R 775 /u01 /u02
- 创建配置环境变量的辅助脚本,和数据库启停的辅助脚本,并赋权:
mkdir /home/oracle/scripts touch /home/oracle/scripts/setEnv.sh touch /home/oracle/scripts/start_all.sh touch /home/oracle/scripts/stop_all.sh chown -R oracle:oinstall /home/oracle/scripts chmod u+x /home/oracle/scripts/*.sh 上述脚本具体内容如下: cat > /home/oracle/scripts/setEnv.sh <<EOF # Oracle Settings export TMP=/tmp export TMPDIR=\$TMP export ORACLE_HOSTNAME=uf30-2 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=ORA19C 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 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
- 配置环境变量 /home/oracle/.bash_profile,引用上述环境变量配置辅助脚本:
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
- 配置完成后,相关脚本内容截图如下:
注意:
- 上述环境变量辅助脚本 setEnv 中的配置项 ORACLE_SID=ORA19C 和 PDB_NAME=PORA19C1,跟后文 dbca 配置文件$oracle_home/assistants/dbca/dbca.rsp 中的配置项sid=ORA19C 和pdbName=PORA19C1 是一一呼应的。
05 使用 runInstaller 安装 Oracle 二进制软件包
说明:
- 以下操作,需要切换为 oracle 系统用户再进行操作;
- Oracle 系统用户,是前一个步骤安装 preinstall rpm 包时自动创建的
- Oracle 系统用户的密码,管理员可以手动通过命令进行设置 (passwd oracle)
以下是详细安装步骤。
- 解压下载的oracle19c的二进制zip包到 $ORACLE_HOME目录下;
- 配置静默安装配置文件 db_install.rsp,更改前最好备份,重点修改项如下:
oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory 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=oinstall oracle.install.db.OSOPER_GROUP=oinstall oracle.install.db.OSBACKUPDBA_GROUP=oinstall oracle.install.db.OSDGDBA_GROUP=oinstall oracle.install.db.OSKMDBA_GROUP=oinstall oracle.install.db.OSRACDBA_GROUP=oinstall oracle.install.db.rootconfig.executeRootScript=false
- 执行静默安装前,可以执行以下命令,检查各种配置项是否配置正确: /u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -executePrereqs -silent -responseFile /u01/app/oracle/product/19.0.0/db_1/install/response/db_install.rsp
- 执行静默安装
- 可以使用以下命令安装,此时其实就是传统的互动式的GUI界面安装方式:./runInstaller
- 静默安装命令:/u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
- 也可以不更改配置文件 db_install.rsp 或只更改该配置文件中部分配置项,然后在执行runInstaller命令时在命令行指定配置项,比如:
/u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -ignorePrereq -waitforcompletion -silent -responseFile ${ORACLE_HOME}/install/response/db_install.rsp oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=${ORACLE_HOSTNAME} UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=${ORA_INVENTORY} SELECTED_LANGUAGES=en,en_GB ORACLE_HOME=${ORACLE_HOME} ORACLE_BASE=${ORACLE_BASE} oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=oinstall oracle.install.db.OSBACKUPDBA_GROUP=oinstall oracle.install.db.OSDGDBA_GROUP=oinstall oracle.install.db.OSKMDBA_GROUP=oinstall oracle.install.db.OSRACDBA_GROUP=oinstall SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
- 根据runInstaller安装时的提示,切换使用root执行提示中的两个脚本文件
- 从执行结果的提示可以看出,root.sh执行时创建了配置文件 /etc/oratab,
- 配置文件/etc/oratab,是 oracle 运行时的一个比较重要的配置文件,后续的 dbca 命令会更新该配置文件。
- 使用s qlplus 验证软件包安装结果 上述步骤完成后,oracle所有的二进制文件都已经安装完毕,可以通过sqlplus命令验证下安装结果: