介绍
Oracle数据库是企业级数据库管理系统。本文将详细介绍如何在Linux系统上通过RPM包安装Oracle数据库,包括系统准备、安装依赖、安装Oracle数据库软件及配置步骤。
环境准备
在开始安装之前,需要确保你的系统满足Oracle数据库的安装要求,并进行一些初步的设置。
系统要求
- 操作系统: Oracle Linux, Red Hat Enterprise Linux (RHEL), CentOS
- 内存: 至少2GB(建议4GB以上)
- 磁盘空间: 至少15GB可用空间
1. 创建用户、用户组以及安装目录
Oracle数据库软件的安装和运行需要特定的用户和用户组。
-
创建用户组和用户
创建
oinstall
和dba
用户组,以及Oracle用户:sudo groupadd oinstall sudo groupadd dba sudo useradd -g oinstall -G dba oracle sudo passwd oracle
示例输出:
Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully.
-
设置安装目录
创建Oracle安装目录:
sudo mkdir -p /opt/oracle sudo chown -R oracle:oinstall /opt/oracle
2. 安装依赖包
Oracle数据库安装需要一些依赖包。可以使用YUM工具来安装这些包。
-
下载所需的RPM包
从Oracle官方网站下载Oracle数据库19c RPM包和预安装RPM包:
Oracle下载地址 -
安装依赖包
在下载目录下安装Oracle预安装包,这将自动安装所需的依赖包:
sudo yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
示例输出:
Loaded plugins: fastestmirror Examining oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm: oracle-database-preinstall-19c-1.0-1.el7.x86_64 Marking oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package oracle-database-preinstall-19c.x86_64 0:1.0-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================== Installing: oracle-database-preinstall-19c x86_64 1.0-1.el7 /oracle-database-preinstall-19c-1.0-1.el7.x86_64 19 k Transaction Summary ======================================================================================================================================================== Install 1 Package Total size: 19 k Installed size: 42 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : oracle-database-preinstall-19c-1.0-1.el7.x86_64 1/1 Verifying : oracle-database-preinstall-19c-1.0-1.el7.x86_64 1/1 Installed: oracle-database-preinstall-19c.x86_64 0:1.0-1.el7 Complete!
3. 安装Oracle数据库
-
安装Oracle数据库RPM包
切换到下载目录,并使用以下命令安装Oracle数据库:
sudo yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
示例输出:
Loaded plugins: fastestmirror Examining oracle-database-ee-19c-1.0-1.x86_64.rpm: oracle-database-ee-19c-1.0-1.x86_64 Marking oracle-database-ee-19c-1.0-1.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package oracle-database-ee-19c.x86_64 0:1.0-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================== Installing: oracle-database-ee-19c x86_64 1.0-1 /oracle-database-ee-19c-1.0-1.x86_64 5.4 G Transaction Summary ======================================================================================================================================================== Install 1 Package Total size: 5.4 G Installed size: 5.4 G Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : oracle-database-ee-19c-1.0-1.x86_64 1/1 Verifying : oracle-database-ee-19c-1.0-1.x86_64 1/1 Installed: oracle-database-ee-19c.x86_64 0:1.0-1 Complete!
安装完成后,Oracle数据库软件将安装在
/opt/oracle
目录下。 -
配置Oracle数据库
初始化并配置Oracle数据库:
sudo /etc/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 36% complete 40% complete 43% 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.
4. 配置环境变量
-
设置Oracle用户的环境变量
切换到Oracle用户,并编辑
.bash_profile
文件:su - oracle vi ~/.bash_profile
添加以下内容:
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin export ORACLE_SID=ORCLCDB
保存并退出,然后加载配置:
source ~/.bash_profile
5. 启动和停止Oracle服务
启动和停止Oracle服务是数据库管理员的常见任务。在Oracle数据库安装和配置完成后,可以通过以下步骤来启动和停止Oracle数据库服务。
启动数据库
-
使用系统管理工具启动
作为root用户或具有适当权限的用户,使用以下命令启动Oracle数据库服务:
sudo systemctl start oracledb_ORCLCDB-19c
示例输出(如果服务已经启动):
Job for oracledb_ORCLCDB-19c.service failed because the control process exited with error code. See "systemctl status oracledb_ORCLCDB-19c.service" and "journalctl -xe" for details.
-
手动启动数据库
也可以手动启动数据库实例:
-
切换到Oracle用户:
su - oracle
-
使用SQL*Plus连接到数据库并启动:
sqlplus / as sysdba
在SQL*Plus中执行以下命令:
STARTUP;
示例输出:
ORACLE instance started. Total System Global Area 1577058304 bytes Fixed Size 8895304 bytes Variable Size 956301320 bytes Database Buffers 603979776 bytes Redo Buffers 7876608 bytes Database mounted. Database opened.
-
启动监听器
-
启动监听器
切换到Oracle用户,并启动监听器:
su - oracle lsnrctl start
示例输出:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 06-JUN-2024 06:10:58 Copyright (c) 1991, 2024, Oracle. All rights reserved. Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora Log messages written to /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 06-JUN-2024 06:10:59 Uptime 0 days 0 hr. 0 min. 1 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora Listener Log File /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) The listener supports no services The command completed successfully
2. **查看监听器状态**
确认监听器是否已启动:
```bash
lsnrctl status
示例输出:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 06-JUN-2024 06:11:30
Copyright (c) 1991, 2024, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 06-JUN-2024 06:10:59
Uptime 0 days 0 hr. 0 min. 31 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLCDBXDB" has 1 instance(s).
Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully
停止Oracle服务
停止数据库
-
使用系统管理工具停止
作为root用户或具有适当权限的用户,使用以下命令停止Oracle数据库服务:
sudo systemctl stop oracledb_ORCLCDB-19c
示例输出(如果服务已经停止):
Warning: Stopping oracledb_ORCLCDB-19c.service, but it can still be activated by: oracledb_ORCLCDB-19c.path
-
手动停止数据库
也可以手动停止数据库实例:
-
切换到Oracle用户:
su - oracle
-
使用SQL*Plus连接到数据库并停止:
sqlplus / as sysdba
在SQL*Plus中执行以下命令:
SHUTDOWN IMMEDIATE;
示例输出:
Database closed. Database dismounted. ORACLE instance shut down.
-
停止监听器
-
停止监听器
切换到Oracle用户,并停止监听器:
su - oracle lsnrctl stop
示例输出:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 06-JUN-2024 06:12:00 Copyright (c) 1991, 2024, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) The command completed successfully
6. 验证安装
-
登录数据库
切换到Oracle用户,并使用
sqlplus
工具登录数据库:sqlplus / as sysdba
示例输出:
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 6 06:12:30 2024 Version 19.3.0.0.0 Copyright (c) 1982, 2024, 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*Plus中运行以下命令,验证数据库状态:
SELECT name, open_mode FROM v$database;
示例输出:
NAME OPEN_MODE --------- -------------------- ORCLCDB READ WRITE
7. 开通Linux端口
-
开通防火墙端口
如果使用的是Firewalld,可以使用以下命令开通Oracle监听器默认端口1521:
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent sudo firewall-cmd --reload
示例输出:
success
总结
通过以上步骤,你已经成功地在Linux系统上通过RPM包安装并配置了Oracle数据库。确保按照每一步骤进行操作,以避免安装过程中出现问题。如果遇到任何问题,请查阅Oracle官方文档或社区支持。
希望这个指南能帮助你顺利安装和配置Oracle数据库。如果有任何问题或建议,请在评论区留言。