Oracle公司自18c版本提供了基于RPM的安装方式,简化了以往较为复杂的安装过程。假期在家进行了体验,主要的过程包括以下:
1下载必备的文件
2主机环境的准备,包括主机名、用户等;
3软件安装
4创建数据库
5安装后调整
6小结
1下载必备的文件:
下载预安装包:
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
比较奇怪的直接在是官方下载文件中未提供该包。
下载oracle19c的完整安装包:
https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/linux/oracle19c/190000/oracle-database-ee-19c-1.0-1.x86_64.rpm
2主机环境的准备:
2.1官方文档要求:
Creates an oracleuser, and creates the oraInventory (oinstall) and OSDBA (dba) groups for thatuser
Sets hard and softresource limits
Sets numa=off in thekernel for Linux x86_64 machines.
其中系统参数无需设置,由preinstall自动调整。
2.2修改hosts文件/etc/hosts
hosts文件中必须包含主机的全名:
<IP-address> <fully-qualified-machine-name> <machine-name>
2.3创建dba组和oracle用户
groupadd dba
useradd -g dba -m dba
2.4系统设置
主要是对oracle用户的进程数和打开文件数进行设置,操作系统参数已不需要手工设置,执行预安装脚本会自动设置。
vi etc/security/limits.conforacle soft nproc 8192oracle hard nproc 16384oracle soft nofile 8192oracle hard nofile 65536
3软件安装:
注:针对centos8.1,需要事先安装以下包:
compat-libcap1
compat-libstdc++-33
libnsl
3.1 预安装
下载oracle19c的预安装包,数据库官方下载地址未提供该文件,需要单独下载。
curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
执行预安装操作:
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
预安装完成后,检查系统参数设置/etc/sysctl.conf,其中oracle安装需设置的参数已经配置完毕!部分内容如下:
#oracle-database-preinstall-19c setting for fs.file-max is 6815744fs.file-max =6815744#oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'kernel.sem = 250 32000 100 128#oracle-database-preinstall-19c setting for kernel.shmmni is 4096kernel.shmmni = 4096#oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64kernel.shmall =1073741824#oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 onx86_64kernel.shmmax =4398046511104....
3.2正式安装
以root用户执行,以往oracle软件安装默认是以oracle用户来安装,这和以往不同。
yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
若以oracle用户执行,报以下错误:
[oracle@sirius tmp]$ yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
Error: This command has to be run under the root user.
出现以下信息,表示安装成功。
Last metadata expiration check: 0:05:22 ago on Sun 26 Jan 2020 02:48:39 AM EST.Dependencies resolved.===========================================================================================================================================================Package Architecture Version Repository Size===========================================================================================================================================================Installing:oracle-database-ee-19c x86_64 1.0-1 @commandline 2.5 GTransaction Summary===========================================================================================================================================================Install 1 PackageTotal size: 2.5 GInstalled size: 6.9 GDownloading Packages:Running transaction checkTransaction check succeeded.Running transaction testTransaction test succeeded.Running transactionPreparing : 1/1Running scriptlet: oracle-database-ee-19c-1.0-1.x86_64 1/1Installing : oracle-database-ee-19c-1.0-1.x86_64 1/1Running scriptlet: oracle-database-ee-19c-1.0-1.x86_64 1/1[INFO] Executing post installation scripts...[INFO] Oracle home installed successfully and ready to be configured.To configure a sample Oracle Database you can execute the following service configuration script as root:/etc/init.d/oracledb_ORCLCDB-19c configureVerifying : oracle-database-ee-19c-1.0-1.x86_64 1/1Installed:oracle-database-ee-19c-1.0-1.x86_64Complete!
4创建数据库
可以使用以root执行下述命令创建数据库,这种创建方式是复制了oracle提供的模板库,也可以使用传统的方式dbca的方式进行数据库的创建。
/etc/init.d/oracledb_ORCLCDB-19cconfigure
执行前,可以修改其中的配置,本次创建前修改了数据库的字符集和取消了容器数据库的配置,如下:
vi etc/init.d/oracledb_ORCLCDB-19czheyexport CHARSET=ZHS16GBKexport CREATE_AS_CDB=false
开始创建数据库:
./oracledb_ORCLDB-19c configure
[root@siriusinit.d]# ./oracledb_ORCLDB-19c configureConfiguring OracleDatabase ORCLCDB.Prepare for dboperation10% completeCopying databasefiles40% completeCreating andstarting Oracle instance...Completing DatabaseCreation...Executing PostConfiguration Actions100% completeDatabase creationcomplete. For details check the logfiles at:opt/oracle/cfgtoollogs/dbca/ORCLCDB.DatabaseInformation:Global DatabaseName:ORCLCDBSystemIdentifier(SID):ORCLCDBLook at the log file"/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for furtherdetails.Databaseconfiguration completed successfully. The passwords were auto generated,you must change themby connecting to the database using 'sqlplus as sysdba' as the oracle user.
5安装后调整
5.1 在正式使用前,需要修改oracle用户的.bash_profile,增加相关的配置和环境变量,以下为手工添加:
export ORACLE_BASE=/opt/oracleexport ORACLE_HOME=/opt/oracle/product/19c/dbhome_1export ORACLE_SID=ORCLCDBexport LANG=en_US.UTF-8#exportLANG=zh_CN.gb18030export NLS_LANG=american_america.ZHS16GBKexport PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
5.2检查监听器和TNSNAME配置,下述的配置,由oracledb_ORCLDB-19c自动完成配置:
cd $ORACLE_HOME/network/admin
[oracle@siriusadmin]$ cat listener.ora
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =sirius)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))))
[oracle@siriusadmin]$ cat tnsnames.ora
ORCLCDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =sirius)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLCDB)))LISTENER_ORCLCDB =(ADDRESS = (PROTOCOL = TCP)(HOST =sirius)(PORT = 1521))
5.3连接数据库,修改SYS/SYSTEM/DBSNMP用户的口令,锁定不需要使用的用户。
6总结:
基于RPM的安装方式极大的简化了Oracle数据库的安装过程,取消了大部分系统安装前的检查和配置工作,降低了安装和配置的门槛。
但是也有以下的局限性:
安装目录的选择,目前限制在/opt/oracle/product/19c/dbhome_1;
只支持一次性安装,不支持后续升级操作;
未同下载包一并提供安装手册,部分依赖包需提前安装,否则导致实际安装时出现失败;
安装过程的不可配置,而一般公司都会有标准配置,不适用于生产环境。
总的说来,建议RPM的安装方式现阶段还只用于个人环境使用,期待Oracle公司的继续完善。
参考:
https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/removing-rpm-based-database-installation.html#GUID-7F7AECE2-16D5-433A-95BD-972B97955BF7
https://zhuanlan.zhihu.com/p/83927331




