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
# 如果註冊失敗, 在使用
靜態註冊進行訪問.