# CentOS Stream 8 安装Oracle 19C后的配置工作(rpm安装模式及静默模式安装通用)

CentOS Stream 8 安装Oracle 19C后的配置工作(rpm安装模式及静默模式安装通用)

1。环境变量配置(环境变量不配置,无法使用SQLPLUS命令)
 1.1 rpm模式

#使用root用户打开profile文件进行编辑
vim /etc/profile
#文件最后面增加以下内容
export  ORACLE_HOME=/opt/oracle/product/19c/dbhome_1	#rpm包安装后oracle的默认安装位置
export  PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin
export  ORACLE_SID=ORCLCDB	#安装后默认的SID

 1.2 静默模式

#使用root用户打开profile文件进行编辑
vim /etc/profile
#文件最后面增加以下内容
export  ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1	#静默模式安装前必须建立的目录
export  PATH=$PATH:/u01/app/oracle/product/19.3.0/dbhome_1/bin
export  ORACLE_SID=orcl	#安装后默认的SID

2.Oracle用户进入终端,查看监听状态,启动监听,停止监听

 2.1查看监听状态

[oracle@Test2CentOSStream8 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 16:52:04

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.138)(PORT=1521)))
TNS-12543: TNS:destination host unreachable
 TNS-12560: TNS:protocol adapter error
  TNS-00513: Destination host unreachable
   Linux Error: 113: No route to host
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@Test2CentOSStream8 ~]$ 

 2.2启动监听

[oracle@Test2CentOSStream8 ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 17:03:53

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/diag/tnslsnr/Test2CentOSStream8/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.138)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
 TNS-12560: TNS:protocol adapter error
  TNS-00515: Connect failed because target host or object does not exist
   Linux Error: 99: Cannot assign requested address

Listener failed to start. See the error message(s) above...

[oracle@Test2CentOSStream8 ~]$ 

备注:首先查看监听状态,如果状态不正常可以尝试启动监听。启动后根据启动信息排查失败原因。经过排查,本机ip地址为192.168.133.141,但是监听文件中的ip是192.168.133.138。修改监听文件ip

[oracle@Test2CentOSStream8 ~]$ vim /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora 

修改完成后启动监听

[oracle@Test2CentOSStream8 ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 17:09:15

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/diag/tnslsnr/Test2CentOSStream8/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.141)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.141)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-OCT-2022 17:09:22
Uptime                    0 days 0 hr. 0 min. 5 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/diag/tnslsnr/Test2CentOSStream8/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.141)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@Test2CentOSStream8 ~]$ 

启动后再次查看监听状态为正常

[oracle@Test2CentOSStream8 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 17:10:59

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.141)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-OCT-2022 17:09:22
Uptime                    0 days 0 hr. 1 min. 42 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/diag/tnslsnr/Test2CentOSStream8/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.141)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@Test2CentOSStream8 ~]$ 

3.oracle用户进入终端,使用Sysdba登录

[oracle@Test2CentOSStream8 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 17:17:36 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> 

4.查看实例状态

SQL> select status from v&instance;
Enter value for instance: orcl
old   1: select status from v&instance
new   1: select status from vorcl
select status from vorcl
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0


SQL> 

5.启动实例(关闭实例使用shutdown

SQL> startup;
ORACLE instance started.

Total System Global Area 2449469680 bytes
Fixed Size		    9138416 bytes
Variable Size		  570425344 bytes
Database Buffers	 1862270976 bytes
Redo Buffers		    7634944 bytes
Database mounted.
Database opened.

6.再次查看实例状态

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> 

7.以上所有操作完成后,就可以尝试使用客户端登录服务器,看是否可以正常连接。不管是客户端使用sqlplus命令登录或者使用图形化界面客户端登录,只需要确保能正常访问就说明正常了。如果连接不上,就得要解决该问题,以保证客户端必须能够正常访问服务器数据库。

8.解锁账户,重置密码

使用sysdba登录

[oracle@TestCentOSStream8 ~]$ sqlplus  / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 20:02:52 2022
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> 

解锁system账户

SQL> alter user system account unlock;

User altered.

SQL> 

修改system账户密码

SQL> alter user system identified by oracle_3301;

User altered.

SQL>

尝试切换登录(必须要确成功)

SQL> conn system/oracle_3301;
Connected.
SQL> 

9.以上所有步骤完成后,只能说明数据库以及数据库状态已经处于正常状态了,但是,客户端不一定能连接上。下面步骤就是处理客户端连接服务器失败的解决思路
 9.1 服务器本机尝试登录(如果服务器本机访问都失败,远程访问该服务器肯定也是失败的)

[oracle@TestCentOSStream8 ~]$ sqlplus system/oracle_3301@127.0.0.1:1521/orcl

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 20:09:36 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-12541: TNS:no listener


Enter user-name: 

&ensp9.2 远程访问服务器

[oracle@Test2CentOSStream8 ~]$ sqlplus system/oracle@192.168.133.138:1521/orcl

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 20:06:43 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-12543: TNS:destination host unreachable


Enter user-name: 

注意:以上不管是服务器访问自身还是客户端访问该服务器都失败,这种情况一般要么是oracle端口不通,要么是监听有问题。关于端口这一块,非常不建议直接额关闭防火墙。因为Linux系统得要非常注重安全!(服务器自身访问自身的ip或者端口肯定是成功的,也没有必要。主要是客户端访问服务器必须要保证ip与端口通畅)

 9.3 检查网络是否通畅

[oracle@Test2CentOSStream8 ~]$ ping 192.168.133.141
PING 192.168.133.141 (192.168.133.141) 56(84) bytes of data.
64 bytes from 192.168.133.141: icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from 192.168.133.141: icmp_seq=2 ttl=64 time=0.083 ms
64 bytes from 192.168.133.141: icmp_seq=3 ttl=64 time=0.062 ms
64 bytes from 192.168.133.141: icmp_seq=4 ttl=64 time=0.146 ms
^C
--- 192.168.133.141 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3112ms
rtt min/avg/max/mdev = 0.062/0.090/0.146/0.034 ms
[oracle@Test2CentOSStream8 ~]$ 

 9.4 检查端口是否通畅(如果telnet没有安装,则使用root权限执行:dnf install telnet 即可安装

[oracle@Test2CentOSStream8 ~]$ telnet 192.168.133.138 1521
Trying 192.168.133.138...
telnet: connect to address 192.168.133.138: No route to host
[oracle@Test2CentOSStream8 ~]$ 

注意:以上网络通畅,但是1521端口不通
 9.5 防火墙添加放行1521端口访问,重新加载防火墙,最后查看是否放行成功

[root@TestCentOSStream8 ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
success
[root@TestCentOSStream8 ~]# firewall-cmd --reload 
success
[root@TestCentOSStream8 ~]# firewall-cmd --zone=public --query-port=1521/tcp
yes

 9.6 selinux放行1521端口并查看是否放行成功

[root@Test2CentOSStream8 ~]# semanage port -a -t ssh_port_t -p tcp 1521
3ValueError: 已定义端口 tcp/1521
[root@Test2CentOSStream8 ~]# semanage port -l |grep 1521
oracle_port_t                  tcp      1521, 2483, 2484
oracle_port_t                  udp      1521, 2483, 2484
[root@Test2CentOSStream8 ~]# 

 9.7重启防火墙

[root@TestCentOSStream8 ~]# systemctl restart firewalld.service 
[root@TestCentOSStream8 ~]# 

 9.8 查看1521端口是否通畅

[oracle@Test2CentOSStream8 ~]$ telnet 192.168.133.138 1521
Trying 192.168.133.138...
Connected to 192.168.133.138.
Escape character is '^]'.

可以看到,1521端口已经通了。现在ip与端口都是通常的,就可以尝试用客户端访问服务器看看是否能正常登录
&9.9 访问服务器

[oracle@Test2CentOSStream8 ~]$ sqlplus system/orcl_3301@192.168.133.138:1521/orcl

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 20:43:22 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


Enter user-name:

可以看到仍旧是访问失败,那就只剩下oracle数据库监听的问题了,现在处理监听看看
 9.10 首先查看oracle服务器监听是否正常

[oracle@TestCentOSStream8 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 20:48:52

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.138)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-OCT-2022 19:15:50
Uptime                    0 days 1 hr. 33 min. 2 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/TestCentOSStream8/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.138)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=TestCentOSStream8)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/product/19c/dbhome_1/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
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...
Service "ec18a33589980b8fe055020c2977c90e" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "orclpdb1" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The listener supports no services
The command completed successfully
[oracle@TestCentOSStream8 ~]$ 

可以看出监听正常,但是The listener supports no services这个是不识别service_name
 9.11 查看参数

SQL> show parameter name;

NAME				     TYPE
------------------------------------ ----------------------
VALUE
------------------------------
cdb_cluster_name		     string

cell_offloadgroup_name		     string

db_file_name_convert		     string

db_name 			     string
ORCLCDB
db_unique_name			     string

NAME				     TYPE
------------------------------------ ----------------------
VALUE
------------------------------
ORCLCDB
global_names			     boolean
FALSE
instance_name			     string
ORCLCDB
lock_name_space 		     string

log_file_name_convert		     string


NAME				     TYPE
------------------------------------ ----------------------
VALUE
------------------------------
pdb_file_name_convert		     string

processor_group_name		     string

service_names			     string
ORCLCDB
SQL> 

以上信息可以看到oracle实例名为ORCLCDB,GLOBAL_DBNAME是全局的dbname,是db_unique_name ,所以登录的时候,SID应该是ORCLCDB而不是orcl,重新登录

[oracle@Test2CentOSStream8 ~]$ sqlplus system/orcl_3301@192.168.133.138:1521/ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 20:58:14 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-01017: ???/????; ?????


Enter user-name: 

修改为真实的实例名后,仍然登录失败

 9.12 配置监听文件(注意:静默模式安装与rpm模式安装的oracle基本目录是不同的)

 静默安装模式监听位置

[root@TestCentOSStream8 admin]# vim /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora 

 rpm安装模式监听位置

[oracle@Test2CentOSStream8 ~]$ vim /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora

 打开后默认内容为

# listener.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.138)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

需要修改为

# listener.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCLCDB)	#这里是数据库全局变量名(GLOBAL_DBNAME是全局的dbname,是db_unique_name )
      (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)	#这里是路径,静默模式安装的与rpm安装的路径是不同的,按照实际情况修改
      (SID_NAME = ORCLCDB)	#这里是SID名称
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.138)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

 9.13 停止监听

[oracle@TestCentOSStream8 ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 21:11:38

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.138)(PORT=1521)))
The command completed successfully
[oracle@TestCentOSStream8 ~]$ 

 9.14 启动监听

[oracle@TestCentOSStream8 ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-OCT-2022 21:12:57

Copyright (c) 1991, 2019, 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/TestCentOSStream8/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.138)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.138)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-OCT-2022 21:13:02
Uptime                    0 days 0 hr. 0 min. 5 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/TestCentOSStream8/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.138)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
  Instance "ORCLCDB", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@TestCentOSStream8 ~]$

可以看到前面的”The listener supports no services“这个报错也消失了,现在重新使用客户端登录

[oracle@Test2CentOSStream8 ~]$ sqlplus system/oracle_3301@192.168.133.138:1521/ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 30 21:15:54 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

????????: ???	 10?  30 2022 20:06:26 +08:00

???: 
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> 

可以看到,客户端访问服务器oracle成功了

 9.15 使用带有图形界面的工具连接(本人使用的是DBeaver)
连接界面登录后测试界面
以上就是CentOS Stream 8安装Oracle 19C 后的环境变量配置及监听文件配置的全过程。本教程也可以适用于其他版本数据库安装后的配置,只需要按照实际情况小做修改即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值