oracle---之listener结构解析
在listener.ora文件中配置相应的服务,然后重新启动数据库和监听服务
使用到的脚本命令:
linux环境:
1. 修改【Oracle数据库默认安装的路径】/home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora文件
默认情况下该文件内容:
LISTENER=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.42.250)(PORT =1521))
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
)
)
出现ORA-12514的问题时候,我们需要增加的服务配置:
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/12.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
1.1 这个是公司的oracle数据库的listener.ora与tnsnames.ora文件, 可以与上图进行对比进行判断学习
2. 启动相关数据库和监听服务
以oracle身份登录数据库: su -oracle
进入 sqlplus 控制台:sqlplus/nolog -------------这里不需要开通 listener进程
以系统管理员登录:connect/ as sysdba
关闭数据库:shutdown immediate -------------关闭上次不正确的Oracle数据库对象,比如不包含监听状态的数据库对象
退出sqlplus控制台:exit
进入监听器控制台:lsnrctl
关闭监听器:stop
启动监听器:start -----------------------重新打开数据库监听listener进程
退出监听控制台:exit
进入 sqlplus 控制台:sqlplus/nolog
以系统管理员登录:connect/ as sysdba
启动数据库:startup ---------------------------重新打开数据库进程
退出sqlplus控制台:exit
上面操作的原因如下:
1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程
2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程
3.sqlplus sys/[email protected] 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。