RAC的负载均衡的问题!

[复制链接]
查看11 | 回复9 | 2006-12-21 16:46:15 | 显示全部楼层 |阅读模式
在这两台服务器上执行sqlplus system/mananger@rac
在节点1:每次登陆RAC后,可以看到每次的实例名会切换
在节点2:每次登陆RAC后,连续两次都是在第一个节点上,第三次登陆实例名才切换为第二个节点上,这样正常吗?
下面是在客户机的TNSNAMES。ORA
RAC.TJ.COM =
(DESCRIPTION =
(load_balance=on)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RAC)
)
)
RAC2.TJ.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RAC)
(INSTANCE_NAME = RAC2)
)
)
RAC1.TJ.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RAC)
(INSTANCE_NAME = RAC1)
)
)
现在第一次登陆RAC,看到实例名是RAC1,但是第二次登陆却显示
C:\Documents and Settings\Administrator>sqlplus system/manager@rac
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 9月 18 09:27:20 2006
Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.
ERROR:
ORA-12545: 因目标主机或对象不存在,连接失败

请输入用户名:
做了这样的测试,结果都是正常的
sqlplus system/manager@rac1
sqlplus system/manager@rac2
请问这是什么问题呢?
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
在server 上看看 lsnrctl service 出来的结果
lsnrctl service 后面可能还要跟 listener 的名字
lsnrctl service listener_name
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
NODE2:
[oracle@node2 admin]$ lsnrctl services
LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 18-SEP-2006 09:37:22
Copyright (c) 1991, 2006, Oracle Corporation.All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
Services Summary...
Service "rac" has 2 instance(s).
Instance "rac1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:7 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521))
Instance "rac2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:32 refused:0 state:ready
LOCAL SERVER
The command completed successfully
NODE1:
[oracle@node1 admin]$ lsnrctl services
LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 18-SEP-2006 09:41:59
Copyright (c) 1991, 2006, Oracle Corporation.All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
Services Summary...
Service "rac" has 2 instance(s).
Instance "rac1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:65 refused:0 state:ready
LOCAL SERVER
Instance "rac2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:33 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521))
The command completed successfully

NODE1的LISTENER。ORA
LISTENER_RAC=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
)
)
)
SID_LIST_LISTENER_HQ =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/ora9/product/9.2)
(PROGRAM = extproc)
)
)


[oracle@node2 admin]$ more sqlnet.ora
# SQLNET.ORA.NODE1 Network Configuration File: /u01/ora9/product/9.2/network/adm
in/sqlnet.ora.node1
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES)
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
是不是listener.ORA的问题呢
我每个节点的listener.ORA的LISTENER_RAC该为了LISTENER,把DESCRIPTION_LIST =去掉了
重起了LISTENER,
[oracle@node2 admin]$ lsnrctl service listener
LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 18-SEP-2006 09:50:55
Copyright (c) 1991, 2006, Oracle Corporation.All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
Services Summary...
Service "rac" has 2 instance(s).
Instance "rac1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521))
Instance "rac2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
The command completed successfully
但是客户端还是报上面同样的错误
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
INIT。ORA
在这里我修改了rac2.thread=3,因为在指定REDO空间rac2.thread=2时,RAW出错了,我就重新指定了新的REDO GROUP 把rac2.thread=3
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
###########################################
# Cluster Database
###########################################
cluster_database_instances=2
rac1.remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))'
rac2.remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))'
rac2.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))'
rac1.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))'
service_names=rac
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Database Identification
###########################################
db_domain=""
db_name=rac
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/u01/ora9/admin/rac/bdump
core_dump_dest=/u01/ora9/admin/rac/cdump
timed_statistics=TRUE
user_dump_dest=/u01/ora9/admin/rac/udump
###########################################
# File Configuration
###########################################
control_files=("/dev/raw/raw61", "/dev/raw/raw62", "/dev/raw/raw63&quot


###########################################
# Miscellaneous
###########################################
compatible=9.2.0.0.0
###########################################
# Network Registration
###########################################
###########################################
# Optimizer
###########################################
hash_join_enabled=TRUE
query_rewrite_enabled=FALSE
star_transformation_enabled=FALSE
###########################################
# Pools
###########################################
java_pool_size=0
large_pool_size=8388608
shared_pool_size=83886080
###########################################
# Processes and Sessions
###########################################
processes=150
###########################################
# Redo Log and Recovery
###########################################
fast_start_mttr_target=300
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=exclusive
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=524288
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_retention=10800
cluster_database=true
rac2.instance_name=rac2
rac1.instance_name=rac1
rac2.instance_number=2
rac1.instance_number=1
rac2.thread=3
rac1.thread=1
rac1.undo_tablespace=UNDOTBS1
rac2.undo_tablespace=UNDOTBS2
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
关注!
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
最好在listener.ora文件中指定.service_name
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
问题处在这里
"DEDICATED" established:7 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521))
Client 并不认识 node1 ?

rac1.remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))'
rac2.remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))'
rac2.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))'
rac1.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))'
把 node1 /2 全改为 IP , 或者保证 client 认识 node1/2
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
多谢各位,已经搞定,全部换成IP后就可以了
回复

使用道具 举报

千问 | 2006-12-21 16:46:15 | 显示全部楼层
这个问题,我碰见过,你测试使用的客户端的tnsnames.ora中的host=ip 改成host=主机名,好像就可以解决ERROR:
ORA-12545: 因目标主机或对象不存在,连接失败
如果你的客户端是windows的,要在C:\WINDOWS\system32\drivers\etc\hosts中加入
192.168.0.1 hostname1
192.168.0.2 hostname2
如果是unix,直接在/etc/hosts中加入
192.168.0.1 hostname1
192.168.0.2 hostname2
祝你好运
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行