CentOS7.9安装Oracle19c(RPM包方式)


使用 RPM 包方式安装 Oracle 数据库极大的简化了安装过程,还提高了系统的可靠性和可维护性。通过标准化的包管理,可以更好地管理依赖关系、进行系统集成和维护,同时确保安全性和合规性。接下来就介绍一下使用RPM包安装Oracle数据库的方法,亲测好用。

1. 前期准备

Oracle 19c 的官方系统要求:
最低系统要求

  • 内存:至少 4 GB RAM
  • 交换空间:至少 4 GB 交换空间
  • 磁盘空间:至少 15 GB 可用磁盘空间

推荐系统要求

  • 内存:建议 8 GB 或更多 RAM
  • 交换空间:建议 8 GB 或更多交换空间
  • 磁盘空间:建议 20 GB 或更多可用磁盘空间

如果系统内存不足,Oracle 数据库的性能可能会受到影响,表现为响应时间变长、查询速度变慢等。在安装过程中,如果系统内存不足,安装程序可能会因为资源不足而失败。

  • 服务器环境
事项详情
操作系统CentOS 7.9
数据库系统Oracle 19.3.0
CPU/内存2h/4G
数据库根路径/opt/oracle
数据路径/opt/oracle/oradate

这里的数据库相关路径都是采用的默认路径。而且RPM包安装的话,不支持重定位安装位置。使用--prefix选项指定安装路径的话,会提示package oracle-database-ee-19c is not relocatable。指定路径方法后续会进行补充,这里还是采用默认路径。

  • 准备安装包
# Oracle 数据库企业版 (Enterprise Edition) 19c 的 RPM 包。用于在基于 Red Hat 或 CentOS 的 Linux 发行版上安装 Oracle 数据库。
oracle-database-ee-19c-1.0-1.x86_64.rpm

# 这是一个预安装包,用于在基于 Red Hat 或 CentOS 7 的系统上准备环境,以便安装 Oracle 数据库 19c。
# 这个预安装包会自动安装所有必要的依赖项,并配置系统以满足 Oracle 数据库的安装要求。
oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
  • 其他准备

关闭防火墙,禁止防火墙开机自启

systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service -- 禁止防火墙开机启动
systemctl status firewalld.service  -- 查看防火墙状态

关闭selinux

vi /etc/selinux/config        # 编辑文件
SELINUX=disabled              # 修改
  • 准备目录
mkdir -p /opt/oracle
mkdir -p /opt/oracle/oradata

2. 安装数据库系统

  • 首先,将提前下载好的预安装包和安装包一起上传到服务器。
[root@oracle ~]# ll
total 2631544
-rw-------. 1 root root       1380 Nov 19 09:05 anaconda-ks.cfg
-rw-r--r--  1 root root 2694664264 Nov 20 08:57 oracle-database-ee-19c-1.0-1.x86_64.rpm
-rw-r--r--  1 root root      27152 Nov 20 09:22 oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
  • 先安装preinstall-19c预安装包
[root@oracle ~]# 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
error: Failed dependencies:
        bind-utils 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
        smartmontools 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@oracle ~]# 

安装的时候提示报错:缺少bind-utilskshlibaio-develsmartmontoolsxorg-x11-utilsxorg-x11-xauth这几个依赖,所以我们需要先安装上这几个依赖才能安装上预安装包。

# 安装依赖:这里的依赖项可能不同的服务器还不一样,根据提示安装即可。
yum -y install bind-utils ksh libaio-devel smartmontools xorg-x11-utils xorg-x11-xauth

这时候再安装,就可以了。

[root@oracle ~]# 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%]
[root@oracle ~]# 

安装完成后,查看一下oracle用户,查看是否一起生成,并且给oracle用户设置一个密码。

[root@oracle ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

# 设置密码
[root@oracle ~]# passwd oracle
Changing password for user oracle.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

有了oracle用户之后,更改一下安装目录的权限,修改一下属主属组和操作权限。

[root@oracle ~]# cd /opt/
[root@oracle opt]# ll
total 0
drwxr-xr-x 3 root root 21 Nov 21 18:12 oracle
[root@oracle opt]# chown -R oracle:oinstall /opt/oracle
[root@oracle opt]# chmod -R 775 /opt/oracle
[root@oracle opt]# ll
total 0
drwxrwxr-x 3 oracle oinstall 21 Nov 21 18:12 oracle

然后接着安装数据库系统安装包。这个安装包安装的时间会比较长。

[root@oracle ~]# 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

安装完成后,他会提示你安装成功,要配置示例Oracle数据库,可以以root身份执行以下服务配置脚本:/etc/init.d/oracledb_ORCLCDB-19c配置。这里先不着急,先改一下配置再说。

3. 修改配置

  • 配置文件修改

先找到提示的配置脚本oracledb_ORCLCDB-19c的配置文件,在/etc/sysconfig路径下。

[root@oracle ~]# cd /etc/sysconfig/
[root@oracle sysconfig]# ls
anaconda         ip6tables-config   network-scripts                 rsyslog
authconfig       iptables-config    nfs                             run-parts
cbq              irqbalance         ntpdate                         selinux
console          kdump              oracle-database-preinstall-19c  smartmontools
cpupower         kernel             oracledb_ORCLCDB-19c.conf       sshd
crond            man-db             rdisc                           svnserve
ebtables-config  modules            readonly-root                   sysstat
firewalld        netconsole         rpcbind                         sysstat.ioconf
grub             network            rpc-rquotad                     trace-cmd.conf
init             network.orabackup  rsyncd                          wpa_supplicant

找到对应的配置文件oracledb_ORCLCDB-19c.conf,进行操作之前先拷贝一份。

cp oracledb_ORCLCDB-19c.conf oracledb_ORCL-19c.conf 

这里将oracledb_ORCLCDB-19c.conf拷贝出一份并重命名成oracledb_ORCL-19c.conf主要考虑操作文件备份,还有就是为初始数据库实例名改为ORCL做准备,这一步是非必须的。

查看配置文件内容。

[root@oracle sysconfig]# cat oracledb_ORCL-19c.conf 
#This is a configuration file to setup the Oracle Database. 
#It is used when running '/etc/init.d/oracledb_ORCLCDB configure'.
#Please use this file to modify the default listener port and the
#Oracle data location.

# LISTENER_PORT: Database listener 
LISTENER_PORT=1521  # 监听器端口号        

# ORACLE_DATA_LOCATION: Database oradata location
ORACLE_DATA_LOCATION=/opt/oracle/oradata    # 数据文件存储位置。

# EM_EXPRESS_PORT: Oracle EM Express listener     # EM监听端口
EM_EXPRESS_PORT=5500

配置文件中的三个配置项:

  • LISTENER_PORT 是 Oracle 数据库监听器(Listener)使用的端口号。默认情况下,Oracle 监听器使用的是 1521 端口,可以根据需要进行更改。
  • ORACLE_DATA_LOCATION 是指 Oracle 数据库的数据文件存储位置。这些数据文件通常包括数据文件(.dbf)、控制文件(.ctl)和日志文件(.log)。通常情况下会默认一个路径,比如:/opt/oracle/oradata。也可以根据需要进行自定义。
  • EM_EXPRESS_PORT 是 Oracle Enterprise Manager (EM) Express 的监听端口。EM Express 是一个轻量级的 Web 界面,用于管理和监控 Oracle 数据库。默认情况下,EM Express 使用的端口号是 5500,可以根据需要进行更改。
  • 脚本文件修改

oracledb_ORCLCDB-19c脚本文件也也要进行类似的处理。先拷贝重命名,再对脚本内的一些内容进行替换。

# 拷贝重命名
cp oracledb_ORCLCDB-19c oracledb_ORCL-19c 

# 将脚本文件中的 ORCLCDB 和 ORCLPDB1 全局替换成 ORCL
# 进入命令行模式操作
:%s/ORCLCDB/ORCL/g 
:%s/ORCLPDB1/ORCL/g 

还有就行下面几个配置参数的调整,主要修改字符集和是否创建容器:

export ORACLE_VERSION=19c
export ORACLE_SID=ORCL
export TEMPLATE_NAME=General_Purpose.dbc
export CHARSET=AL32UTF8         # 字符集改成 ZHS16GBK
export PDB_NAME=ORCL
export LISTENER_NAME=LISTENER
export NUMBER_OF_PDBS=1
export CREATE_AS_CDB=true      # false,不创建容器

修改完成后保存,退出。

4. 初始化数据库系统 / 安装数据库实例

修改完实例配置后,开始配置创建数据库。过程比较长,大概几分钟要,等待安装结束即可。

[root@oracle init.d]# /etc/init.d/oracledb_ORCL-19c configure
Configuring Oracle Database ORCL.
Prepare for db operation
10% complete
Copying database files
40% complete
Creating and starting Oracle instance
42% complete
46% complete
50% complete
54% complete
60% complete
Completing Database Creation
66% 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.

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.

这个oracledb_ORCL-19c脚本实际上是一个管理脚本,可以对数据库进行启停管理。

[root@oracle init.d]# /etc/init.d/oracledb_ORCL-19c config
Usage: /etc/init.d/oracledb_ORCL-19c {start|stop|restart|configure|delete}

# 不同的指令表示不同的管理操作
/etc/init.d/oracledb_ORCL-19c config        # 查看管理命令
/etc/init.d/oracledb_ORCL-19c start         # 开启db
/etc/init.d/oracledb_ORCL-19c stop          # 停止db
/etc/init.d/oracledb_ORCL-19c restart       # 重启db
/etc/init.d/oracledb_ORCL-19c delete        # 删除db
/etc/init.d/oracledb_ORCL-19c configure     # 配置创建db

5. 环境变量配置

首先从root用户切换到oracle用户,然后编辑其.bash_profile配置文件。

# 切换到oracle用户
[root@oracle init.d]# su - oracle
Last login: Fri Nov 22 09:36:24 CST 2024 on pts/0
[oracle@oracle ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .kshrc  .oracle_jre_usage

# 编辑配置文件内容
[oracle@oracle ~]$ vim .bash_profile 

# 将下列参数插入到配置文件末尾
export LANG=en_US
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_UNQNAME=ORCL
export ORACLE_SID=ORCL
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin

# 插入完成之后保存退出,执行source .bash_profile命令使配置文件生效。
source .bash_profile

6. 登录验证

执行sqlplus / as sysdba命令测试能否登录。

[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 22 10:16:57 2024
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> 

查看系统默认用户

SQL> select username from dba_users where account_status='OPEN';

USERNAME
--------------------------------------------------------------------------------
SYS
SYSTEM

系统默认用户:

  • SYS 用户拥有最高的权限,相当于超级用户。拥有 SYSDBA 和 SYSOPER 角色,可以执行几乎所有的数据库管理和操作任务。可以访问和修改数据库的内部结构和元数据。不推荐使用普通方式连接 SYS 用户,以避免误操作。
  • SYSTEM 用户也是一个管理员用户,但权限略低于 SYS 用户。拥有 DBA 角色,可以执行大多数数据库管理和操作任务。不能访问和修改数据库的内部结构和元数据。
  • 在安装完成后立即更改 SYS 和 SYSTEM 用户的默认密码。
SQL> alter user sys identified by 123456;               # 修改密码为123456
User altered.
SQL> alter user system identified by 123456;            # 修改密码为123456
User altered.

7. 设置开机自启动

/etc/rc.d/rc.local文件中添加启动命令。

su root -lc '/etc/init.d/oracledb_ORCL-19c start'

这里需要注意的是该文件需要添加执行权限才能使用。

chmod +x /etc/rc.d/rc.local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值