使用 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
。指定路径方法后续会进行补充,这里还是采用默认路径。
- 准备安装包
- oracle19C官网下载地址:
https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html- preinstall-19c 下载地址:https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html
# 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-utils
、ksh
、libaio-devel
、smartmontools
、xorg-x11-utils
、xorg-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