Role Transition on physical standby database

게시 날짜: 2011/10/02, 카테고리: DGA, ORACLE
태그:, , , , ,

SWITCHOVER

Switchover 는 일반적으로 계획적으로 시스템을 다운시킬 시 수행하는 방법이다.  OS 나 HW 의 업그레이드, 혹은 오라클 데이터베이스 소프트웨어에 대한 롤링 업그레이드 혹은 패치셋을 적용하기 위해 사용한다.

스위치 오버는 두 단계로 나뉜다. 첫번째 단계에서는 primary 를 standby 로 변경하고 두번째 단계에서는 standby 를 primary 로 전환하는 단계이다.

Switchover 준비하기

  • Physical Standby 환경에서 Primary 의 인스턴스가 Open, Standby 가  Mount 상태인지 확인한다.
  • Logical Standby 환경에서는 Primary 와 Standby 의 인스턴스가 Open 인지 확인한다.
  • RAC 환경에서의 Switchover 는 하나의 인스턴스만 남기고 모두 shutdown 시킨다. Switchover 가 완료되면 모든 인스턴스를 다시 Open 한다.

Database 의 롤이 바뀔시 DB_ROLE_CHANGE 라는 이벤트가 발생한다. 이 이벤트를 이용하여 사용자 정의 트리거를 작성할 수도 있다. 이 이벤트는 데이터베이스가 switchover 이후 첫번째로 open 될 시 발생된다. 사용자는 V$DATABASE 뷰의 DATABASE_ROLE 컬럼을 이용하여 현재 데이터베이스의 롤을 확인해 볼 수 있다.

Switchover in Physical Standby Databases

1. V$DATABASE.SWITCHOVER_STATUS 컬럼을 조회하여 standby 로 변경할 수 있는지 확인한다.

2. Primary 에서 Switchover 를 수행한다.
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

위 명령을 수행하면 Primary 는 Standby 로 롤이 변경된다. 현재 콘트롤 파일은 switchover 전에 현 SQL 세션 트레이스 파일에 백업되며  이는 필요하다면 현 콘트롤파일을 재생성 할 수 있다.

3. 전 primary 인스턴스를 재기동한다.
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;

이 Switchover 단계에서는 양 노드의 database 가 모두 standby 가 된다.

4. V$DATABASE 뷰의 상태를 확인
SWITCHOVER_STATUS 컬럼을 확인하여 ‘TO_PRIMARY’로 변경 되었는지 확인한다.

5. Physical standby databse 를 primary 로 전환
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY

6. 마무리
만약 Standby 가 마지막 시작된 후로 한번도 read-only 모드로 open 을 한 적이 없을경우 데이터베이스를 바로 오픈시켜 주면 된다.
SQL> ALTER DATABASE OPEN;

반면 마지막 인스턴스 시작후 한번이라도 read-only 모드로 데이터베이스를 open 한 적이 있었다면 인스턴스를 재기동 해야 한다.
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

7. 필요할 경우 STANDBY 에서 LOG APPLY SERVICE 재시작.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE [DISCONNECTC];

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중