我正在配置数据保护。我想用两个 tnsnames 注册 local_listener 参数:tnsname1和tnsname2。
我使用 'ALTER SYSTEM SET LOCAL_LISTENER='tnsname1','tnsname2';
但它不起作用。谁能帮我?
谢谢
我正在配置数据保护。我想用两个 tnsnames 注册 local_listener 参数:tnsname1和tnsname2。
我使用 'ALTER SYSTEM SET LOCAL_LISTENER='tnsname1','tnsname2';
但它不起作用。谁能帮我?
谢谢
ALTER SYSTEM SET LOCAL_LISTENER='tnsname1';
然后在 tnsnames.ora 文件中为该名称配置两个侦听器。
tnsname1 = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 6000))
如果侦听器不是本地的,请使用 ALTER SYSTEM SET REMOTE_LISTENER='tnsname2';
tnsname2 = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 3000)) (ADDRESS = (PROTOCOL = TCP)(HOST = host3)(PORT = 4000)))
不确定我是否完全理解您在这里尝试做的事情。LOCAL_LISTENER 参数定义了一个 oracle 侦听器或侦听器列表,通常在您的 tnsnames.ora 文件中定义,您的实例应向其注册。例如:
这意味着您在本地服务器上运行了两个侦听器,一个在端口 1521,另一个在端口 1522。使用:
向这两个侦听器注册您的数据库。我认为您不能在命令中指定多个 tnsnames 条目。
抱歉这个是正确的:alter system set LOCAL_LISTENER="(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2 )(端口=1526)))";
ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=name1)(PORT=1521))','(ADDRESS=(PROTOCOL=TCP)(HOST=name2)(PORT=1523))' SCOPE=两个都;
LOCAL_LISTENER 是一个逗号分隔的列表参数。如果字符串中出现逗号,则整个字符串必须用双引号括起来。设置 LOCAL_LISTENER 参数如下:
ALTER SYSTEM SET LOCAL LISTENER=["]listener_address["][,...]; 例如,如果输入了侦听器地址“ab,cd”,则它解析为一个侦听器地址。如果地址输入为 ab,cd,则它解析为两个侦听器地址,ab 和 cd。
来自:Oracle® 数据库网络服务管理员指南 11g 第 2 版 (11.2) 部件号 E10836-05
向本地侦听器注册信息
干得好:
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)),(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=))' scope=both;
例如:alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST= 192.168.1.1)(PORT=1521)),(ADDRESS=(PROTOCOL=TCP)(HOST= 192.168.1.2)(PORT=1526) )'范围=两者;