1、动态监听
自动通过打开的库去寻找instancename,默认端口1521,数据库必须开启,动态监听是数据库PMON通过配置设置(也可以是默认值)向指定的监听注册,静态监听没有这个过程。
有没有此文件都不影响开启监听 listener.ora
2、静态监听是通过文件中指定的instancename,端口可任意设置,数据库可关闭
必须配置 listener.ora
静态监听
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = in) --服务名
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) --$ORACLE_HOME
(SID_NAME= PROD) --sid
)
)
动态监听
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.174.131)(PORT = 1521))
)
)
静态监是一种硬编码,将实例写在listener.ora上
静态监听硬编码的部份是ORACLE_HOME以及ORACLE_SID
理解
1、动态监听是数据库启动时注册到监听的,一旦数据库关闭,用户无法连接
2、静态监听是在listener.ora中配置的,即使数据库关闭,用户也能登陆数据库进行操作
3、动态监听无需修改配置文件,数据库通过自身配置动态注册
4、静态监听需要修改监听配置文件
添加静态监听
vim listener.ora 再listener上加上一个配置,静态监听是在listener.ora中配置的
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ins) --对外的服务名
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) --$ORACLE_HOME
(SID_NAME= PROD) --SID_NAME 与实例的 SID 等同,对应 instance_name
)
)
加多个
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ins)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME= PROD)
)
(SID_DESC =
(GLOBAL_DBNAME = inspur)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME= PROD)
)
)