--FAILOVER:--
recover managed standby database cancel;
shutdown immediate
startup nomount
alter database mount standby database;
recover standby database until cancel;
cancel
alter database activate standby database;
--Switchover Method:--
На праймари:
shutdown immediate
startup restrict
alter system archive log current;
select thread#, max (sequence#) from v$archived_log where APPLIED='YES' group by thread#;
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
На стендбае:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
На праймари:
shutdown immediate
startup mount;
На стендбай:
alter database open;
select name, database_role from v$database;
На праймари:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
alter system switch logfile;
Триггер смены service_name после смены роли базы данных:
CREATE OR REPLACE TRIGGER service_name_trg AFTER DB_ROLE_CHANGE ON DATABASE DECLARE
role VARCHAR(30);
BEGIN
SELECT DATABASE_ROLE INTO role FROM V$DATABASE;
IF role = 'PRIMARY' THEN
DBMS_SERVICE.START_SERVICE('ARTDBPR');
ELSE
DBMS_SERVICE.START_SERVICE('ARTDBST');
END IF;
END;
recover managed standby database cancel;
shutdown immediate
startup nomount
alter database mount standby database;
recover standby database until cancel;
cancel
alter database activate standby database;
--Switchover Method:--
На праймари:
shutdown immediate
startup restrict
alter system archive log current;
select thread#, max (sequence#) from v$archived_log where APPLIED='YES' group by thread#;
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
На стендбае:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
На праймари:
shutdown immediate
startup mount;
На стендбай:
alter database open;
select name, database_role from v$database;
На праймари:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
alter system switch logfile;
Триггер смены service_name после смены роли базы данных:
CREATE OR REPLACE TRIGGER service_name_trg AFTER DB_ROLE_CHANGE ON DATABASE DECLARE
role VARCHAR(30);
BEGIN
SELECT DATABASE_ROLE INTO role FROM V$DATABASE;
IF role = 'PRIMARY' THEN
DBMS_SERVICE.START_SERVICE('ARTDBPR');
ELSE
DBMS_SERVICE.START_SERVICE('ARTDBST');
END IF;
END;
Комментариев нет:
Отправить комментарий