暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用rpm包安装Oracle 19C数据库

原创 听见风的声音 2024-09-18
743

1介绍

从Oracle database 18c开始,Linux上单实例Oracle 数据库的安装就可以使用rpm包来进行了。从我接触到的范围来看,这种安装方式好像没有得到广泛的认可和大规模的使用。大部分dba还是使用此前广泛使用的图形化界面或者是静默安装来进行数据库的安装和部署。其中的一个原因是很多应用系统部署的还是Oracle 11G,12C。另一个原因大概是在进行数据库部署时,为了谨慎起见,还是采用自己比较熟悉的方式比较有把握。
其实,使用rpm包安装数据库的步骤比图形化和静默安装都简单了不少,不仅可以减少数据库安装部署的工作量,也可以降低数据库部署的门槛,只要会安装linux软件包,就可以完成数据库的安装。不过,在安装完成之后,需要对数据库的参数进行适当的优化才能投入使用。

2 rpm包安装单实例Oracle数据库的限制

在选择使用rpm包安装数据库之前,最好先了解一下这种安装方式的限制,确认通过这种方式安装的数据库能够满足要求,省得做无用功。根据Oracle官网,这种安装方式有以下几个限制:

  1. 不能用来打补丁。打补丁还是要用Opatch。
  2. 标准版2不提供rpm包。后面这个2是官网上的,具体是什么意思不太清楚。
  3. 不能用来升级数据库。升级数据库还是走以前的升级数据库的流程。
  4. 最后一个不是限制,应该是个说明。这种方式支持在同一台服务器上不同的目录安装多个版本的数据库。

上面这几条限制大概是说了,这种安装方式只能用来安装数据库,不能用来升级或者打补丁,企业版是提供rpm包的,标准版是否支持需要进一步查证。

3 rpm安装包的准备

使用rpm包安装Oracle数据库需要下载两个包,一个是预安装包,一个是安装包。从官网上看到的安装包的名字的一个例子是oracle-database-ee-19c-1.0-1.x86_64.rpm,这里面oracle-database-ee-19c是数据库名字,1.0是版本,-1是发布号,x86_64是处理器架构。出了下载安装包之外,有一个预安装包最好也下载一下。这个包是用来做安装前的准备工作的,不是安装时必须要用到的。但是,使用这个包可以自动完成大部分安装准备工作,少敲很多命令。说得详细一点,这个预安装包可以替我们完成下面几个工作:

  1. 自动下载安装grid和数据库安装需要的软件包。
  2. 创建oracle用户和oinstall、dba组
  3. 设置sysctl.conf、系统启动参数和驱动器参数
  4. 设置软硬资源限制
  5. 根据内核版本设置其它参数
  6. Linux x86_64 机器上在核心中设置numa=off

4 安装oracle-database-preinstall包

使用下面的命令安装预安装包

[root@localhost ~]# rpm -ivh oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm

安装首先检测依赖的软件包是否安装,这次安装就报了以下警告信息

error: Failed dependencies: compat-libcap1 is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 glibc-devel is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 ksh is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 libaio-devel is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 libstdc++-devel is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 nfs-utils is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 psmisc is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 xorg-x11-utils is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64 xorg-x11-xauth is needed by oracle-database-preinstall-19c-1.0-3.el7.x86_64

使用下面的命令安装以下上面显示缺失的软件包

[root@localhost ~]# yum install compat-libcap1 glibc-devel libaio-devel libstdc++-devel nfs-utils psmisc xorg-x11-utils xorg-x11-xauth ksh ...... ...... Complete!

然后再次安装原装包

[root@localhost ~]# rpm -ivh oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm warning: oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ################################# [100%] Updating / installing... 1:oracle-database-preinstall-19c-1.################################# [100%]

5 检查以下安装后的效果

预安装包会完成数据库安装前的准备工作,包括创建用户、设置操作系统核心参数等。这里看一下预安装包对操作系统核心参数的调整。

[root@localhost ~]# sysctl -p fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500

可以看到,核心参数已经改成了Oracle的推荐值,再看一下核心参数的配置文件

[root@localhost etc]# cat sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). # oracle-database-preinstall-19c setting for fs.file-max is 6815744 fs.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 4096 kernel.shmmni = 4096 # oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64 kernel.shmall = 1073741824 # oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64 kernel.shmmax = 4398046511104 # oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317 kernel.panic_on_oops = 1 # oracle-database-preinstall-19c setting for net.core.rmem_default is 262144 net.core.rmem_default = 262144 # oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304 net.core.rmem_max = 4194304 # oracle-database-preinstall-19c setting for net.core.wmem_default is 262144 net.core.wmem_default = 262144 # oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576 net.core.wmem_max = 1048576 # oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2 net.ipv4.conf.all.rp_filter = 2 # oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2 net.ipv4.conf.default.rp_filter = 2 # oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576 fs.aio-max-nr = 1048576 # oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500 net.ipv4.ip_local_port_range = 9000 65500

可以看到,预安装包设置的每一参数前面都有注释说明。

6 使用rpm包安装数据库

oracle-database-preinstall包安装完成后,如果没有报错,下一步就可以使用rpm包安装数据库了。命令及输出如下:

[root@localhost ~]# rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm warning: oracle-database-ee-19c-1.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ################################# [100%] Updating / installing... 1:oracle-database-ee-19c-1.0-1 ################################# [100%] [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 configure

7 运行服务配置脚本创建数据库

rpm包安装完成后,可以使用上面提示的脚本创建数据库,也可以使用数据库创建助手dbca创建数据库。

7.1 使用服务配置脚本创建数据库

[root@localhost init.d]# pwd /etc/init.d ##服务脚本在/etc/init.d目录下 [root@localhost init.d]# ./oracledb_ORCLCDB-19c configure Configuring Oracle Database ORCLCDB. Prepare for db operation 8% complete Copying database files 31% complete Creating and starting Oracle instance 32% complete ...... 46% complete Completing Database Creation 51% complete 54% complete Creating Pluggable Databases 58% complete 77% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /opt/oracle/cfgtoollogs/dbca/ORCLCDB. Database Information: Global Database Name:ORCLCDB System Identifier(SID):ORCLCDB Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details. Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user

数据库创建成功了,数据库的sys密码是自动生成的,需要登录到数据库更改密码。登录到数据库之前需要设置以下环境变量,根据安装命令的输出,设置oracle用户的环境变量如下:

[oracle@localhost ~]$ export ORACLE_SID=ORCLCDB [oracle@localhost ~]$ export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 ##这里不能加反斜线 [oracle@localhost ~]$ export PATH=$PATH:$ORACLE_HOME/bin

设置完之后就可以登录数据库了

[oracle@localhost dbhome_1]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jan 27 22:06:13 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO

7.2 创建非容器数据库

上面用安装助手创建的数据库是容器数据库,安装助手自动创建了一个可插拔的pdb数据库,如果要使用非容器数据库,可以把安装助手创建的数据库drop掉,然后用dbca数据配置助手创建重新创建一个,具体步骤如下:
先删去已创建的数据库,同样是调用安装服务脚本,不同的是,这里执行的delete命令

[root@localhost init.d]# ./oracledb_ORCLCDB-19c delete Detecting existing Listeners... Deleting Oracle Listener.... Detecting existing Oracle Databases... Deleting Oracle Database ORCLCDB. [WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed. Prepare for db operation 32% complete Connecting to database 35% complete ...... 65% complete Updating network configuration files 68% complete Deleting instance and datafiles 84% complete 100% complete Database deletion completed. Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB0.log" for further details.

这个安装服务脚本先删除监听,然后调用dbca删除数据库。删除完成后,就可以使用dbca创建数据库了,先编辑一个响应文件,格式及内容如下

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=ORCL templateName=/opt/oracle/product/19c/dbhome_1/assistants/dbca/templates/General_Purpose.dbc sysPassword=system123 systemPassword=system123 datafileDestination= characterSet=UTF8

响应文件为大多数参数提供了默认值。上面文件里responseFileVersion,templateName是必须填的,其他的都可以采用默认值。使用这个响应文件,创建数据库

[oracle@dbserver ~]$ dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp [WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards. Prepare for db operation 10% complete Copying database files 40% complete Creating and starting Oracle instance 42% complete ...... 60% complete Completing Database Creation 66% complete 69% complete 70% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /opt/oracle/cfgtoollogs/dbca/ORCL. Database Information: Global Database Name:ORCL System Identifier(SID):ORCL Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.

关于sys密码的告警信息并不影响数据库的创建。创建完之后,需要再创建监听,配置以下oracle用户的环境变量就可以登录数据库了。
这里需要注意的一点是,由于上面的响应文件里没有内存设置参数,创建的数据库的内存参数配置是oracle默认的设置,这个设置需要根据服务器的内存配置和数据库的要求进行配置,如果直接使用,很大概率会有性能问题。

最后修改时间:2024-09-18 15:59:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论