一开始是先发表在新浪博客的,因此有些图片都被屏蔽了
(一)先了解一下什么是动态注册和静态注册
(一)先了解一下什么是动态注册和静态注册
网上的博客很多,给个链接啊,我就不把内容复制黏贴了
http://blog.chinaunix.net/uid-11570547-id-58976.html
(二)创建一个监听,并将orcl库注册到监听上
我直接把listener.ora文件给删了
现在的库是没有监听的,我们给他配个监听叫LISTENER,并把数据库静态注册到LISTENER上
参考官方文档:
Net Services Reference -> 7 ->example7-1
LISTENER是默认监听
参考文档,在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin目录下
vi listener.ora
编辑修改如下:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
注:上面的host直接写的node1,这里可直接写IP地址,要写node1,得在
/etc/hosts里边编辑一下,加上:
192.168.1.101 node1
这时重新启动一下监听,看一下监听的状态
lsnrctl start
lsnrctl status
这时看到的orcl库已经静态注册到LISTENER监听器上了,
我们现在去启动orcl库,之后再来看一下监听器的状态
此时可以看到orcl数据库已经动态注册到监听上。
(三)配置本地命名
也就是配置连接描述符来说明连接信息
也就是配置连接描述符来说明连接信息
参考官方文档:
Net Services Reference -> 6 -> example 6-1
参考文档,在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin目录下
vi tnsnames.ora
编辑修改如下:
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl.oracle.com)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl.oracle.com)
)
)
测试一下能否ping通:
tnsping orcl
可以用
sqlplus system/oracle@orcl
测试一下看能否连接上
(四)再配一个监听LSN2
端口号为1526,把test库动态注册到LSN2上
端口号为1526,把test库动态注册到LSN2上
只要在listener.ora 里添加:
LSN2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1526))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1526))
)
这边的lsn2就不是默认监听了,要启动或者查看相应监听状态,就有在后面加上监听的名字
启动监听lsn2: lsnrctl start lsn2
查看监听状态: lsnrctl status lsn2
看到现在是没有什么数据库注册到这个监听上的
接下来实现把test库动态注册到llsn2上:
show parameter listener;
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1526))';
alter system register;
这时再次查看lsn2的状态,
lsnrctl status lsn2
如果要把test库静态注册到监听LISTENER 或LSN2 上,只要根据上面的方法,在listener.ora里添加相应信息即可
比如说现在要把test库也静态注册到LSN2上,
vi listener.ora,
添加:
SID_LIST_LSN2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = test)
)
)
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = test)
)
)
这时重启一下监听lsn2,
lsnrctl stop lsn2
lsnrctl start lsn2
再看下监听状态 lsnrctl status lsn2
可以看到这时的test 库是同时静态和动态注册在lsn2这个监听上的
(五)实现orcl和test 两个库同时静态注册到监听LISTENER 上
只要修改一下
listener.ora就可以了:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = test.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = test))
)
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
(SID_DESC =
(GLOBAL_DBNAME = test.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = test))
)
(六)实现test库同时动态注册到监听LISTENER和LSN2上
vi tnsnames.ora
里面添加:(取个简单一点的本地命名,如swz)
swz=
(address_list=
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1526))
)
(address_list=
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1526))
)
然后,
alter system set local_listener='swz';
alter system register;
最后查看两个监听的状态,能看到
orcl库静态和动态注册在监听LISTENER上
test库静态和动态注册在监听LISTENER上,同时也静态和动态的注册在监听LSN2上
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30935525/viewspace-2024166/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30935525/viewspace-2024166/