CentOS系统上安装配置Oracle数据库的详细教程
1. 前置条件
- CentOS系统(本教程基于CentOS 7)
- Oracle数据库zip安装文件(下载地址: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html)
- 配置好的YUM源
2. 安装依赖包
在安装Oracle数据库之前,需要先安装一些系统依赖包。
sudo yum install -y binutils \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33.i686 \
gcc \
gcc-c++ \
glibc \
glibc.i686 \
glibc-devel \
glibc-devel.i686 \
ksh \
libaio \
libaio.i686 \
libgcc \
libgcc.i686 \
libstdc++ \
libstdc++.i686 \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel
3. 安装配置Oracle数据库
- 解压Oracle数据库zip包
unzip /path/to/oracle/database.zip -d /path/to/destination/
- 创建安装响应文件db_install.rsp
```
[oracle@hostname ~]$ vi ~/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
ORACLE_HOSTNAME={hostname}
ORACLE_UNQNAME={oracle_sid}
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
```
其中,{hostname}和{oracle_sid}需要分别替换为主机名和Oracle的SID。
- 运行安装文件
[oracle@hostname ~]$ /path/to/destination/database/runInstaller -silent -showProgress -ignoreSysPrereqs -responseFile ~/db_install.rsp
- 执行Oracle数据库配置脚本
[oracle@hostname ~]$ /u01/app/oraInventory/orainstRoot.sh
[oracle@hostname ~]$ /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
4. 验证Oracle数据库安装
- 切换到Oracle用户
[oracle@hostname ~]$ su - oracle
- 启动Oracle
[oracle@hostname ~]$ sqlplus / as sysdba
SQL> startup
- 连接Oracle数据库
[oracle@hostname ~]$ sqlplus / as sysdba
- 查看Oracle版本
SQL> select * from v$version;
示例输出:
```
BANNER CON_ID
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0
Version 19.3.0.0.0
```
说明Oracle数据库已成功安装并启动。
5. 配置Oracle数据库实例
在Oracle数据库中,实例是指由SGA和后台进程组成的一组内存结构和进程。通常需要为不同的应用程序配置不同的实例。
- 创建pfile
SQL> create pfile='/u01/app/oracle/product/19.3.0/dbhome_1/dbs/init{oracle_sid}.ora' from spfile;
- 编辑pfile
[oracle@hostname ~]$ vi /u01/app/oracle/product/19.3.0/dbhome_1/dbs/init{oracle_sid}.ora
修改以下参数:
db_name={oracle_sid}
db_domain={domain_name}
memory_target={memory_target}
sga_target={sga_target}
pga_aggregate_target={pga_target}
db_create_file_dest={datafile_dest}
db_recovery_file_dest={flash_recovery_dest}
db_recovery_file_dest_size={flash_recovery_dest_size}
- 启动实例
SQL> startup pfile='/u01/app/oracle/product/19.3.0/dbhome_1/dbs/init{oracle_sid}.ora';
- 查看实例状态
SQL> select instance_name,status from v$instance;
示例输出
```
INSTANCE_NAME STATUS
{oracle_sid} OPEN
```
说明实例已成功启动。
6. 配置Oracle数据库监听
Oracle数据库监听是监听来自网络上客户端连接请求的进程。客户端通过监听可以访问Oracle数据库实例。
- 编辑监听文件listener.ora
[oracle@hostname ~]$ vi /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
添加以下内容:
LISTENER={oracle_sid}_listener
(
DESCRIPTION=
(
ADDRESS=(PROTOCOL=tcp)(HOST={ip})(PORT={port})
)
)
其中,{oracle_sid}需要替换为Oracle的SID,{ip}需要替换为主机的IP地址,{port}需要替换为监听的端口号。
- 编辑tnsnames.ora
[oracle@hostname ~]$ vi /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
添加以下内容:
{oracle_sid} =
(
DESCRIPTION=
(
ADDRESS=(PROTOCOL=tcp)(HOST={ip})(PORT={port})
)
(
CONNECT_DATA=
(
SERVICE_NAME={oracle_sid}
)
)
)
- 启动监听
[oracle@hostname ~]$ lsnrctl start {oracle_sid}_listener
示例输出:
```
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-JUN-2022 15:59:47
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /u01/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/19.3.0/diag/tnslsnr/hostname/{oracle_sid}_listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST={ip})(PORT={port})))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={ip})(PORT={port})))
STATUS of the LISTENER
Alias {oracle_sid}_listener
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 01-JUN-2022 15:59:47
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service {oracle_sid}
Listener Parameter File /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/19.3.0/diag/tnslsnr/hostname/{oracle_sid}_listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST={ip})(PORT={port})))
The listener supports no services
The command completed successfully
```
- 验证监听是否正常
[oracle@hostname ~]$ lsnrctl status {oracle_sid}_listener
示例输出:
```
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-JUN-2022 16:13:09
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
Alias {oracle_sid}_listener
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 01-JUN-2022 15:59:47
Uptime 0 days 0 hr. 13 min. 21 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/19.3.0/diag/tnslsnr/hostname/{oracle_sid}_listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST={ip})(PORT={port})))
The listener supports no services
The command completed successfully
```
说明监听已成功启动。
示例说明:
示例一: 安装Oracle数据库
小明需要在自己的CentOS7服务器上安装Oracle 19c数据库,并启动实例和监听,以便为自己的应用程序提供数据库服务。
他首先在Oracle官网下载了19c数据库zip安装文件,并解压到/u01/oracle/database目录下。
然后,他按照教程中的指导,依次安装了系统依赖包,创建了安装响应文件db_install.rsp,并运行安装文件,并执行了Oracle数据库配置脚本。
接下来,小明切换到Oracle用户,启动了Oracle数据库,并连接了Oracle数据库实例,并查看了Oracle版本。
最后,他为自己的应用程序配置了一个实例,并配置了监听。
示例二:验证Oracle数据库安装
小红在服务器上安装了Oracle数据库,并按照教程中的步骤启动了实例和监听。
为了验证数据库是否已经成功安装并启动,她使用sqlplus连接到了数据库实例,并查询了数据库版本信息,证明数据库已经成功安装并启动。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS系统上安装配置Oracle数据库的详细教程 - Python技术站