연속 가용성에 대한 코드

계획된 유지보수, 계획되지 않은 운용중단 및 데이터베이스의 로드 불균형이 애플리케이션에서 숨겨지면 애플리케이션이 지속적인 가용성을 달성합니다. 애플리케이션 모범 사례, 간단한 구성, Oracle Autonomous AI Database가 결합되어 애플리케이션을 지속적으로 사용할 수 있습니다.

계획된 유지 관리 작업을 응용 프로그램에서 숨기는 가장 좋은 방법은 작업 로드 위치에 대한 유지 관리 윈도우(Maintenance windows) 이전에 각 데이터베이스 작업 로드 위치에서 작업을 투명하게 비우는 것입니다. WebLogic Server, UCP(Oracle Universal Connection Pool), OCI Session pool 및 ODP.NET Unmanaged Provider를 포함한 Oracle의 연결 풀 및 중간 계층은 FAN(Fast Application Notification)을 인식하므로, 유지보수 전에 정상적으로 작업을 드레이닝할 수 있도록 데이터베이스 서비스가 이동되기 전에 알림을 받습니다. FAN 알림은 자동으로 유휴 연결을 종료하고 새 서비스 위치에서 새 연결을 열며, 곧 종료될 서비스 위치에서 활성 작업이 완료될 때까지 구성 가능한 시간을 허용합니다. IBM WebSphere와 같은 주요 타사 JDBC 중간 계층은 UCP로 구성된 경우 동일한 동작을 허용합니다. UCP를 사용할 수 없는 JDBC 기반 응용 프로그램의 경우 Oracle은 Oracle 드라이버 및 연결 테스트를 사용하는 솔루션을 제공합니다.

구성 요소 또는 통신 장애로 인한 계획되지 않은 운용중단을 숨기기 위해 Oracle은 다음을 제공합니다.

또한 TAC 또는 AC는 할당된 드레인 간격 동안 드레인되지 않는(현재 데이터베이스 작업 완료) 세션에 대해 계획된 유지 관리 중에 실행됩니다.

애플리케이션 구성 체크리스트

다음 지침에 따라 응용 프로그램을 지속적으로 사용할 수 있도록 설정합니다.

참고: 자율운영 AI 데이터베이스를 사용하여 애플리케이션에 대한 지속적인 가용성을 구현하는 모범 사례에 대해 알아보려면 ATP-Direct 백서에서 애플리케이션의 지속적인 가용성을 참조하십시오.

데이터베이스 서비스를 사용하여 연결

데이터베이스 서비스는 기본 인프라에 대한 투명성을 제공합니다. FAN, 연결 데이터, TAC(Transparent Application Continuity), AC(Application Continuity), 스위치오버, 소비자 그룹 및 기타 다양한 기능 및 운영은 서비스 사용에 대한 예측입니다.

전용 Exadata 인프라의 자율운영 AI 데이터베이스는 자율운영 AI 데이터베이스의 사전 정의된 데이터베이스 서비스 이름에 설명된 대로 선택할 수 있는 여러 쌍의 사전 정의된 데이터베이스 서비스를 제공합니다. 모두 FAN 및 드레이닝을 제공하며, 두 트랜잭션 처리 쌍에는 기본적으로 TAC가 사용으로 설정되어 있습니다. API를 사용하여 미리 정의된 모든 서비스에서 TAC 또는 AC 설정을 변경할 수 있습니다(Enable Service Attributes for Failover 참조).

고가용성을 위한 접속 문자열 구성

Oracle은 Oracle Autonomous AI Database에 접속할 때 아래 표시된 접속 문자열 구성을 권장합니다. Oracle에서 제공하는 tnsnames.ora 파일에 포함된 연결 문자열은 이러한 방식으로 구성됩니다. 이 연결에는 고가용성 기능이 없으므로 클라이언트에서 간단한 연결 이름 지정을 사용하지 마십시오.

모든 Oracle 클라이언트 버전 12.2 이상에 대해 다음 TNS를 사용합니다.

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)
 (ADDRESS_LIST =
   (LOAD_BALANCE=on)
   (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Oracle 드라이버 버전 12.1 또는 이전 버전을 사용하는 JDBC 접속의 경우 다음을 사용하십시오.

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 15)(RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = *service-name*)))

FAN(빠른 응용 프로그램 통지) 사용

FAN은 서비스 중단 또는 재개 시 응용 프로그램에 즉시 알림을 제공합니다. FAN을 사용하지 않을 경우 하드웨어 및 네트워크 실패 후 TCP/IP 시간 초과 시 응용 프로그램이 중단될 수 있으며, 리소스를 재개할 때 균형을 조정하려면 생략할 수 있습니다. 모든 Oracle 풀 및 모든 Oracle Application Server는 FAN을 사용합니다. 타사 JAVA 응용 프로그램 서버는 UCP를 사용하여 FAN을 사용으로 설정할 수 있습니다.

FAN을 사용하려면 애플리케이션을 변경할 필요가 없습니다. 구성 변경 사항만 해당됩니다.

계획된 유지 관리 중 지속적인 서비스의 경우 다음과 함께 FAN을 사용합니다.

계획되지 않은 운용중단 중 지속적인 서비스의 경우 FAN을 사용하여 다음을 수행합니다.

FAN 적용 범위

FAN 이벤트는 다음과 통합됩니다.

클라이언트에서 FAN을 사용으로 설정하려면

고가용성을 위한 연결 문자열 구성에 표시된 TNS 별칭을 사용합니다. 이 접속 문자열은 Oracle Database 12c 이상 클라이언트 드라이버를 사용할 때 FAN 이벤트 수신을 위해 클라이언트에서 ONS(Oracle Notification Service) 가입을 자동 구성하는 데 사용됩니다. ONS는 데이터베이스 계층과 클라이언트 계층 간의 보안 통신 경로를 제공하여 클라이언트가 정상적인 작업 중 더 나은 작업 배치를 위해 서비스 가용성(구성 요소 정지 또는 시작) 및 런타임 로드 밸런싱 권고를 알릴 수 있도록 합니다.

클라이언트에 따라 다음과 같이 응용 프로그램 구성 등록 정보에서 FAN을 사용으로 설정합니다.

미리 정의된 데이터베이스 서비스는 TLS 전자 지갑 기반 인증을 사용하는 TCPS 연결을 제공합니다. 응용 프로그램 유형(JDBC 또는 Oracle Call Interface)에 따라 전자 지갑 구성은 Configure Clients for FAN Including Optional Wallets에 설명된 대로 특정 규칙을 따라야 합니다.

권장 방법을 사용하여 배수 허용

응용 프로그램 사용 시 가장 좋은 방법은 필요한 시간 동안 연결을 체크아웃한 다음 현재 작업이 완료되면 다시 풀에 체크인하는 것입니다. 이는 런타임 시 작업의 리밸런싱과 작업 드레이닝을 위한 유지 관리 윈도우(Maintenance windows) 동안의 성능을 향상시키는 데 중요합니다.

Oracle은 계획된 유지 관리를 숨기기 위해 FAN 인식 Oracle 접속 풀을 사용할 것을 권장합니다. 응용 프로그램이 FAN이 포함된 Oracle Pool을 사용하고 요청 사이에 풀에 대한 연결을 반환할 때는 유저에게 영향을 주지 않습니다. FAN을 사용하기 위해 애플리케이션을 변경할 필요가 없습니다. Oracle 연결 풀은 계획된 작동 중지 시간에 대해 FAN 이벤트를 수신할 때 비울 인스턴스의 모든 연결을 표시합니다. 체크 인된 연결은 재사용되지 않도록 즉시 닫힙니다. 사용 중인 연결이 풀로 반환되면 해당 연결이 닫힙니다. 이렇게 하면 시간 경과에 따라 모든 연결을 정상적으로 닫을 수 있습니다.

타사 Java 기반 응용 프로그램 서버를 사용하는 경우 드레이닝 및 페일오버를 수행하는 가장 효과적인 방법은 풀링된 데이터 소스를 UCP로 바꾸는 것입니다. Oracle WebLogic Server, IBM WebSphere, IBM Liberty, Apache Tomcat, Red Hat WildFly(JBoss), Spring, Hibernate 등 많은 애플리케이션 서버가 이러한 접근 방식을 지원합니다. Oracle 및 IBM과 같은 다른 공급업체의 백서에서는 이러한 애플리케이션 서버에서 UCP를 사용하는 방법에 대해 설명합니다. UCP를 데이터 소스로 사용하면 Fast Connection Failover, Runtime Load Balancing, Application Continuity 및 Transparent Application Continuity와 같은 UCP 기능을 전체 인증과 함께 사용할 수 있습니다.

투명한 애플리케이션 연속성(TAC) 또는 애플리케이션 연속성(AC) 사용

TAC는 세션 및 트랜잭션 상태를 투명하게 추적하고 기록하므로 복구 가능한 중단 후 데이터베이스 세션을 복구할 수 있습니다. 미리 정의된 데이터베이스 서비스의 두 트랜잭션 처리 쌍에는 기본적으로 TAC가 사용으로 설정되어 있습니다.

AC는 사용자 정의가 가능하므로 부작용을 재생하거나 TAC에서 허용하지 않는 페일오버 시 복잡한 콜백을 추가할 수 있습니다. Oracle 12c 드라이버(JDBC-thin 또는 Oracle Call Interface)를 사용 중이거나 부작용이나 콜백을 사용하여 사용자 정의하거나 세션 기간 임시 테이블과 같은 상태를 사용하고 요청에 따라 정리하지 않는 응용 프로그램이 있는 경우 AC를 사용합니다.

투명한 애플리케이션 연속성 사용 단계

애플리케이션 연속성 사용 단계

관련 콘텐츠