2011. 11. 9. 15:18
DATAGUARD에서 FAILOVER를 할 때 미리 V$DATABASE의 SWITCHOVER_STATUS를 확인하여 TO_STANDBY로 표시될 때만 FAILOVER 기능을 사용하여 PRIMARY/STANDBY DB의 역할 변경이 가능하게 된다.
하지만 간혹 SWITCHOVER_STATUS이 계속해서 ACTIVE SESSIONS으로 나타나는 경우가 발생하는데 이런 경우는 다음과 같이 찾아보도록 하자.
위의 결과에서 나타나는 결과에서 PROCESS 컬럼의 값에 따라서 해결책을 찾을 수 있다.
위의 작업을 종료한 후 다시 SWITCHOVER_STATUS 컬럼값을 확인하면 TO_STANDBY로 바뀐 것을 확인할 수 있다.
참고로 해당 작업이 무엇인지 정확히 알고자 한다면 다음 쿼리를 실행하면 그 내용을 알 수가 있다.
하지만 간혹 SWITCHOVER_STATUS이 계속해서 ACTIVE SESSIONS으로 나타나는 경우가 발생하는데 이런 경우는 다음과 같이 찾아보도록 하자.
SQL>
SELECT SID, PROCESS, PROGRAM FROM V$SESSION
2
WHERE
TYPE = ‘USER’ AND SID
!= (SELECT DISTINCT SID FROM V$MYSTAT);
위의 결과에서 나타나는 결과에서 PROCESS 컬럼의 값에 따라서 해결책을 찾을 수 있다.
PROCESS | 설 명 | 해결방법 |
CJQ0 또는 Jnnn | Job Queue Scheduler Process or its Slaves | ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; |
QMN0 | Advanced Queue Time Manager | ALTER SYSTEM SET AQ_TM_PROCESSES=0; |
DBSNMP | ORACLE EM Management Agent | Stop the EM agent by invoking the following command: emctl stop agent |
위의 작업을 종료한 후 다시 SWITCHOVER_STATUS 컬럼값을 확인하면 TO_STANDBY로 바뀐 것을 확인할 수 있다.
참고로 해당 작업이 무엇인지 정확히 알고자 한다면 다음 쿼리를 실행하면 그 내용을 알 수가 있다.
SQL> SELECT job, schema_user, what
2 FROM DBA_JOBS;