Sunteți pe pagina 1din 2

1. You can use Transparent Application Failover (TAF) 2.

CWO = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = Projsvr)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = Backup)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = CWO) ) )

The service 'CWO' needs to be created manually on the primary database.


BEGIN DBMS_SERVICE.CREATE_SERVICE('CWO','CWO'); END; /

After creating the service needs to be manually started.


BEGIN DBMS_SERVICE.START_SERVICE('CWO'); END; /

Once this is done several of the default parameters can now be set for 'CWO'.
BEGIN DBMS_SERVICE.MODIFY_SERVICE ('CWO', FAILOVER_METHOD => 'BASIC', FAILOVER_TYPE => 'SELECT', FAILOVER_RETRIES => 200, FAILOVER_DELAY => 1); END; /

Finally a database STARTUP trigger should be created to ensures that this service is only offered if the database is primary.
CREATE TRIGGER CHECK_CWO_START AFTER STARTUP ON DATABASE DECLARE

V_ROLE VARCHAR(30); BEGIN SELECT DATABASE_ROLE INTO V_ROLE FROM V$DATABASE; IF V_ROLE = 'PRIMARY' THEN DBMS_SERVICE.START_SERVICE('CWO'); ELSE DBMS_SERVICE.STOP_SERVICE('CWO'); END IF; END; /

Once this is done use your "lsnrctl status" to check. Believe it or not, "CWO" is not mandatory. Best Regards mseberg

S-ar putea să vă placă și