==【静态注册】==
静态注册可通过图形化的net manager进行配置。
net manager里面的配置选项与相关文件的对应关系:
概要文件 <=> sqlnet.ora
服务命名 <=> tnsnames.ora
监听程序 <=> listener.ora
静态注册在服务器端需要配置【监听程序(listener.ora)】,包括:
监听位置(协议、主机、端口);
数据库服务(全局数据库名:此处的全局数据库名对应于客户机端【服务命名(tnsnames.ora)】的服务名、Oracle主目录、SID);
其它服务(我测试的时候发现不能留空,不过此处的程序名和SID随便填一些字符即可);
追加一个监听程序需要通过netca进行配置,win下netca会创建一个服务。
listener.ora(服务器端)
SID_LIST_SL01 =
(SID_LIST =
(SID_DESC =
(PROGRAM = xx)
(SID_NAME = xx)
)
(SID_DESC =
(GLOBAL_DBNAME = gdbn01)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
SL01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
)
tnsnames.ora(客户机端)
S01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
)
(CONNECT_DATA =
(SERVICE_NAME = d01)
)
)
==【动态注册】==
要想PMON能动态注册非1521的端口,需要先将连接信息(protocal,host,port - 该连接信息须在【监听程序(listener.ora)】的监听位置中存在)配置到服务器端的tnsnames.ora,然后修改local_listener参数指向tnsnames.ora中的配置选项。
listener.ora(服务器端,SL01为通过netca新建的监听程序)
SL01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
)
tnsnames.ora(服务器端)
DL01 = (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
alter system set local_listener='DL01';
alter system set service_names='d01,d02,d03';
客户端只需在tnsnames.ora中填入相应的SERVICE_NAME即可:
tnsnames.ora(客户机端)
S01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
)
(CONNECT_DATA =
(SERVICE_NAME = d01)
)
)
要想PMON动态注册默认1521的端口则相对比较简单,不需要设置local_listener参数,自然也就不需要修改服务器端的tnsnames.ora文件,其它与动态注册非1521的端口步骤一样。
==【验证注册】==
sqlplus /@s01 as sysdba
select distinct sid from v$mystat;
select service_name from v$session where sid=:sid;
查看当前session的服务名,
如果返回的是SYS$USERS则表示当前session通过静态注册的服务名连接,
否则返回动态注册的服务名。
Oracle DBA之监听的静态注册与动态注册
最新推荐文章于 2019-01-21 19:45:07 发布