Azure Database for MySQL의 고가용성High availability in Azure Database for MySQL

Azure Database for MySQL 서비스는 재정적 지원 되는 SLA (서비스 수준 계약) 99.99% 가동 시간을 보장 하는 높은 수준의 가용성을 제공 합니다.The Azure Database for MySQL service provides a guaranteed high level of availability with the financially backed service level agreement (SLA) of 99.99% uptime. Azure Database for MySQL은 사용자가 제공 하는 크기 조정 계산 작업 등의 계획 된 이벤트 중에 고가용성을 제공 하며, 기본 하드웨어, 소프트웨어 또는 네트워크 오류와 같은 계획 되지 않은 이벤트가 발생 하는 경우에도 제공 합니다.Azure Database for MySQL provides high availability during planned events such as user-initated scale compute operation, and also when unplanned events such as underlying hardware, software, or network failures occur. 이 서비스를 사용 하는 경우 응용 프로그램 작동 중단 시간이 거의 없도록 하 여 대부분의 중요 한 상황에서 신속 하 게 복구할 수 Azure Database for MySQL.Azure Database for MySQL can quickly recover from most critical circumstances, ensuring virtually no application down time when using this service.

Azure Database for MySQL는 높은 가동 시간이 필요한 중요 업무용 데이터베이스를 실행 하는 데 적합 합니다.Azure Database for MySQL is suitable for running mission critical databases that require high uptime. Azure 아키텍처를 기반으로 구축 된이 서비스에는 추가 구성 요소를 구성할 필요 없이 계획 되거나 계획 되지 않은 중단 으로부터 데이터베이스 가동 중지 시간을 완화 하기 위한 내재 된 고가용성, 중복성 및 복원 력 기능이 있습니다.Built on Azure architecture, the service has inherent high availability, redundancy, and resiliency capabilities to mitigate database downtime from planned and unplanned outages, without requiring you to configure any additional components.

Azure Database for MySQL의 구성 요소Components in Azure Database for MySQL

구성 요소Component 설명Description
MySQL 데이터베이스 서버MySQL Database Server Azure Database for MySQL는 데이터베이스 서버에 대 한 보안, 격리, 리소스 보호 및 빠른 다시 시작 기능을 제공 합니다.Azure Database for MySQL provides security, isolation, resource safeguards, and fast restart capability for database servers. 이러한 기능은 가동 중단 후 몇 초 후에 크기 조정 및 데이터베이스 서버 복구 작업과 같은 작업을 용이 하 게 합니다.These capabilities facilitate operations such as scaling and database server recovery operation after an outage to happen in seconds.
데이터베이스 서버의 데이터 수정은 일반적으로 데이터베이스 트랜잭션 컨텍스트에서 발생 합니다.Data modifications in the database server typically occur in the context of a database transaction. 모든 데이터베이스 변경 내용은 데이터베이스 서버에 연결 된 Azure Storage에 대 한 미리 쓰기 로그 (ib_log) 형식으로 동기적으로 기록 됩니다.All database changes are recorded synchronously in the form of write ahead logs (ib_log) on Azure Storage – which is attached to the database server. 데이터베이스 검사점 프로세스 중에 데이터베이스 서버 메모리의 데이터 페이지도 저장소로 플러시됩니다.During the database checkpoint process, data pages from the database server memory are also flushed to the storage.
원격 스토리지Remote Storage 모든 MySQL 물리적 데이터 파일 및 로그 파일은 데이터 중복성, 가용성 및 안정성을 보장 하기 위해 지역 내에 세 개의 데이터 복사본을 저장 하도록 설계 된 Azure Storage에 저장 됩니다.All MySQL physical data files and log files are stored on Azure Storage, which is architected to store three copies of data within a region to ensure data redundancy, availability, and reliability. 저장소 계층은 데이터베이스 서버와도 독립적입니다.The storage layer is also independent of the database server. 실패 한 데이터베이스 서버에서 분리 하 고 몇 초 내에 새 데이터베이스 서버에 다시 연결할 수 있습니다.It can be detached from a failed database server and reattached to a new database server within few seconds. 또한 Azure Storage는 저장소 오류를 지속적으로 모니터링 합니다.Also, Azure Storage continuously monitors for any storage faults. 블록 손상이 감지 되 면 새 저장소 복사본을 인스턴스화하여 자동으로 수정 됩니다.If a block corruption is detected, it is automatically fixed by instantiating a new storage copy.
게이트웨이Gateway 게이트웨이는 데이터베이스 프록시로 작동 하며 모든 클라이언트 연결을 데이터베이스 서버로 라우팅합니다.The Gateway acts as a database proxy, routes all client connections to the database server.

계획 된 가동 중지 시간 완화Planned downtime mitigation

Azure Database for MySQL는 계획 된 가동 중지 시간 동안 고가용성을 제공 하도록 설계 되었습니다.Azure Database for MySQL is architected to provide high availability during planned downtime operations.

Azure MySQL에서 탄력적 크기 조정 보기

다음은 몇 가지 계획 된 유지 관리 시나리오입니다.Here are some planned maintenance scenarios:

시나리오Scenario 설명Description
수직 계산 확장/축소Compute scale up/down 사용자가 계산 확장/축소 작업을 수행 하면 크기 조정 된 계산 구성을 사용 하 여 새 데이터베이스 서버가 프로 비전 됩니다.When the user performs compute scale up/down operation, a new database server is provisioned using the scaled compute configuration. 이전 데이터베이스 서버에서 활성 검사점을 완료할 수 있으며, 클라이언트 연결이 종료 되 고, 커밋되지 않은 트랜잭션이 취소 되 고 종료 됩니다.In the old database server, active checkpoints are allowed to complete, client connections are drained, any uncommitted transactions are canceled, and then it is shut down. 그런 다음 이전 데이터베이스 서버에서 저장소를 분리 하 고 새 데이터베이스 서버에 연결 합니다.The storage is then detached from the old database server and attached to the new database server. 클라이언트 응용 프로그램에서 연결을 다시 시도 하거나 새 연결을 시도 하는 경우 게이트웨이는 새 데이터베이스 서버로 연결 요청을 보냅니다.When the client application retries the connection, or tries to make a new connection, the Gateway directs the connection request to the new database server.
저장소 확장Scaling Up Storage 저장소 확장은 온라인 작업 이며 데이터베이스 서버를 중단 하지 않습니다.Scaling up the storage is an online operation and does not interrupt the database server.
새 소프트웨어 배포 (Azure)New Software Deployment (Azure) 새 기능 출시 또는 버그 수정은 서비스의 계획 된 유지 관리의 일부로 자동으로 발생 합니다.New features rollout or bug fixes automatically happen as part of service’s planned maintenance. 자세한 내용은 설명서를 참조 하 고 포털도 확인 하세요.For more information, refer to the documentation, and also check your portal.
부 버전 업그레이드Minor version upgrades Azure에서 결정 하는 부 버전에 데이터베이스 서버를 자동으로 패치 Azure Database for MySQL 합니다.Azure Database for MySQL automatically patches database servers to the minor version determined by Azure. 서비스의 계획 된 유지 관리의 일환으로 발생 합니다.It happens as part of service's planned maintenance. 이로 인해 몇 초 후에 짧은 가동 중지 시간이 발생 하 고 데이터베이스 서버가 새 부 버전으로 자동으로 다시 시작 됩니다.This would incur a short downtime in terms of seconds, and the database server is automatically restarted with the new minor version. 자세한 내용은 설명서를 참조 하 고 포털도 확인 하세요.For more information, refer to the documentation, and also check your portal.

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

계획 되지 않은 가동 중지 시간은 기본 하드웨어 오류, 네트워킹 문제 및 소프트웨어 버그를 포함 하 여 예측할 수 없는 실패의 결과로 발생할 수 있습니다.Unplanned downtime can occur as a result of unforeseen failures, including underlying hardware fault, networking issues, and software bugs. 데이터베이스 서버가 예기치 않게 중단 되 면 새 데이터베이스 서버가 몇 초 안에 자동으로 프로 비전 됩니다.If the database server goes down unexpectedly, a new database server is automatically provisioned in seconds. 원격 저장소는 새 데이터베이스 서버에 자동으로 연결 됩니다.The remote storage is automatically attached to the new database server. MySQL 엔진은 WAL 및 데이터베이스 파일을 사용 하 여 복구 작업을 수행 하 고, 클라이언트의 연결을 허용 하도록 데이터베이스 서버를 엽니다.MySQL engine performs the recovery operation using WAL and database files, and opens up the database server to allow clients to connect. 커밋되지 않은 트랜잭션은 손실 되며 응용 프로그램에서 다시 시도해 야 합니다.Uncommitted transactions are lost, and they have to be retried by the application. 계획 되지 않은 가동 중지 시간은 피할 수 없지만, Azure Database for MySQL은 사용자의 개입 없이 데이터베이스 서버와 저장소 계층 모두에서 복구 작업을 자동으로 수행 하 여 가동 중지 시간을 완화 합니다.While an unplanned downtime cannot be avoided, Azure Database for MySQL mitigates the downtime by automatically performing recovery operations at both database server and storage layers without requiring human intervention.

Azure MySQL의 고가용성 보기

계획 되지 않은 가동 중지 시간: 오류 시나리오 및 서비스 복구Unplanned downtime: failure scenarios and service recovery

다음은 몇 가지 오류 시나리오와 Azure Database for MySQL 자동으로 복구 하는 방법입니다.Here are some failure scenarios and how Azure Database for MySQL automatically recovers:

시나리오Scenario 자동 복구Automatic recovery
데이터베이스 서버 오류Database server failure 일부 기본 하드웨어 오류로 인해 데이터베이스 서버 작동이 중지 되 면 활성 연결이 삭제 되 고 모든 처리 중인 트랜잭션이 중단 됩니다.If the database server is down because of some underlying hardware fault, active connections are dropped, and any inflight transactions are aborted. 새 데이터베이스 서버는 자동으로 배포 되 고 원격 데이터 저장소는 새 데이터베이스 서버에 연결 됩니다.A new database server is automatically deployed, and the remote data storage is attached to the new database server. 데이터베이스 복구가 완료 된 후 클라이언트는 게이트웨이를 통해 새 데이터베이스 서버에 연결할 수 있습니다.After the database recovery is complete, clients can connect to the new database server through the Gateway.

MySQL 데이터베이스를 사용 하는 응용 프로그램은 삭제 된 연결과 실패 한 트랜잭션을 검색 하 고 다시 시도 하는 방식으로 빌드해야 합니다.Applications using the MySQL databases need to be built in a way that they detect and retry dropped connections and failed transactions. 응용 프로그램을 다시 시도할 때 게이트웨이는 새로 만든 데이터베이스 서버로의 연결을 투명 하 게 리디렉션합니다.When the application retries, the Gateway transparently redirects the connection to the newly created database server.
저장소 오류Storage failure 응용 프로그램에는 디스크 오류 또는 물리적 블록 손상과 같은 저장소 관련 문제에 대 한 영향이 표시 되지 않습니다.Applications do not see any impact for any storage-related issues such as a disk failure or a physical block corruption. 데이터는 3 개의 복사본에 저장 되므로 데이터의 복사본은 활성 저장소로 제공 됩니다.As the data is stored in 3 copies, the copy of the data is served by the surviving storage. 블록 손상이 자동으로 수정 됩니다.Block corruptions are automatically corrected. 데이터의 복사본이 손실 되 면 데이터의 새 복사본이 자동으로 생성 됩니다.If a copy of data is lost, a new copy of the data is automatically created.

다음은 사용자 작업이 복구 되어야 하는 몇 가지 오류 시나리오입니다.Here are some failure scenarios that require user action to recover:

시나리오Scenario 복구 계획Recovery plan
지역 오류 Region failure 지역 오류는 드문 이벤트입니다.Failure of a region is a rare event. 그러나 지역 장애 로부터 보호 해야 하는 경우에는 재해 복구 (DR)를 위해 다른 지역에 하나 이상의 읽기 복제본을 구성할 수 있습니다.However, if you need protection from a region failure, you can configure one or more read replicas in other regions for disaster recovery (DR). 자세한 내용은 읽기 복제본 만들기 및 관리에 대 한 이 문서 를 참조 하세요.(See this article about creating and managing read replicas for details). 영역 수준 실패가 발생할 경우 다른 지역에 구성 된 읽기 복제본을 프로덕션 데이터베이스 서버로 수동으로 승격할 수 있습니다.In the event of a region-level failure, you can manually promote the read replica configured on the other region to be your production database server.
논리적/사용자 오류 Logical/user errors 실수로 삭제 된 테이블 또는 잘못 업데이트 된 데이터와 같은 사용자 오류 로부터 복구 하려면 오류가 발생 하기 직전까지 데이터를 복원 및 복구 하 여 PITR (지정 시간 복구 )를 수행 해야 합니다.Recovery from user errors, such as accidentally dropped tables or incorrectly updated data, involves performing a point-in-time recovery (PITR), by restoring and recovering the data until the time just before the error had occurred.

데이터베이스 서버의 모든 데이터베이스가 아니라 데이터베이스 또는 특정 테이블의 하위 집합만 복원 하려면 새 인스턴스에서 데이터베이스 서버를 복원 하 고 mysqldump를 통해 테이블을 내보낸 다음 restore 를 사용 하 여 해당 테이블을 데이터베이스로 복원할 수 있습니다.If you want to restore only a subset of databases or specific tables rather than all databases in the database server, you can restore the database server in a new instance, export the table(s) via mysqldump, and then use restore to restore those tables into your database.

요약Summary

Azure Database for MySQL는 데이터베이스 서버, 중복 저장소 및 게이트웨이에서 효율적인 라우팅의 빠른 다시 시작 기능을 제공 합니다.Azure Database for MySQL provides fast restart capability of database servers, redundant storage, and efficient routing from the Gateway. 추가 데이터 보호를 위해 지역에서 복제 되도록 백업을 구성 하 고 다른 지역에 하나 이상의 읽기 복제본을 배포할 수도 있습니다.For additional data protection, you can configure backups to be geo-replicated, and also deploy one or more read replicas in other regions. 내재 된 고가용성 기능을 통해 Azure Database for MySQL는 가장 일반적인 작동 중단 으로부터 데이터베이스를 보호 하 고, 업계 최고의 금융 지원 99.99%의 가동 시간 SLA를 제공 합니다.With inherent high availability capabilities, Azure Database for MySQL protects your databases from most common outages, and offers an industry leading, finance-backed 99.99% of uptime SLA. 이러한 모든 가용성 및 안정성 기능을 통해 Azure는 중요 업무용 응용 프로그램을 실행 하는 데 이상적인 플랫폼이 될 수 있습니다.All these availability and reliability capabilities enable Azure to be the ideal platform to run your mission-critical applications.

다음 단계Next steps