Azure Database for MariaDB의 고가용성

Important

Azure Database for MariaDB는 사용 중지될 예정입니다. Azure Database for MySQL로 마이그레이션하는 것이 좋습니다. Azure Database for MySQL로 마이그레이션하는 방법에 대한 자세한 내용은 Azure Database for MariaDB에 대한 새로운 소식을 참조하세요.

Azure Database for MariaDB 서비스는 높은 가동 시간이 필요한 중요 업무용 데이터베이스를 실행하는 데 적합합니다. 다음과 같은 경우 고가용성을 제공합니다.

  • 사용자가 시작하는 규모 컴퓨팅 작업과 같은 계획된 이벤트입니다.
  • 기본 하드웨어, 소프트웨어 또는 네트워크 오류와 같은 계획되지 않은 이벤트입니다.

Azure Database for MariaDB는 가동 시간을 위해 재정적으로 지원되는 서비스 수준 계약을 제공합니다. 서비스는 Azure 아키텍처를 기반으로 빌드되었으므로 추가 구성 요소를 구성하지 않고도 고가용성, 중복성 및 복원성을 위한 기능을 활용할 수 있습니다.

Azure Database for MariaDB의 구성 요소

구성 요소 설명
MariaDB 데이터베이스 서버 Azure Database for MariaDB는 데이터베이스 서버 보안, 격리, 리소스 보호 및 빠른 재시작 기능을 제공합니다. 이러한 기능은 중단 후 크기 조정 및 데이터베이스 서버 복구(초 단위)와 같은 작업을 용이하게 합니다.
데이터베이스 서버에서의 데이터 수정은 일반적으로 데이터베이스 트랜잭션 컨텍스트에서 발생합니다. 모든 데이터베이스 변경 내용은 데이터베이스 서버에 연결된 Azure Storage에서 미리 쓰기 로그(ib_log 파일) 형식으로 동기적으로 기록됩니다. 데이터베이스 검사점 프로세스 중에 데이터베이스 서버 메모리의 데이터 페이지도 스토리지로 플러시됩니다.
원격 스토리지 모든 MariaDB 실제 데이터 파일과 로그 파일은 Azure Storage에 저장됩니다. Azure Storage는 데이터 중복성, 가용성 및 안정성을 제공하기 위해 한 지역 내에 3개의 데이터 복사본을 저장합니다. 스토리지 계층은 데이터베이스 서버와 독립적입니다. 실패한 데이터베이스 서버에서 분리하고 몇 초 안에 새 데이터베이스 서버에 다시 연결할 수 있습니다.
Azure Storage는 스토리지 오류를 지속적으로 모니터링합니다. 블록 손상이 검색되면 새 스토리지 복사본을 인스턴스화하여 문제를 자동으로 해결합니다.
게이트웨이 게이트웨이는 모든 클라이언트 연결을 데이터베이스 서버로 라우팅하여 데이터베이스 프록시 역할을 합니다.

계획된 가동 중지 시간 완화

Azure Database for MariaDB의 아키텍처는 계획된 가동 중지 시간 작업 중에 고가용성을 제공합니다.

Diagram of elastic scaling in Azure Database for MariaDB.

계획된 유지 관리에 대한 몇 가지 시나리오는 다음과 같습니다.

시나리오 설명
컴퓨팅 스케일 업 또는 스케일 업 컴퓨팅 스케일 업 또는 스케일 업 작업을 수행하면 Azure Database for MariaDB는 스케일 업된 컴퓨팅 구성을 사용하여 새 데이터베이스 서버를 프로비전합니다. 이전 데이터베이스 서버에서 서비스는 활성 검사점이 완료되도록 허용하고 클라이언트 연결을 드레이닝하며 커밋되지 않은 트랜잭션을 취소합니다. 그런 다음 서비스는 이전 데이터베이스 서버를 종료합니다. 기존 데이터베이스 서버에서 스토리지를 분리하고 새 데이터베이스 서버에 스토리지를 연결합니다. 클라이언트 응용 프로그램에서 연결을 다시 시도하거나 새 연결을 시도하는 경우 게이트웨이는 새 데이터베이스 서버로 연결 요청을 보냅니다.
스토리지 스케일 업 스토리지 크기 조정은 온라인 작업이며 데이터베이스 서버를 중단하지 않습니다.
새 소프트웨어 배포(Azure) 새로운 기능 출시나 버그 수정은 서비스의 계획된 유지 관리의 일부로 자동으로 수행됩니다. 자세한 내용은 설명서를 참조하고 포털을 확인합니다.
부 버전 업그레이드 Azure Database for MariaDB는 Azure가 결정하는 부 버전으로 데이터베이스 서버를 자동으로 패치합니다. 자동 패치는 서비스의 계획된 유지 관리의 일부로 발생합니다. 초 단위의 짧은 가동 중지 시간이 발생하며 데이터베이스 서버는 새로운 부 버전으로 자동으로 다시 시작됩니다. 자세한 내용은 설명서를 참조하고 포털을 확인합니다.

계획되지 않은 가동 중지 시간 완화

계획되지 않은 가동 중지 시간은 기본 하드웨어 오류, 네트워크 문제, 소프트웨어 버그 등 예기치 못한 오류로 인해 발생할 수 있습니다. 데이터베이스 서버가 예기치 않게 작동 중단되면 새 데이터베이스 서버가 몇 초 안에 자동으로 프로비전됩니다. 원격 스토리지는 새 데이터베이스 서버에 자동으로 연결됩니다.

MariaDB 엔진은 미리 쓰기 로그와 데이터베이스 파일을 사용하여 복구 작업을 수행하고 클라이언트가 연결할 수 있도록 데이터베이스 서버를 엽니다. 커밋되지 않은 트랜잭션은 손실되며 애플리케이션은 이를 다시 시도해야 합니다.

계획되지 않은 가동 중지 시간을 피할 수는 없지만 Azure Database for MariaDB는 인간의 개입 없이 데이터베이스 서버와 스토리지 계층 모두에서 복구 작업을 자동으로 수행하여 가동 중지 시간을 완화합니다.

Diagram of high availability in Azure Database for MariaDB.

의도하지 않은 가동 중지 시간: 실패 시나리오 및 서비스 복구

다음은 두 가지 오류 시나리오와 Azure Database for MariaDB가 자동으로 복구하는 방법입니다.

시나리오 자동 복구
데이터베이스 서버 오류 기본 하드웨어 결함으로 인해 데이터베이스 서버가 다운되면 Azure Database for MariaDB는 활성 연결을 끊고 모든 진행 중인 트랜잭션을 취소합니다. 이 서비스는 자동으로 새 데이터베이스 서버를 배포하고 원격 데이터 스토리지를 새 데이터베이스 서버에 연결합니다. 데이터베이스 복구가 완료된 후 클라이언트는 게이트웨이를 통해 새 데이터베이스 서버에 연결할 수 있습니다.
MariaDB 데이터베이스를 사용하는 애플리케이션은 끊긴 연결과 실패한 트랜잭션을 검색하고 다시 시도하는 방식으로 빌드해야 합니다. 애플리케이션이 연결을 다시 시도하면 게이트웨이는 연결을 새로 만들어진 데이터베이스 서버로 투명하게 리디렉션합니다.
스토리지 오류 디스크 오류나 실제 블록 손상과 같은 스토리지 관련 문제는 애플리케이션에 영향을 미치지 않습니다. 데이터는 세 개의 복사본에 저장되므로 남아 있는 스토리지가 데이터 복사본을 제공합니다. Azure Database for MariaDB는 블록 손상을 자동으로 수정합니다. 데이터 복사본이 손실되면 서비스는 자동으로 데이터의 새 복사본을 만듭니다.

복구를 위해 사용자 작업이 필요한 오류 시나리오는 다음과 같습니다.

시나리오 복구 계획
지역 오류 지역 오류는 드문 이벤트입니다. 그러나 지역 장애로부터 보호해야 하는 경우 재해 복구를 위해 다른 지역에 하나 이상의 읽기 복제본을 구성할 수 있습니다. 자세한 내용은 읽기 복제본 만들기 및 관리에 대한 이 문서를 참조하세요. 지역 수준 오류가 발생하는 경우 다른 지역에 구성된 읽기 복제본을 프로덕션 데이터베이스 서버로 수동으로 승격할 수 있습니다.
논리적/사용자 오류 실수로 테이블을 삭제하거나 데이터를 잘못 업데이트하는 등의 사용자 오류로부터 복구하려면 특정 시점 복구를 수행해야 합니다. 이 작업을 수행하면 오류가 발생하기 직전 시점까지의 데이터가 복원 및 복원됩니다.
데이터베이스 서버의 모든 데이터베이스가 아닌 데이터베이스의 하위 집합이나 특정 테이블만 복원하려는 경우 새 인스턴스에서 데이터베이스 서버를 복원하고 mysqldump를 통해 테이블을 내보낸 다음 데이터베이스에서 해당 테이블을 복원합니다.

요약

Azure Database for MariaDB에는 일반적인 중단으로부터 데이터베이스를 보호하는 데 도움이 되는 고유한 고가용성 기능이 있습니다. 이는 데이터베이스 서버의 빠른 다시 시작 기능, 중복 스토리지 및 게이트웨이로부터의 효율적인 라우팅을 제공합니다. 추가적인 데이터 보호를 위해 백업을 지역적으로 복제하도록 구성하고 다른 지역에 읽기 복제본을 배포할 수 있습니다.

다음 단계