Oracle 将一台机器上的数据库注册到另一台机器的监听上

本文简单介绍一下把一台机器上的数据库实例注册到另外一台机器上的步骤,比如把机器A的数据库实例注册到机器B.

1,在机器A注册到机器B之前查看一下机器B的listener的status,如下:

C:\Documents and Settings\Administrator>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-JAN-2012 17:10:39

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=147.151.240.89)(PORT=1521)))
STATUS of the LISTENER
------------------------
Services Summary...
Service "ORCL" has 2 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl_XPT" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
现在还没有机器A的注册信息.

2,在机器A的tnsnames.ora中加入:

LISTENE_R =
(ADDRESS = (PROTOCOL = TCP)(HOST =147.151.240.89)(PORT = 1521))

3,修改机器A的remote_listener为第一步配置的LISTENE_R

SQL> alter system set remote_listener=LISTENE_R;
System altered.

4,查看机器B的listener的status如下:

C:\Documents and Settings\Administrator>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-JAN-2012 17:27:35

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=147.151.240.89)(PORT=1521)))
STATUS of the LISTENER
------------------------

Services Summary...
Service "ORCL" has 3 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCLTEST" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...

Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orclXDB" has 2 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl_XPT" has 2 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

可以看到机器A的数据库实例注册到机器B的监听上,机器A的db_name和service_name会注册到机器B的监听.

下面是在机器A上查看的信息:

SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- --------------
db_name string orcl
SQL> show parameter service_names;
NAME TYPE VALUE
------------------------------------ ----------- --------------
service_names string ORCLTEST

5,在机器B的tnsnames.ora里加上:

TESTDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcltest)
)
)

orcltest是从机器A注册到机器B的服务.

在机器B上通过sqlplus连接到机器A的数据库实例

C:\Documents and Settings\Administrator>sqlplus yorker/yorker@testdb
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 16 17:45:24 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from test;

ID TYPE
---------- ----------
1 1

可以成功的访问机器A上的表.

在实际中很少有这种需求应用,RAC需要实例相互注册到对方的监听中,这里仅仅是模拟把一台机器的数据库实例注册到另一台机器.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一台机器上出现两个Oracle数据库,且它们的监听器重合时,可能会导致以下问题。 首先,监听器是一种用于管理与数据库之间的通信的进程。它负责侦听来自客户端的连接请求,并将其转发给适当的数据库实例。当两个数据库监听器重合时,可能会导致连接请求被错误地传递给错误的数据库实例,从而导致连接失败或错误的操作。 其次,监听器冲突可能会导致端口冲突。在一个机器上,每个监听器必须使用唯一的端口号来监听连接请求。如果两个监听器使用相同的端口号,将无法同时运行,从而导致其中一个监听器无法启动,影响数据库的正常运行。 解决这个问题的方法之一是修改其中一个数据库监听器配置。可以通过修改监听器的配置文件(通常是listener.ora文件)来更改监听器的端口号和监听地址,确保它们不会与其他监听器发生冲突。修改后,重启监听器以使更改生效。 另外,还可以考虑使用多个网络适配器(NIC)来分离两个数据库的通信路径。通过将每个数据库连接到不同的NIC,可以确保它们在网络层次上具有不同的地址,并消除监听器之间的冲突。 总而言之,当一台机器上有两个Oracle数据库时,若它们的监听器重合,会导致连接问题和端口冲突等。解决方法包括修改监听器配置和使用多个网络适配器来分离通信路径。最重要的是确保每个监听器都有唯一的端口号和监听地址,以确保数据库的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值