Oracle 静态监听注册的处理过程
背景
好久不弄 windows了
上面一个之前安装的Oracle19c的环境存在问题.
根本原因是自己修改了一下机器名.
自己忘记修改了监听, 所以一直不可用
一开始以为是静态注册的问题
改了半天发现不改其实也可以.
想了想还是记录一下吧. 避免以后再犯错误.
修改hosts
其实也可以不修改
为了稳妥起见可以修改
c:\windows\system32\driver\etc\hosts 文件
增加上 ip hostname的配置.
然后这样一定可以找到对应的机器地址.
修改配置文件
比如我这边的文件位置是:
C:\oracle19c\network\admin\listener.ora
C:\oracle19c\network\admin\tnsnames.ora
C:\oracle19c\network\admin\sqlnet.ora
需要说明的是:
listener.ora 提供外部服务的监听用.
tnsnames.ora 本地使用
sqlnet.ora 网络配置,比如超时断开, 安全防护等.
需要说明: tnsnames.ora 其实跟监听是没有关系的
添加的内容
(SID_DESC =
(SID_NAME = ORA19C)
(ORACLE_HOME = C:\oracle19c)
(GLOBAL_DBNAME = ORA19C)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\bin\oraclr19.dll")
)
完整的配置文件为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oracle19c)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\bin\oraclr19.dll")
)
(SID_DESC =
(SID_NAME = ORA19CPDB)
(ORACLE_HOME = C:\oracle19c)
(GLOBAL_DBNAME = ORA19CPDB)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\bin\oraclr19.dll")
)
(SID_DESC =
(SID_NAME = ORA19C)
(ORACLE_HOME = C:\oracle19c)
(GLOBAL_DBNAME = ORA19C)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle19c\bin\oraclr19.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Win2022DCTLS12)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
开机步骤
sqlplus / as sysdba
startup 打开数据库
alter pluggable database all open ;
然后打开监听
lsnrctl start
然后返回
sqlplus / as sysdba
alter system register
# 如果注册失败, 在使用
静态注册进行访问.