工作总结35 Oracle RAC的tnsnames.ora参数详解
2017-09-05 10:32
309 查看
Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉不到这种切换。
实例:
jdbc:oracle:thin:@ (DESCRIPTION =
(LOAD_BALANCE = OFF)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.130)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.131)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cwdb)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
)
load_blance=on/off
on在最初建立连接的时候会随机选择一个节点进行连接,由于是随机的所以可以起到负载均衡的作用。如果此时连接的节点出现故障,在开启failover的情况下会自动随机连接另外一个节点,如果所有节点都无法建立连接则返回错误。
off从第一个节点开始建立连接,如果第一个节点不能建立连接则在开启failover的情况下继续连接下一个节点,直到最后一个节点也无法建立连接则返回错误。
Default
on for DESCRIPTION_LIST
Values
yes | on | true
no | off | false
failover=on/off
为多个协议地址启用或禁用连接时间故障切换。如果将参数设置为 on、yes 或 true, 则在连接时, 如果第一个协议地址失败, Oracle Net 将故障转到另一个地址。将参数设置为 off、no 或 false 时, Oracle Net 将尝试一个协议地址。
将此参数置于 DESCRIPTION_LIST 参数、描述参数或 ADDRESS_LIST 参数下.
默认 在DESCRIPTION_LIST, DESCRIPTION, and ADDRESS_LIST下是on
Values
yes | on | true
no | off | false
type=session/select/none
用于定义发生故障时对完成的SQL 语句如何处理,其中有2种类型:session 和select.
这2种方式对于未提交的事务都会自动回滚,区别在于对select 语句的处理,对于select,用户正在执行的select语句会被转移到新的实例上,在新的节点上继续返回后续结果集,而已经返回的记录集则抛弃。
假设用户正在节点1上执行查询,整个结果集共有100条记录,现在已从节点1上返回10条记录,这时节点1宕机,用户连接被转移到节点2上,如果是session模式,则需要重新执行查询语句;如果是select方式,会从节点2上继续返回剩下的90天记录,而已经从节点1返回的10条记录不会重复返回给用户,对于用户而言,感受不到这种切换。
显然为了实现select 方式,Oracle 必须为每个session保存更多的内容,包括游标,用户上下文等,需要更多的资源也是用资源换时间的方案。
TYPE=select 一定的。选session可能会丢失部分查询结果。
method=perconnect/basic
basic:只有当感知到当前节点发生故障时才连接到其他节点
perconnect:在最初建立连接的时候就建立到所有实例的连接,当前节点发生故障可以快速切换到其他实例上。
两个参数的设置区别就在于当前节点出现错误,转换到其他节点上所花的时间的长短,perconnect固然速度会很快,但是也会消耗一定的额外资源,换句话说就是拿资源换速度。如何取舍可根据实际情况自己确定。
METHOD=PRECONNECT 最保险的方式。basic也行,参考目前数据库服务器的剩余资源选择。
RETRIES:当前节点失败后,失败切换功能会尝试连接备用节点,这个值确定了尝试的次数,如果仅DELAY被指定,RETRIES默认为5
DELAY:两次尝试之间等待的秒数,如果仅指定RETRIES,DELAY默认为1秒
BACKUP:指定另外一个用于备份连接的网络服务名,当RAC设置为主次模式时,使用此参数,并且METHOD应该设为preconnect
实例:
jdbc:oracle:thin:@ (DESCRIPTION =
(LOAD_BALANCE = OFF)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.130)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.131)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cwdb)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
)
load_blance=on/off
on在最初建立连接的时候会随机选择一个节点进行连接,由于是随机的所以可以起到负载均衡的作用。如果此时连接的节点出现故障,在开启failover的情况下会自动随机连接另外一个节点,如果所有节点都无法建立连接则返回错误。
off从第一个节点开始建立连接,如果第一个节点不能建立连接则在开启failover的情况下继续连接下一个节点,直到最后一个节点也无法建立连接则返回错误。
Default
on for DESCRIPTION_LIST
Values
yes | on | true
no | off | false
failover=on/off
为多个协议地址启用或禁用连接时间故障切换。如果将参数设置为 on、yes 或 true, 则在连接时, 如果第一个协议地址失败, Oracle Net 将故障转到另一个地址。将参数设置为 off、no 或 false 时, Oracle Net 将尝试一个协议地址。
将此参数置于 DESCRIPTION_LIST 参数、描述参数或 ADDRESS_LIST 参数下.
默认 在DESCRIPTION_LIST, DESCRIPTION, and ADDRESS_LIST下是on
Values
yes | on | true
no | off | false
type=session/select/none
用于定义发生故障时对完成的SQL 语句如何处理,其中有2种类型:session 和select.
这2种方式对于未提交的事务都会自动回滚,区别在于对select 语句的处理,对于select,用户正在执行的select语句会被转移到新的实例上,在新的节点上继续返回后续结果集,而已经返回的记录集则抛弃。
假设用户正在节点1上执行查询,整个结果集共有100条记录,现在已从节点1上返回10条记录,这时节点1宕机,用户连接被转移到节点2上,如果是session模式,则需要重新执行查询语句;如果是select方式,会从节点2上继续返回剩下的90天记录,而已经从节点1返回的10条记录不会重复返回给用户,对于用户而言,感受不到这种切换。
显然为了实现select 方式,Oracle 必须为每个session保存更多的内容,包括游标,用户上下文等,需要更多的资源也是用资源换时间的方案。
TYPE=select 一定的。选session可能会丢失部分查询结果。
method=perconnect/basic
basic:只有当感知到当前节点发生故障时才连接到其他节点
perconnect:在最初建立连接的时候就建立到所有实例的连接,当前节点发生故障可以快速切换到其他实例上。
两个参数的设置区别就在于当前节点出现错误,转换到其他节点上所花的时间的长短,perconnect固然速度会很快,但是也会消耗一定的额外资源,换句话说就是拿资源换速度。如何取舍可根据实际情况自己确定。
METHOD=PRECONNECT 最保险的方式。basic也行,参考目前数据库服务器的剩余资源选择。
RETRIES:当前节点失败后,失败切换功能会尝试连接备用节点,这个值确定了尝试的次数,如果仅DELAY被指定,RETRIES默认为5
DELAY:两次尝试之间等待的秒数,如果仅指定RETRIES,DELAY默认为1秒
BACKUP:指定另外一个用于备份连接的网络服务名,当RAC设置为主次模式时,使用此参数,并且METHOD应该设为preconnect
相关文章推荐
- 3.10工作总结
- 两年Java工作重要的技术总结
- [总结]Flash相关工作应聘条件
- [week4]每周总结与工作计划
- 工作总结和工作展望
- 工作总结21 客户在firefox登陆进去又闪退后的问题解决方案
- Java Web学习总结35:使用JDBC处理Oracle大数据
- 2007年民主评议党员工作总结
- 第二阶段工作总结 06
- 2007年工作总结
- f在工作中遇到的一些问题及总结(f的第一篇博客)
- 第二次冲刺个人工作总结05
- 个人工作总结03(第二次冲刺)
- 2015工作总结
- 工作中小细节总结(五)
- 用ICMP协议(C#)实现Ping程序-在公司最近十天的工作内容总结(四)
- 第六天工作总结(第二周)
- 第四周工作总结——Matlab生成iBeacon信号
- 工作之命令小总结(2):kill命令
- 实验室第六周周工作总结