Oracle Faq(Oracle TAF的配置)

如需转载,请注明出处!(刁馋在此先谢过了……)
Oracle TAF的配置

TAF为Transparent Application FailOver的缩写,一般应用TAF都是在OPS/RAC环境中。从8i开始有的这一功能,目的和想法都是很好的,但目前应用还很有限,本文将针对TAF相关问题作个详细探讨。

本文的测试环境是Tru64 V5.1+ Oracle9.2.0.1 RAC。

一、相关参数的说明

说实话oracle关于网络的几个配置参数真的是太乱了,很多人都弄不清到底是怎么回事,常见的错误为:
"ORA-12514 :TNS:listener could not resolve SERVICE_NAME given in connect descriptor" 和
"ORA-12154 :TNS: Could not resolve service name"
实质都是一样的,要解决这样的问题需要我们弄情几个参数:

initsid.ora中的几个参数:
DB_NAME --- database name,即建数据库时所提供的名称。
GLOBAL_NAMES --- True/false,设定是否使用数据库域名。
DB_DOMAIN --- 数据库域名,如果GLOBAL_NAMES=True则要求提供这个参数。
SERVICE_NAMES --- service names list,服务名称,可以有多个。

INSTANCE_NAME --- instance name,和SERVICE_NAMES一样从817开始支持,即从817开始可以将数据库、实例和服务名称分开。默认instance_name的值为instance的SID,即环境变量ORACLE_SID所对应的值。在817以前没有instance_name参数时,不同的instance是以SID来区分的。按照oracle817以后的文档解释:SID是为了区别同一主机上各instance的共享内存,并不是instance的唯一区别标示,而instance_name则是区别各个instance的。

环境变量:
ORACLE_SID --- 在817以前没有instance_name参数时,不同的instance是以SID来区分的(详细说明见上面的initsid.ora参数解释)。

listener.ora中的几个参数:
GLOBAL_DBNAME --- 全局数据库名称,在分布式环境中唯一确定不同的数据库。它的值为initsid.ora中DB_NAME和DB_DOMAIN的组合,即GLOBAL_DBNAME=DB_NAME.DB_DOMAIN,其中DB_DOMAIN如果没有设此处也就不需要了。这个参数在分布式环境中建议明确指定。
SERVICE_NAME --- 服务名称,取initsid.ora中service_names list至一即可。
SID_NAME --- 对应环境变量ORACLE_SID的值。
INSTANCE_NAME ---对应初始化参数instance_name。

tnsnames.ora中的几个参数:
service_name --- 服务名称,取initsid.ora中service_names list至一即可。
sid_name --- 可以简写成:sid,对应ORACLE_SID,也可以是初始化参数instance_name,当等于instance_name且instance_name不等于ORACLE_SID时,oracle会自动注册一个监听进程,此用以区分不同的instance。
instance_name --- 从817开始有了这个新的参数可以使用,对应初始化参数instance_name。

这样一来,参数就很复杂了,不过我们实际使用并不会用当然十月简单越好了。

二、相关参数设置

下面我将举例说明相关参数的设置:
1、环境变量:ORACLE_SID=rac1/2

2、initsid.ora:
db_name=ora92
service_names = ora92
instance_name=rac1/2
global_names=false
db_domain=""

3、listener.ora:
SID_LIST_RAC1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora92)
(ORACLE_HOME = /oracle/oracle9/app/oracle/product/9.2.0)
(SERVICE_NAME=ora92)(SID_NAME = rac1)
)
)

SID_LIST_RAC2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora92)
(ORACLE_HOME = /oracle/oracle9/app/oracle/product/9.2.0)
(SERVICE_NAME=ora92)(SID_NAME = rac2)
)
)

RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.1)(PORT = 1522))
)
)
)

RAC2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.2)(PORT = 1522))
)
)
)

三、TAF的设置
其实TAF设置很简单,在tnsnames.ora中添加failover=on即可,有两种不同的设置方法:
1、公用一个tns name方式:==================================================
myrac =
(description=
(load_balance=on)
(failover=on)
(address= (protocol=tcp)(host=10.1.3.1)(port=1522))
(address= (protocol=tcp)(host=10.1.3.2)(port=1522))
(connect_data= (service_name=ora92)
(failover_mode=(type=select)(method=basic)(retries=20)(delay=20))
)
)
==========================================================================

2、指明instance backup方式:===============================================
rac1 =
(description=
(load_balance=on)
(failover=on)
(address= (protocol=tcp)(host=10.1.3.1)(port=1522))
(connect_data= (service_name=ora92)
(failover_mode=(type=select)(method=basic)
(backup=rac2)(retries=20)(delay=20))
)
)

rac2 =
(description=
(load_balance=on)
(failover=on)
(address= (protocol=tcp)(host=10.1.3.2)(port=1522))
(connect_data= (service_name=ora92)
(failover_mode=(type=select)(method=basic)
(backup=rac1)(retries=20)(delay=20))
)
)
==========================================================================

四、TAF测试方法
一般可以将当前连接的instance down下来,client端将不会断开,并自动切换到backup节点上。相反也会自动切换回来。

当然也有人提出用post_transaction的方式来测试TAF,其实这样有时是得不到预期结果的,原因在于Oracle连接到一个instance上后,此后它会优先尝试对该instance的连接,当你disconnect后,client端一有新的请求就会自动尝试对最近连接的instance进行连接,如果不成功才会尝试对backup instance进行连接。

(0)

相关推荐

  • Oracle Faq(Oracle TAF的配置)

    如需转载,请注明出处!(刁馋在此先谢过了--)Oracle TAF的配置 TAF为Transparent Application FailOver的缩写,一般应用TAF都是在OPS/RAC环境中.从8i开始有的这一功能,目的和想法都是很好的,但目前应用还很有限,本文将针对TAF相关问题作个详细探讨. 本文的测试环境是Tru64 V5.1+ Oracle9.2.0.1 RAC. 一.相关参数的说明 说实话oracle关于网络的几个配置参数真的是太乱了,很多人都弄不清到底是怎么回事,常见的错误为:"

  • Oracle Faq(Oracle的版本)

    如需转载,请注明出处,谢谢!以8.1.7.4.0为例说明:8:版本号1:新特性版本号7:维护版本号4:普通的补丁设置号码0:特殊的平台补丁设置号码 另外有关Oracle是32bit/64bit的问题,说明如下:在windows/linux系统中由于操作系统是32bit的,所以oracle肯定是32bit的:在tru64中oracle肯定是64bit的:在hpux/aix/solaris中要看具体情况了,如果是64bit的在server上启动sqlplus时会显示64bit的字样,你也可以通过se

  • Oracle Faq(Oracle的字符集问题)

    1.在建库时,catproc一定要运行,否则用rman时会出现如下字符集的错误:RMAN-00554: initialization of internal recovery manager package failedRMAN-04005: error from target database: ORA-06553: PLS-213: package STANDARD noeRMAN-04015: error setting target database character set to Z

  • centos 6.5 oracle开机自启动的环境配置详解

    centos 6.5 oracle开机自启动的环境配置详解 环境:centos 6.5 + Oracle 11g 自启动之前问题 虚拟机里的oracle环境,每次重启完系统,用plsql developer连接,先是报错: 无TNS监听程序 解决方法是切换到系统的oracle用户,执行lsnrctl start,但是执行之前,因为ORACLE_HOME环境变量没有生效,还要是环境变量文件生效,步骤如下: [oracle@localhost ~]$ source .bash_profile [or

  • 解决Oracle安装遇到Enterprise Manager配置失败问题

    在一台新的申请服务器上安装Oracle,在创建数据库实例时,遇到Enterprise Manager配置失败问题,无法进行远程连接. 操作系统:Windows Server 2008 R2 开启了防火墙,设置了1521出入站规则,没有进行其他任何设置. Oracle版本:11.2.0.4 解决方法: 经检查发现,是Oracle监听问题,修改后重启监听即可. 修改方式看到网上描述的是在监听中增加地址的方式,但是我在增加地址后保存提示1521已经被监听,无法保存,索性直接将主机IP修改为机器名,修改

  • Oracle 数据库自动存储管理-安装配置

    这带来了很多好处,但是也要求学习一些新的概念.命令.使用和管理任务.所以在投入你的生产系统之前,看看它解决什么.管理什么,以及对它的正反面评价. 为什么创建它? 回答这个问题的最好方式是直接追溯源头,Bill Bridge--自动存储管理的最初架构师.在Oracle Press标题中的Oracle ASM,Bill提供了一个链接,他在那里讨论了使用供应商特定操作系统的文件系统来管理Oracle数据文件放置所遇到的问题: 1. 对于归档日志和备份,操作系统供应商不提供共享磁盘文件系统. 2. 逻辑

  • Oracle Faq(如何在ORACLE中更改表的列名和顺序 )

    如需转载,请注明出处!用过ORACLE的人都知道,要想在ORACLE中更改表的列名和顺序可是一件很烦琐的事,下面给大家提供一种简单的方法. SQL> select object_id from all_objects where owner='SCOTT' and object_name='T1'; OBJECT_ID----------6067SQL> select obj#,col#,name from sys.col$ where obj#=6067; OBJ# COL#--------

  • Linux下为Node.js程序配置MySQL或Oracle数据库的方法

    mysql使用 安装mysql 模块: 在安装根目录 cmd命令行执行命令 npm install mysql 安装成功后. mysql数据库表 已存在的情况下. 在nodejs根目录 新建mysql.js: var sys = require('util'); var mysql=require('mysql'); console.log('正在连接MySQL...'); var http = require("http"); var server=http.createServer

  • centos 6.5下安装oracle 11gR2与Oracle自动启动的配置

    注意:以下命令使用 root 用户操作 安装依赖包 主要思路为配置 oracle yum 仓库,直接使用 yum 命令来安装依赖包,避免手工逐个的安装依赖包. 配置 yum 仓库以下载 orcale 依赖包 注意:这里是CentOS 6.X 的 oracle 依赖仓库,其他版本不同的. 导入 GPG Keys wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-orac

  • Oracle Database 10g数据库安装及配置教程

    Oracle安装配置教程分享给大家供大家参考,具体内容如下 1.安装 Oracle 版本:Oracle Database 10g Release 2 (10.2.0.1) 下载地址: http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html 安装设置: 1)这里的全局数据库名即为你创建的数据库名,以后在访问数据,创建"本地Net服务名"时用到: 2)数据库

随机推荐