-- 사전 준비: 데이터 가드 연결상태 확인
-----------------------------------------------------------------------------------------
-- shell (nero)
-----------------------------------------------------------------------------------------
-- 리스너 상태 확인
lsnrctl status
-----------------------------------------------------------------------------------------
-- sql (sys@nero)
-----------------------------------------------------------------------------------------
CONNECT / AS SYSDBA
-- DB 인스턴스 상태 확인 (open)
SELECT instance_name, status FROM v$instance;
-- Redo 전송 상태 확인
SELECT dest_id, status, target
FROM v$archive_dest
WHERE target = 'STANDBY';
-----------------------------------------------------------------------------------------
-- shell (nerostby)
-----------------------------------------------------------------------------------------
-- 리스너 상태 확인
lsnrctl status
-----------------------------------------------------------------------------------------
-- sql (sys@nerostby)
-----------------------------------------------------------------------------------------
-- DB 인스턴스 상태 확인 (mount)
SELECT instance_name, status FROM v$instance;
-- MRP 확인 (MRP0 APPLYING_LOG 나오면 정상)
SELECT process, status FROM v$managed_standby;
-- (선택) MRP 없으면, MRP 시작
RECOVER MANAGED STANDBY DATABASE DISCONNECT;
SELECT process, status FROM v$managed_standby;
-- standby 롤이 맞는지 확인
SELECT open_mode, database_role FROM v$database;
-- 사전 준비: 현재 상태 확인
-----------------------------------------------------------------------------------------
-- sql (sys@nero)
-----------------------------------------------------------------------------------------
select open_mode, database_role from v$database;
select switchover_status from v$database;
-----------------------------------------------------------------------------------------
-- sql (sys@nerostby)
-----------------------------------------------------------------------------------------
select open_mode, database_role from v$database;
-- switch over 작업 진행
-----------------------------------------------------------------------------------------
-- PFILE 수정
-----------------------------------------------------------------------------------------
-- initPROD.ora
fal_server=NEROSTBY # fal_server: primary DB
fal_client=NERO # fal_cliebt: standby DB
-- initPROD.ora
fal_server=NERO # fal_server: primary DB
fal_client=NEROSTBY # fal_cliebt: standby DB
-----------------------------------------------------------------------------------------
-- sql (sys@nero)
-----------------------------------------------------------------------------------------
ALTER SYSTEM archive log current;
ALTER SYSTEM switch logfile;
ALTER DATABASE COMMIT TO switchover TO physical standby;
-- 또는 세션이 있는 경우 ** with session shutdown 옵션 추가
-- alter database commit to switchover to physical standby with session shutdown;
startup mount
select open_mode, database_role from v$database;
-----------------------------------------------------------------------------------------
-- sql (sys@nerostby)
-----------------------------------------------------------------------------------------
select switchover_status from v$database;
alter database recover managed standby database cancel;
alter database commit to switchover to primary;
shutdown immediate
startup
select open_mode, database_role from v$database;
-----------------------------------------------------------------------------------------
-- sql (sys@nero)
-----------------------------------------------------------------------------------------
recover managed standby database disconnect;
select process, status from v$managed_standby;
-- 검증하기
-----------------------------------------------------------------------------------------
-- sql (sys@nerostby)
-----------------------------------------------------------------------------------------
connect scott/tiger
insert into emp (empno, ename, job, sal, deptno)
values (9999, 'SWITCHTEST', 'MANAGER', 5000, 30);
commit;
select count(*) from emp;
-- 로그 스위치 발생
connect / as sysdba
alter system switch logfile;
alter system archive log current;
-----------------------------------------------------------------------------------------
-- sql (sys@nero)
-----------------------------------------------------------------------------------------
alter database recover managed standby database cancel;
alter database open read only;
connect scott/tiger
select count(*) from emp;
select empno, ename, job from emp where empno = 9999;
-- 확인 후 다시 복구 모드로
connect / as sysdba
shutdown immediate
startup mount
recover managed standby database disconnect;
SELECT instance_name, status FROM v$instance;