기본 장치에서 장애가 발생할 경우, 데이터베이스 페일오버를 수행할 수 있습니다. 이 항목에서는 9.0.0 이전 버전을 실행하는 장치에 대한 절차를 설명합니다.

참고: 이 항목은 9.0.0 이전 버전을 실행하는 장치에만 적용됩니다. 최신 장치와 관련된 내용은 데이터베이스 페일오버 - 최신 장치를 참조하십시오.

기본 장치에서 장애가 발생할 때 보조 데이터베이스는 읽기 전용입니다. 페일오버 시 다음 작업을 수행합니다.

  • 보조 데이터베이스에서 쓰기 작업 사용
  • 보조 서비스 제공자 장치를 기본 서비스 제공자 장치로 영구 승격
  • 보조 테넌트 장치를 기본 테넌트 장치로 영구 승격
  • 기본 장치 다시 시작

보조 데이터베이스에서 쓰기 작업 사용

이 절차의 목표는 기본 장치를 사용할 수 없는 경우 기본 데이터베이스를 보조 장치(테넌트 또는 서비스 제공자)로 전환하는 것입니다. 또한 쓰기 작업을 사용하도록 설정하여 보조 장치의 데이터베이스를 기본 데이터 소스로 전환하는 것입니다.

  1. 기본 장치(액세스 가능한 경우)와 보조 장치에서 dtService, av-manager, 진단 서비스를 중지합니다.
    sudo service dtService stop
    sudo service av-manager stop
    sudo service diagnose stop
  2. 기본 장치(액세스 가능한 경우)와 보조 장치에서 slony 데몬을 모두 중지합니다.
    sudo killall slon
  3. 보조 장치에서 fdb 데이터베이스에 연결하고 다음 SQL 명령을 실행합니다.
     drop schema _slony cascade;
  4. 장치가 테넌트 조직에 속하는 경우 EDB 및 AVDB에 대해 3단계를 반복합니다.
  5. 기본 장치의 데이터베이스에 계속 액세스할 수 있는 경우, 데이터베이스를 백업하고 데이터베이스 파일을 복사한 후 데이터베이스를 보조 장치로 복원합니다(데이터베이스 백업 및 복원 참조).
  6. 편집할 /usr/local/desktone/release/active/conf/fdb.properties 파일을 열고 기본 장치의 IP 주소를 제거합니다.
  7. 장치가 테넌트 조직에 속하는 경우, /usr/local/desktone/release/active/edb.properties에 대해 6단계를 반복합니다.
  8. 장치가 테넌트 조직에 속하는 경우, /usr/local/desktone/release/active/avdb.properties에 대해 6단계를 반복합니다.
  9. DB_HOST 및 DB_PASSWORD 환경 변수를 설정합니다.
    export DB_HOST=IP_of_TA2_appliance
    export DB_PASSWORD=database_password
    
  10. av-setup 스크립트를 sudo로 실행합니다.
    sudo /usr/local/desktone/scripts/av-setup
  11. 편집할 applications.properties 파일을 엽니다.
    vi /usr/local/xmpms/diagnose/config/application.properties
  12. applications.properties 파일에서 다음과 같이 줄을 편집합니다.
    db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true
    db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
    
  13. 보조 장치에서 dtService, av-manager, 진단 서비스를 시작합니다.
    service dtService start
    service av-manager start
    service diagnose start

보조 서비스 제공자 장치를 기본 서비스 제공자 장치로 승격

보조 서비스 제공자 장치를 기본 서비스 제공자 장치로 영구 승격하려면 다음 단계를 수행합니다.

이 예에서 기본 장치는 'A', 보조 장치는 'B'이고 장치 A에 액세스할 수 있습니다(이 장치의 데이터베이스에 액세스할 수 있음).

  1. 모든 서비스 제공자 장치에서 dtService를 중지합니다.
    service dtService stop
  2. 모든 서비스 제공자 장치에 로그인합니다.
  3. 편집할 /usr/local/desktone/release/active/conf/fdb.properties 파일을 열고 실패 상태인 기본 장치의 IP 주소를 제거합니다.
  4. 모든 서비스 제공자 장치에서 slony 데몬을 모두 중지합니다.
    killall slon
  5. 기본 장치와 보조 장치에서 FDB 데이터베이스에 연결하고 다음 SQL 명령을 실행합니다.
    drop schema _slony cascade;
  6. 데이터 센터의 보조 장치에서 다음 SQL 명령을 실행합니다('A'와 'B'를 해당 장치의 이름으로 바꿈).
    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; 
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
  7. 장애가 발생한 장치 이외의 서비스 제공자 장치에서 dtService를 시작합니다.
    service dtService start

    다음 단계를 진행하기 전에 장치가 가동되어 실행 중인지 확인합니다.

  8. 기본 서비스 제공자 장치(보조 서비스 제공자 장치가 기본임)를 제외한 모든 서비스 제공자 장치에서 dtService를 중지합니다.
    service dtService stop
  9. 모든 서비스 제공자 장치에서 slon 데몬을 시작합니다.
    /usr/local/desktone/scripts/start_slon_fdb.sh
  10. 브라우저를 사용하여 기본 서비스 제공자 장치(보조 서비스 제공자 장치가 기본임)의 서비스 센터에 로그인하고, slony 다시 초기화 작업을 수행합니다.
    1. 장치 > 유지 보수 > Slony 작업으로 이동합니다.
    2. [조직 ID] 드롭다운 목록에서 1000을 선택합니다.
    3. Slony 초기화 버튼을 클릭하여 slony를 다시 초기화합니다.
  11. slony 다시 초기화가 완료되면, 데이터 센터의 보조 장치 FDB에서 다음 명령을 실행합니다.
    SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT  last_value FROM _slony.sl_local_node_id)THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;

    출력이 다음과 같이 표시되어야 합니다.

    set_id | set_comment | local_id | master_node
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t  
    (1 row)
  12. 장애가 발생한 서비스 제공자 장치를 제외한 모든 장치에서 dtService를 시작합니다.
    service dtService start

보조 테넌트 장치를 기본 테넌트 장치로 승격

보조 테넌트 장치를 기본 테넌트 장치로 영구 승격하려면 다음 단계를 수행합니다.

이 예에서 기본 장치는 'A', 보조 장치는 'B'이고 장치 A에 액세스할 수 있습니다(이 장치의 데이터베이스에 액세스할 수 있음).

  1. 조직의 모든 테넌트 장치에서 dtService를 중지합니다.
    service dtService stop
  2. 조직의 모든 테넌트 장치에 로그인합니다.
  3. 편집할 /usr/local/desktone/release/active/conf/fdb.properties 파일을 열고 실패 상태인 기본 장치의 IP 주소를 제거합니다.
  4. 조직의 모든 테넌트 장치에서 slony 데몬을 모두 중지합니다.
    killall slon
  5. 필요한 경우, 기본 장치의 데이터베이스를 백업하고 보조 장치에서 복원합니다.
  6. 기본 장치와 보조 장치에서 FDB 데이터베이스에 연결하고 다음 SQL 명령을 실행합니다.
    drop schema _slony cascade;
  7. 기본 서비스 제공자 장치에서 다음 SQL 명령을 실행합니다('A'와 'B'를 해당 장치의 이름으로 바꿈).
    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A';  
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
  8. 조직의 모든 테넌트 장치에서 slon 데몬을 시작합니다.
    /usr/local/desktone/scripts/start_slon_fdb.sh  
    /usr/local/desktone/scripts/start_slon_edb.sh  
    /usr/local/desktone/scripts/start_slon_avdb.sh
  9. 브라우저를 사용하여 기본 서비스 제공자 장치의 서비스 센터에 로그인하고, slony 다시 초기화 작업을 수행합니다.
    1. 장치 > 유지 보수 > Slony 작업으로 이동합니다.
    2. [조직 ID] 드롭다운 목록에서 테넌트의 조직 ID를 선택합니다.
    3. DB 인스턴스 이름 레이블에서 [패브릭]을 선택합니다.
    4. Slony 초기화 버튼을 클릭하여 slony를 다시 초기화합니다.
  10. slony 다시 초기화가 완료되면, 데이터 센터의 보조 테넌트 장치 FDB에서 다음 명령을 실행합니다.
    SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT  last_value FROM _slony.sl_local_node_id) THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;

    출력이 다음과 같이 표시되어야 합니다(첫 번째 데이터 센터의 기본 장치에서 장애가 발생한 경우).

    set_id | set_comment | local_id | master_node  
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t
    (1 row)
  11. 실패 상태인 테넌트 장치를 제외한 모든 테넌트 장치에서 dtService를 시작합니다.
     service dtService start

기본 장치 다시 시작

페일오버 후 기본 장치를 다시 시작할 때 EDB와 AVDB에서 모두, slony 다시 초기화를 수행합니다.