Application failover
hello
i have tried oracle data guard 10g R2
it 's really an awesome tool....
the question is my end user,uses a connect string like for instance hr/hr@ss to the database
when i switchover the standby site where the instance name is ss4, how my end users will connect to the new primary database:
shall they configure a new connect string using net manager to the new primary or is there a way so they also automatically switch to it ?
or even if its a web based application how shall i configure the application server to switch to the new primary database ?
thanks in advance
None of it.
The ordinary connect string needs to be configured for failover.
The Net administrators manual will tell you how to do this.
Search for 'failover=on'
Please do not ask doc questions.
Sybrand Bakker
Senior Oracle DBA
Similar Messages
-
New Note 790189.1 - Oracle Clusterware and Application Failover Management
Hi all,
please, note the newly created Metalink Note 790189.1 - Oracle Clusterware and Application Failover Management if you want to use Oracle Clusterware as a general purpose cluster solution. The note intends to clarify and to explain the current situation in regards to the supportability of applications managed by Oracle Clusterware.
In environments not including Oracle RAC, Oracle Clusterware still provides the level of high availability that is commonly known to be achievable for applications and databases managed in (failover) cluster environments. These environments can include Oracle Single Instance Databases, Oracle Application Servers, Oracle Enterprise Manager components, third party databases, or any other kind of application. (For more information on Oracle Clusterware 11g in general, please, refer to [Oracle Clusterware homepage|http://otn.oracle.com/clusterware].)
Metalink Note 790189.1 - Oracle Clusterware and Application Failover Management is tightly integrated with the information on application failover management available on the [Oracle Clusterware homepage|http://otn.oracle.com/clusterware] and discusses typical questions like
* Terminology
* Script supportability and preconfigured agents
* How to prove that action scripts work outside of Oracle Clusterware
* Supportability of the Oracle Database Single Instance example scripts
* How do I know whether a certain script is supported as a preconfigured agent?
Metalink Note 790189.1, however, does not change the level of support that has been introduced for these kind of configurations as of Oracle Database 10g Release 2: "Generally, Oracle does not support action scripts in the strict terms of supporting individual code fragments. Oracle fully supports the integration of individual action scripts proven to run outside of Oracle Clusterware into the Oracle Clusterware management stack. Supported operations therefore typically involve crs_* commands such as crs_profile, crs_register, crs_setperm, crs_getperm, crs_start, crs_stop, and crs_relocate invoked on custom resources. If actions scripts are used as part of a preconfigured agent, Oracle or the application provider who provides the agent will support the integration of this agent, while only the application provider will provide support for the individual action scripts."
Just for your information. Thanks,
Markusnot meant to be a question - rather an announcement.
-
Data Guard Application Failover
Hi,
We've setup a physical standby database on 11.2.0.1.
I'd request for opinions on how well to manage application fail-over when we switchover/fail over the database. The application connects to the database through TNS name resolution.
Some people have suggested we edit the tns entry for the application server and point it to a virtual hostname, which will resolve to one IP address, then change this IP address only on the DNS to point to the new primary during switchover. But this looks to have challenges since the service names for the primary and standy instances are different, so the tns entry has to be modified.
Any suggestions on best application failover?
dulaDan,
You are most welcome to OTN
I have a question regarding Active Data Guard and any potential outage that might be encounted in a failover or switchover.Switchover/Failover wont happen without your interaction.
If you configure FSFO with protection mode(Ex: Max Availability)
Read-Only application is accessing Active Data Guard database on standby. Would there be any outage if the standby were made the primary ?What outage? If standby made to primary(failover) then you may less very minor data based on how redo transport you are configuring. if you are using ARCH then the lost would only data+changes what ever in Archive log file, If you using LGWR then its very very less. So recommended to use redo transport as LGWR
I have assumed no, but there is a debate in my office that there would be a small outage due to change in roles. We are using broker also.If you change role, then there would be no outage.
For more details refer this oracle documentation http://www.oracle.com/technetwork/articles/smiley-fsfo-084973.html
Edited by: CKPT on Jan 12, 2012 4:50 PM -
Long distance application failover between data centers.
Hello:
I am working a project where there is a requirement to have a primary server and a secondary for application failover. The requirements dictate that the servers must be geographically separate at separate data centers but yet on the same IP subnet so that heartbeat messages are not natively routed. What protocol can I use to bridge the subnet over an IP routed network? GRE? L2TP?GRE will not work as according to the last information I have you cannot bridge over a GRE tunnel. We had one such application with similar requirements and we ended up using L2TPv3 that allows transparent LAN extension. We have not had any issues with it and if you are only going to use it for heartbeats you should not run into any performance issues. L2TPv3 does tend to drive the CPU utilization high in case you have a lot of data traversing the tunnel.
-
OPS의 TAF (TRANSPARENT APPLICATION FAILOVER) 개념 및 구성
제품 : ORACLE SERVER
작성날짜 : 2004-08-13
OPS의 TAF (TRANSPARENT APPLICATION FAILOVER) 개념 및 구성 (8.1이상)
===================================================================
PURPOSE
Oracle8 부터는 OPS node 간의 TAF (Transparent Application Fail-over)가
제공된다. 즉 OPS의 한쪽 node에 fail이 발생하여도 해당 node로 접속하여
사용하던 모든 session이 사용하던 session을 잃지 않고 자동으로 정상적인
node로의 재접속이 이루어저 작업이 계속 진행하도록 하는 것이다.
이 문서에는 이 TAF에 대해서 간단히 살펴보고 실제 configuration을 기술한다.
SCOPE
Transparent Application Failover(TAF) Feature는
8i~10g Standard Edition에서는 지원하지 않는다.
Explanation
TAF가 cover하는 fail의 형태에 대한 설명과, TAF 시 지정하는 fail over의
type과 method에 대해서 설명한다.
(1) fail의 형태:
TAF는 다음과 같은 fail에 대해서 모두 TAF가 정상적으로 수행되게 된다.
단 MTS mode에 대해서는 전혀 문제가 없지만, dedicated mode의 경우는
반드시 dynamic registration형태로 구현이 되어야 정상적으로 TAF가 가능하다.
instance fail: mts의 경우는 문제가 없지만 dedicated mode의 경우는 반드시
dynamic registration 형태로 구성되어야 한다.
fail된 instance 측의 listener가 정상적이라 하더라도,
dynamic registration에 의해서 instance가 fail되면
listener로부터 deregistration되게 되어 listener 정보
를 확인 후 다른 node의 listener로 접속을 시도하게 된다.
그러나 dynamic registration을 사용하지 않게 되면 fail
된 instance 쪽의 listener는 fail된 instance 정보를
services로 보여주게 되고 해당 instance와 연결을 시도하
면서 ORA-1034: Oracle not available 오류가 발생하게 되
는 것이다.
instance & listener down: listener까지 down되게 되면 문제 발생 후
재접속 시도 시 fail된 쪽의 listener 접속이 실패하게 되고,
다른 node의 listener로 접속이 이루어지게 된다.
node down: node 자체가 down되는 경우에도 TAF는 이루어진다. 단 clinet
에 적정한 TCP configuration parameter인 keepalive 의 설정
이 요구되어진다.
node fail시 client와 server간의 작업이 진행중이라면
문제가 없지만 만약 server쪽에서 수행되는 작업이 없는
상태라면 cleint가 node가 down이 되어도 바로 인지할 수가
없다. client에서 다음 server로의 요청이 이루어지는
순간에 client가 더이상 존재하지 않는 TCP end point쪽으로
TCP packet을 보내게 되고, server node가 더이상 살아있지
않다는것을 확인하게 되는데 일반적으로 2,3분이 걸릴수
있다. node가 fail이 된경우 network에 대한 write() function
call이 오류를 return하게 되고, 이것을 client가 받은후
failover기능을 호출하게 되는 것이다.
client에서 idle한 상태에서도 server node가 down되었는지를
학인하려면 TCP keepalive를 설정해야 하며, 이 keepalive를
오라클의 connection에서 사용하려면 TNS service name에서
ENABLE=BROKEN절을 지정해 주어야한다.
DESCRIPTION절에 포함되는 이 ENABLE=BROKEN절에 대한 예제는
아래 구성 예제의 (3)번 tnsnames.ora 구성 부분에서 참조할
수 있다.
이렇게 ENABLE=BROKEN을 지정하면 network쪽 configuration인
keepalive 설정을 이용하게 되는데 이것이 일반적으로는
2 ~ 3시간으로 설정되어 있기 때문에 이값이 적당히 짧아야
TAF에서 의미가 있을 수 있다.
단 이 keepalive time이 너무 짧으면, 그리고 idle한
session이 많은 편이라면 network부하가 매우 증가할 수
있으므로 이 지정에 대해서는 os나 network administrator와
충분히 상의하여야 한다.
이 keepalive 대한 자세한 내용과 설정 방법은 <bulletin:11323:
SQL*NET DCD(DEAD CONNECTION DETECTION)과 KEEPALIVE의 관계>를
참조한다.
(2) type: session vs. select
session은 유지하고 수행중이던 SQL문장은 모두 fail되는 session type과
DML문장은 rollback되고 select문장은 유지되는 select type이 제공된다.
select type의 경우도 fail된 instance에서만 얻을 수 있는 정보의 경우는
조회수행 도중 다음과 같은 오류를 발생시키고 중단될 수 있다.
예를 들어 해당 instance에 대한 gv$session으로부터의 조회와 같은것이 그
예이다.
ORA-25401: can not continue fetches
(3) method: basic vs. backup
fail발생시 다른 node로 session을 연결하는 basic method와,
미리 다른 node로 backup session을 연결해 두었다가 fail발생시 사용하는
backup method가 존재한다.
Example
TAF설정을 위해서는 init.ora, listener.ora, tnsnames.ora에 설정이 필요하다.
MTS mode에서는 문제가 없기 때문에 여기서는 반드시 dynamic registration으로
설정해야 하는 dedicated방식을 예로 들었다.
test는 Oracle 8.1.7.4/Sun solaris 2.8에서 수행되었다.
A/B 두 node를 가정한다.
(1)initSID.ora에서
- A node의 initSID.ora
service_names=INS1, DB1
local_listener="(address=(protocol=TCP)(host=krtest1)(port=1521))"
- B node의 initSID.ora
service_names=INS2, DB1
local_listener="(address=(protocol=TCP)(host=krtest2)(port=1521))"
service_names는 여러개를 지정가능한데, 중요한것은 두 node가 공통으로
사용할 service name한가지는 반드시 지정하여야 한다.
일반적으로 db_name을 지정하면 된다.
host=부분은 hostname이나 ip address를 지정하면 된다.
(2) listener.ora
LISTENER =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = tcp)
(HOST = krtest1)(PORT= 1521)))
B node에서는 krtest1대신 b node의 hostname혹은 ip address를 지정하면
된다
(3) tnsnames.ora은 지정하는 방법이 두가지입니다.
아래에 basic method와 backup method 두 가지 방법에 대한 예를 모두 기술한다.
이중 한가지를 사용하면 되며 backup method의 fail-over시 미리 연결된
session을 사용하므로 시간이 적게 걸릴수 있으나 반대 node에 사용안하는
session을 미리 맺어놓는것에 대한 부하가 있어 서로 장단점이 있을 수 있다.
두 설정 모두 TAF뿐 아니라 connect time fail-over도 가능한 설정이다.
즉 A node가 fail시 같은 tns service name을 이용하여서 (여기서는 opsbasic
또는 ops1) B node로 접속이 이루어진다.
address=로 정의된 address절이 위쪽을 먼저 시도하므로 정상적인 상태에서
B node로 접속을 원하는 경우는 opsbasic의 경우 krtest2를 위쪽에 적고,
ops1/ops2의 경우는 ops2를 사용하도록 한다.
여기에서 (enable=broken)설정이 되어 있는데 이것은 client machine에 설정되어
있는 TCP keepalive를 이용하는 것으로 network부하를 고려하여 설정을 제거할
수 있다.
a. basic method
krtest1의 tnsnames.ora에서는 opsbasic과 ops2에 대해서 설정해두고,
krtest2 node에서는 opsbasic과 ops1을 설정한 후, backup=ops2를
backup=ops1으로 수정하면 된다.
opsbasic =
(description=
(address_list=
(enable=broken)
(load_balance=off)
(failover=on)
(address= (protocol=tcp) (host=krtest1) (port=1521))
(address= (protocol=tcp) (host=krtest2) (port=1521))
(connect_data =
(service_name=DB1)
(failover_mode=
(type=select)
(method=basic)
(backup=ops2))))
ops1 =
(description =
(enable=broken)
(load_balance=off)
(failover=on)
(address=(protocol=tcp)(host=krtest1) (port=1521))
(connect_data = (service_name = DB1)))
ops2 =
(description =
(enable=broken)
(load_balance=off)
(failover=on)
(address=(protocol=tcp)(host=krtest2) (port=1521))
(connect_data = (service_name = DB1)))
b. preconnect method
아래 예제의 ops1, ops2가 모두 같은 tnsnames.ora에 정의되어 있어야 하며,
ops1을 이용하여 접속하여 krtest1을 사용시에도 미리 backup session을
krtest2에 맺어둔 상태에서 작업하게 된다.
ops1 =
(description =
(address_list =
(enable=broken)
(load_balance=off)
(failover=on)
(address=(protocol=tcp)(host=krtest1) (port=1521))
(address=(protocol=tcp)(host=krtest2) (port=1521))
(connect_data = (service_name = DB1)
(failover_mode=
(backup=ops2)
(type=select)
(method=preconnect))))
ops2 =
(description =
(address_list=
(enable=broken)
(load_balance=off)
(failover=on)
(address=(protocol=tcp)(host=krtest2) (port=1521))
(address=(protocol=tcp)(host=krtest1) (port=1521))
(connect_data = (service_name = DB1)
(failover_mode=
(backup=ops1)
(type=select)
(method=preconnect))))
Reference Documents
------------------- -
ORACLE8 OPS 환경에서 FAILOVER SETUP 방법(TRANSPARENT APPLICATION FAILOVER)
제품 : ORACLE SERVER
작성날짜 : 2004-08-13
ORACLE8 OPS 환경에서 FAILOVER SETUP 방법
========================================
SCOPE
Standard Edition 에서는 Real Application Clusters 기능이 10g(10.1.0) 이상 부터 지원이 됩니다.
Explanation
oracle 7 ops (sqlnet v2.3.x 이상)에서는 fail로 인한 failover 지원이 manual
하게 reconnect를 하도록 하여 지원이 되었다. <bulletin 11033 참고>
이는 sql*net기능을 사용하여 connection time failover 기능을 사용하는 경우이다.
하지만, oracle 8 이상 에서는 automatic reconnection이 가능하게 되었다.
즉, run-time failover가 가능하다.
이는 일단 connection이 이루어진 후에 발생하는 모든 failover는
Transparent Application Failover 코드에 의해 처리된다.
다음은 Oracle 8 TAF(Transparent Application Failover) setup 방법이다.
tnsnames.ora file에 다음의 parameter를 지정하여 가능하다.
1. failover_mode : run time 시에 failover가 가능하게 한다.
2. TYPE (Required) : failover 후의 operation을 지정한다.
SESSION - failover 발생 시 새로운 session이 다른 instance에
reconnection되며 이전 session에서의 모든 uncommit된
작업은 rollback 된다.
select도 이어서 진행되지 못한다.
SELECT - failover 발생 시 새로운 session이 다른 instance에
reconnection되며 이 때 long query나 복잡한 query 등의
작업 수행 시 작업이 이어서 진행된다.
단, dml 작업은 rollback된다.
NONE - This is the default. No automatic failover
3. METHOD : 어떻게 failover할지를 지정한다.
BASIC - failover 발생 시에 backup instance(server)로 다시 접속한다.
PRECONNECT - primary instance와 backup instance 두 개에 모두
connection 맺어 놓은 후 failover 시에 backup
instance를 통해 service한다.
***< 중요 > 현재 PRECONNECT는 최소한 8.0.5는 되어야 하며
BASIC은 8.0.6이나 8.1.5에서만 가능하다.
4. BACKUP : failover 시 접속할 instance의 정보를 기술한다.
tnsnames.ora의 alias name을 기술한다.
Example
다음은 tnsnames.ora file의 example이다.
< example 1 >
=========================================================================
node1.WORLD =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = node1)(Port = 1521))
(CONNECT_DATA = (SID = SID1)
(FAILOVER_MODE = (BACKUP = node2)
(TYPE = SELECT )
(METHOD = PRECONNECT))
node2.WORLD =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = node2)(Port = 1521))
(CONNECT_DATA = (SID = SID2)
(FAILOVER_MODE = (BACKUP = node1)
(TYPE = SELECT )
(METHOD = PRECONNECT))
========================================================================
< test 1 >
1) 각 node의 instance를 start한다.
2) 각 node의 listener를 구동한다.
node1% lsnrctl start lsnr_node1
node2% lsnrctl start lsnr_node2
3) node1에서 다음의 작업을 한다.
sqlplus scott/tiger@node1
SQL> select count(*) from emp;
COUNT(*)
14
4) Node1에서 instance를 shutdown abort한다.
5) 3번의 session에서 select를 다시 한다.
SQL> select count(*) from emp;
ERROR at line 1:
ORA-25404: lost instance
다시 select한다.
SQL> select count(*) from emp;
COUNT(*)
14
Data가 node2 instance를 통해 제대로 select되며 이는 failover가 정상적으로
작동됨을 알 수 있다.
< example 2 >
다음은 TAF(Transparent Application Failover) 기능에 SQL*NET의
connection time failover 기능을 추가한 경우이다.
========================================================================
node1.WORLD =
(DESCRIPTION_LIST =
(DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= node1)(Port= 1521))
(CONNECT_DATA =(SID = SID1)(SERVER=SHARED)
(FAILOVER_MODE = (BACKUP = node2)(TYPE=SESSION)(METHOD=PRECONNECT))))
(DESCRIPTION =(ADDRESS = (PROTOCOL= TCP)(Host= node2)(Port= 1521))
(CONNECT_DATA =(SID = SID2)(SERVER=SHARED)
(FAILOVER_MODE = (BACKUP = node1)(TYPE=SELECT)(METHOD=PRECONNECT))))
node2.WORLD =
(DESCRIPTION_LIST =
(DESCRIPTION =(ADDRESS = (PROTOCOL= TCP)(Host= node2)(Port= 1521))
(CONNECT_DATA =(SID = SID2)(SERVER=SHARED)
(FAILOVER_MODE = (BACKUP = node1)(TYPE=SESSION)(METHOD=PRECONNECT))))
(DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= node1)(Port= 1521))
(CONNECT_DATA = (SID = SID1)(SERVER=SHARED)
(FAILOVER_MODE = (BACKUP = node2)(TYPE=SELECT)(METHOD=PRECONNECT))))
=======================================================================
< test 2 >
1) 각 node의 instance를 start한다.
2) 각 node의 listener를 구동한다.
node1% lsnrctl start lsnr_node1
node2% lsnrctl start lsnr_node2
3) node1에서 다음의 작업을 한다.
sqlplus scott/tiger@node1
SQL> select count(*) from emp;
COUNT(*)
14
4) Node1에서 instance를 shutdown abort한다.
5) 3번의 session에서 select를 다시 한다.
ORA-25404 error조차 없이 select된다.
SQL> select count(*) from emp;
COUNT(*)
14
Data가 node2 instance를 통해 제대로 select되며 이는 failover가 정상적
으로 작동됨을 알 수 있다.
(참고 1) dedicated 방식의 경우는 shared 대신에 dedicated를 기술한다.
물론 initSID.ora의 mts를 기술하지 않고 tnsnames.ora의 server option을 쓰지
않으면 default로 dedicated 방식을 쓴다.
(참고 2) example 1을 사용할 경우 session 종료 후 재접속 시 자동 failover가
되지는 않는다.
Reference Documents
oracle8 parallel server concepts & administration manualHi,
Many Thanks for your inputs. I created 2 non default listeners LISTENER_ORCL1 and LISTENER_ORCL2 on each node respectively.
I was able to set LISTENER_ORCL as remote listener. But for some reason, the local_listener does not get set. The statement is executed successfully but no changes in the parameters and TAF setup does not work. I initially had the default port number of 1521 for the listener but then changed it to 1522 (to test if it had something to do with default port no) but still no success.
SQL> show parameters listener
NAME TYPE VALUE
local_listener string
mts_listener_address string
mts_multiple_listeners boolean FALSE
remote_listener string LISTENER_ORCL
SQL> alter system set local_listener='LISTENER_ORCL1' SCOPE=BOTH SID='ORCL1';
System altered.
SQL> alter system set local_listener='LISTENER_ORCL2' SCOPE=BOTH SID='ORCL2';
System altered.
SQL> show parameters listener
NAME TYPE VALUE
local_listener string
mts_listener_address string
mts_multiple_listeners boolean FALSE
remote_listener string LISTENER_ORCL
Help Plssssssssssss!!!!!!!! -
Transparent Application Failover (TAF) FAILED!
Dear all,
I have installed RAC 10gR2 on 64-bit Oracle Enterprise Linux, iscsi as shared disks and ASM as storage option. I follwoed document hunter_rac10gr2_iscsi.
Everything is ok both database instance are up and running.
Value in the show parameter services is
bss.beaconhouse.edu.pk, orcl_taf, ora_devp
TNSNAMES.ORA file on a window based client machine contains the following entry:
ora_devp, ora_devp.world =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.63)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.64)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bss.beaconhouse.edu.pk)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
But still when I connect to database from client machine and after verifying the connected instance, I stop the services of that instance from RAC server. The client automatically do not shirt to the second instance but give error.
My Transparent Application Failover is not configured properly. Though as i told you both instance are UP and running i can stop and start any one instance.
Kindly help me to implement the very basic feature of RAC.
Thanks, ImranIt seems that Hunter's scripts configure only the "oracle_taf" service for TAF.
Therefore, to test TAF your client should be attempting to connect to the TAF
service "oracle_taf" not "bss.beaconhouse.edu.pk"
See under Step 24
Database Services : For this test configuration, click Add, and enter orcl_taf as the "Service Name." Leave both instances set to Preferred and for the "TAF Policy" select "Basic".
and
"Create the orcl_taf Service
During the creation of the Oracle clustered database, you added a service named orcl_taf that will be used to connect to the database with TAF enabled. During several of my installs, the service was added to the tnsnames.ora, but was never updated as a service for each Oracle instance.
Use the following to verify the orcl_taf service was successfully added:
SQL> show parameter service
NAME TYPE VALUE
service_names string orcl.idevelopment.info, orcl_taf
If the only service defined was for orcl.idevelopment.info, then you will need to manually add the service to both instances:
SQL> show parameter service
NAME TYPE VALUE
service_names string orcl.idevelopment.info
SQL> alter system set service_names =
2 'orcl.idevelopment.info, orcl_taf.idevelopment.info' scope=both; "
and step 30
TAF Demo
From a Windows machine (or other non-RAC client machine), login to the clustered database using the orcl_taf service as the SYSTEM user:
C:\> sqlplus system/manager@orcl_taf
Message was edited by:
Hemant K Chitale -
Hi all,
Need help to setup High Availability at my workplace, can somebody please tell that Weblogic12c support Application Failover ?
If yes, then how does Weblogic12c detect an application failure (OutOfMemoryException)?
WebLogic Server - General@Hi there user,
you can achieve HA in different levels:
1. On a single machine - here you need to set up nodemanager. When started by nodemanager, any server failures will be detected and the nodemanager will try to restart it. OOME is an exception thrown by the JVM and the server state should go FAILED at some point then the NM will try to restart it. Nodemanager is the simplest HA solution you can and must implement for production environment;
2. On redundant machine - you can configure WLS clustering, but you will need more complex environment, i.e. you will need a load balancer in front of the cluster to reverse proxy the requests. This scenario is can also use nodemanager to control the WLS instances on each machine
3. Cluster with server/service migration - the most complex scenario where in cases of machine failure the WLS cluster can "relocate" resources (services and whole severs) to spare machines.
In your case OOME should cause the JVM respectively WLS to be unresponsive, hence the nodemanager will detect this at some point and will try to restart the WLS.
Hope this helps,
A. -
How to do application failover?
I'm using weblogic cluster and oracle http server as loadbalancer.
As we know: "mod_wl_ohs only support container level failover and NOT application level failover. mod_wl_ohs continues to route requests to a down application as long as the managed server is up and running."
So how I can protect a application too?Hi,
Application level failover can be achieved by using session replication across the cluster.
By using oracle http server(webserver) you are doing only load balancing but not failover.
The below snippet in weblogic.xml should helps you
<wls:session-descriptor>
<wls:persistent-store-type>replicated_if_clustered</wls:persistent-store-type>
</wls:session-descriptor>
http://docs.oracle.com/cd/E13222_01/wls/docs90/cluster/failover.html#1022034
Thanks & Regards,
Murali.
============ -
TAF application Failover is not happening
Hi,
I have installed and configured Oracle RAC.
My Configurations are:
OS: RHEL 5.5 64 bit (2 Servers)
Database: Oracle 11g R2
Client: Oracle 11g R2
Database name:orcl
Instances:orcl1,orcl2
TAF_service name: TAF_orcl
I have configured TAF using the metalink ID 1312749.1
Issue : When in connect from client by system/password@scan-name:1521/TAF_orcl i am able to connect to the database and this is happening from both the nodes also.
When i checked my instance name its given me the output eg: orcl1
When i shut down the instance orcl1 from the node1 my connection is lost from the client.
Please let me know whether there is a misconfiguration.
Regards,
BobsHi,
Thanks for the reply.
Here is the TAF_orcl
TAF_orcl
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=cluster-scan)(PORT=1521))
(LOAD_BALANCE=yes)
(FAILOVER=on)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=TAF_orcl)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=180)
(DELAY=5)
Regards,
Bobs -
Failover or Replication of APEX Applications
All,
Our APEX 2.2 Applications work very well in production at our production facility. Now we would like to handle site/application failover to our backup facility.
The concern centers on how to replicate or failover uploaded documents (FLOWS_FILES.WWV_FLOW_FILE_OBJECTS$). Customer Data tables are replicating fine via Oracle replication. Each of our Sites has APEX Workspaces loaded. Each APEX application maintains its application number in each workspace. Each Workspace is uniqely named.
Any help or direction on this would be appreciated.Technically speaking, yes. Any Oracle-supported replication technology should be able to handle replicating just that specific table.
But from an Apex "best practices" perspective, it is not recommended to use that table for storing your real files. Think of that table as the default/global system table where files are uploaded for all workspaces. Each application should copy the uploaded file from that table into your own table (as shown in the documentation) and that is the table you should consider replicating.
If a file is uploaded to
Unlikely, because the filenames and "ids" generated by the Apex engine during the upload are unique to each environment (those long numeric ids). So if you copy the row to some other database, that id won't mean anything there. -
In oracle rac, If user query a select query and in processing data is fetched but in the duration of fetching the particular node is evicted then how failover to another node internally?
The query is re-issued as a flashback query and the client process can continue to fetch from the cursor. This is described in the Net Services Administrators Guide, the section on Transparent Application Failover.
-
APEX Application behaviour in a RAC setup
Hi
Caveat first: I'm pretty new to Oracle RAC and just looking into it as an option. We have an APEX application currently running in Oracle 11gR2 single node currently and are considering HA for this.
My question is: What would be the expected behaviour seen by a User of an APEX application, in the event of a node failure, when running with an OHS / RAC configuration? Will they get "transparent fail-over" and see nothing or will they see an error?
I appreciate I could post in the APEX forum, but feel that is probably more of a development forum and possibly someone here has had to look at things at this level.
I have read what I think may be the definitive reference for this:
http://www.oracle.com/technetwork/developer-tools/apex/learnmore/apex-rac-wp-133532.pdf
but while it covers most of what I want I don't believe I have found an answer to my question
This states:
"The Transparent Application Failover (TAF) feature of Oracle Net Services is a runtime failover for high-availability environments. It enables client applications to automatically reconnect to the database if the connection fails and, optionally, resume a SELECT statement that was in progress. The reconnection happens automatically from within the Oracle Call Interface (OCI) library. For applications that do insert, update or delete transactions, the application must trap the error when the failure occurs, rollback the transaction, and then resubmit. If the application is not written to be TAF aware, the session will get disconnected."
However (as I understand it) APEX runs in the database and would fail with the database, it isn't a typical "client application" connecting to Oracle via a TAF aware connection pool - it is essentially a large pl/sql package and TAF only covers SELECT statements not packages.
May be I'm over-reading this and it's simpler than that: APEX/Mod_plsql might just handle it?
- APEX User/HTTP session state is stored in database APEX: Understanding session state which is available on other nodes
- Mod_plsql in OHS can detect the error returning and reissues the request to good server and APEX on that instance can retrieve Users/HTTP state and process the request (APEX/RAC doc states mod_plsql can see an error from database and cleanup connection up and form a new connection, but not that it will retry the request for the client into other APEX/DB node).
I'm really just after a (transparent/non-transparent) statement based on experience, but an outline of how the components behave would be useful.
Thanks in advance
DaveHi
Any chance of getting that link outside of Metalink? - I'm trying to get our customer support id, but no luck at present.
I'm aware that APEX can run with RAC (as per the link I posted) - I'm really after next level info around behaviour in that environment.
Thanks
Dave -
Standby data Gurad 10g switchover problem with application
Hi!
I'm working on oracle 10g and try to make standby datagurad with same dbname eg. if my primary database name is orcl then my standby database should be orcl with same location because one of mine application is accepting only orcl not standbyorcl.
Because when I'm doing switchover to standby database application not able to read standbyorcl and application result through error and close.
Could any one help me to make init.ora parameter for primary and standinit.ora for standby with same database name.
Amit KumarYou should use an Application Service instead of the standard Database Service in the first place to take care of Role Changes in your Data Guard configuration properly.
Look here for an example:
http://uhesse.wordpress.com/oracle-database-ha-architecture/2009/08/19/connect-time-failover-transparent-application-failover-for-data-guard/
Kind regards
Uwe Hesse
http://uhesse.wordpress.com -
Hi there,
we have an existing JDBC applications connecting to one database (doing retrieve data, update data) and now looking to implement a failover, since this database is often down, either due to network issue or CPU panic.
Can anyone point me on how the best way to go about doing this?
It seems to me that 1) I have to first have the Oracle instances configured for this, and 2) then do the modifications on the JDBC code level.
Any help would be greatly appreciated! Thank you for your help.
Cheers,
KevinHI Kevin,
Configuring failover is pretty simple, there are 2 basic ways to config failover,
1) By re-directing the requests to a stand-by database :
if you have a stand-by database, then the tnsnames entry can be configured in such a way that when the primary instance fails, the requests will automatically be routed to the stand-by db.
[ no code change required ]
2) By handling failover using call-back methods : In this case, Callback methods can be registered with the database connection, when the database goes down, the callback methods will be notified and you can alert the user that the database is down. And when the database comes up, the callback methods will be called again and notified that the db is up and you can continue processing.
[ Callback methods have to be implemented ]
To learn more about basic failover refer to Transparent Application Failover(TAF) sample @ http://otn.oracle.com/sample_code/tech/java/sqlj_jdbc/files/9i_jdbc/content.html#ocitrans
[ certified on Solaris and Linux ]
refer to the Net Services Admin Guide for more info on configuring TAF
TAF is available only with Oracle9i OCI JDBC driver, you have to use 9i drivers to connect to the 8i DB.
Regards
Elango.
Maybe you are looking for
-
Dynamic Creation of UI in adobe forms??
Hi Experts, I need to create a dynamic interactive form and dynamic UI elements in the interactive form. As per my requirement I need to display a pdf and I will be getting values from the RFC's. I need to show the form segments and the UI elements o
-
I have been charged twice for zineo magazine
iTunes has charged twice for a magazine download from zineo who do I get money back off and how
-
Hello All I have an issue pls help, I had formatted my 1TB WD external hard drive which could be used on my Mac Pro but for some reason now its working only on my Mac Pro and does not read on my old sony vio winodws PC which making my life **** as my
-
Hi, I would like to know how I can automate the output of data collected in CSV format? Manual intervention i.e. output and subsequent Server upload is not efficient. I would like to have the data output, such as a CSV file, as an email attachment wh
-
Does the new MBP with gt 750m get too hot while gaming?
I am planning to buy the new MBP with gt 750m and upgrade the cpu to intel i7-4960hq (2.6 GHz, 3.8 GHz max) but I am really confused. I am not going to use it for hardcore gaming but I will occasionally play Dota 2 and Civ 5. Additionally I will be u