首页 > 数据库 > Oracle > Oracle静态监听和动态监听
一、静态注册
静态注册指实例启动时读取
listener.ora
配置文件,将实例和服务注册到监听程序。无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = rman)
(ORACLE_HOME = /u01/oracle)
(SID_NAME = rman)
)
(SID_DESC =
(GLOBAL_DBNAME = gel)
(ORACLE_HOME = /u01/oracle)
(SID_NAME = gl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
说明:
1
)
(ORACLE_HOME = /u01/oracle) oracle_home
目录,测试不加也行
2
)本静态监听两个数据库实例,每个实例的静态监听写到
SID_DESC
中
3
)在数据库未
open
状态中,就可以远程连接到数据库,对数据库进行操作
4
)使用静态监听时,客户端的
tns
最好配置为
SERVICE_NAME
,当然也可以同时配置
SID
和
SERVICE_NAME
,等数据库启动后,
tns
中无论是
sid
还是
SERVICE_NAME
均能访问数据库
二、动态注册
动态注册不需要显示的配置
listener.ora
文件,实例启动的时候,
PMON
进程根据
instance_name,service_name
参数将实例和服务动态注册到
listerer
中。如果没有设定
instance_name
,将使用
db_name
初始化参数值。如果没有设定
service_names
,将拼接
db_name
和
db_domain
参数值来注册监听。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = rman)
(ORACLE_HOME = /u01/oracle)
(SID_NAME = rman)
)
(SID_DESC =
(GLOBAL_DBNAME = gel)
(ORACLE_HOME = /u01/oracle)
(SID_NAME = gl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
说明:
1
)不需要人工干预在
lsnrctl start
后,会自动注册数据库的
instance_name,service_name
,然后
tns
不论使用
SID
和
SERVICE_NAME
均可以连接上来
2
)修改了
SERVICE_NAME
或者
SID
不用修改
listener.ora
文件
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26964624/viewspace-2564429/ ,如需转载,请注明出处,否则将追究法律责任。