Высокий уровень доступности в базе данных Azure для PostgreSQL — один серверHigh availability in Azure Database for PostgreSQL – Single Server

Служба "база данных Azure для PostgreSQL" обеспечивает гарантированный высокий уровень доступности при использовании соглашения об уровне обслуживания с финансовыми гарантиями (SLA) на 99,99% времени работы.The Azure Database for PostgreSQL – Single Server service provides a guaranteed high level of availability with the financially backed service level agreement (SLA) of 99.99% uptime. База данных Azure для PostgreSQL обеспечивает высокий уровень доступности во время запланированных событий, таких как операция вычислений User-инитатед Scale, а также при незапланированных событиях, таких как оборудование, программное обеспечение или сбои сети.Azure Database for PostgreSQL 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 для PostgreSQL может быстро восстановиться после большинства критических обстоятельств, обеспечивая практически немедленный доступ к приложениям при использовании этой службы.Azure Database for PostgreSQL can quickly recover from most critical circumstances, ensuring virtually no application down time when using this service.

База данных Azure для PostgreSQL подходит для выполнения критически важных баз данных, требующих высокой отказоустойчивости.Azure Database for PostgreSQL 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 для PostgreSQL — один серверComponents in Azure Database for PostgreSQL – Single Server

КомпонентComponent ОписаниеDescription
Сервер базы данных PostgreSQLPostgreSQL Database Server База данных Azure для PostgreSQL обеспечивает безопасность, изоляцию, защиту ресурсов и возможность быстрого перезапуска для серверов баз данных.Azure Database for PostgreSQL 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. Все изменения базы данных записываются синхронно в виде упреждающего журнала (WAL) в службе хранилища Azure, подключенной к серверу базы данных.All database changes are recorded synchronously in the form of write ahead logs (WAL) 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 Все файлы физических данных PostgreSQL и файлы WAL хранятся в службе хранилища Azure, которая является архитектурой для хранения трех копий данных в регионе для обеспечения избыточности, доступности и надежности данных.All PostgreSQL physical data files and WAL 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 постоянно отслеживает ошибки хранилища.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 для PostgreSQL" спроектирована так, чтобы обеспечить высокий уровень доступности во время запланированных операций простоя.Azure Database for PostgreSQL is architected to provide high availability during planned downtime operations.

представление эластичного масштабирования в Azure PostgreSQL

  1. Увеличение и уменьшение масштаба серверов баз данных PostgreSQL за считаные секундыScale up and down PostgreSQL database servers in seconds
  2. Шлюз, который выступает в качестве прокси-сервера для маршрутизации клиента к соответствующему серверу базы данныхGateway that acts as a proxy to route client connects to the proper database server
  3. Масштабирование хранилища может выполняться без простоев.Scaling up of storage can be performed without any downtime. Удаленное хранилище обеспечивает быструю отсоединение и повторное подключение после отработки отказа.Remote storage enables fast detach/re-attach after the failover. Ниже приведены некоторые сценарии планового обслуживания.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 для PostgreSQL автоматически запланирует серверы баз данных до дополнительной версии, определенной Azure.Azure Database for PostgreSQL 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. Подсистема PostgreSQL выполняет операцию восстановления с использованием файлов WAL и базы данных и открывает сервер базы данных, чтобы разрешить подключение клиентов.PostgreSQL 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 для PostgreSQL сокращает время простоя, автоматически выполняя операции восстановления как на сервере базы данных, так и на уровне хранилища, не требуя вмешательства человека.While an unplanned downtime cannot be avoided, Azure Database for PostgreSQL mitigates the downtime by automatically performing recovery operations at both database server and storage layers without requiring human intervention.

Просмотр высокого уровня доступности в Azure PostgreSQL

  1. Серверы Azure PostgreSQL с возможностями быстрого масштабирования.Azure PostgreSQL servers with fast-scaling capabilities.
  2. Шлюз, который выступает в качестве прокси-сервера для маршрутизации клиентских подключений к правильному серверу базы данныхGateway that acts as a proxy to route client connections to the proper database server
  3. Служба хранилища Azure с тремя копиями для обеспечения надежности, доступности и избыточности.Azure storage with three copies for reliability, availability, and redundancy.
  4. Удаленное хранилище также обеспечивает быструю отсоединение и повторное подключение после отработки отказа сервера.Remote storage also enables fast detach/re-attach after the server failover.

Незапланированный простой: сценарии сбоя и восстановление службыUnplanned downtime: failure scenarios and service recovery

Ниже приведены некоторые сценарии сбоя и автоматическое восстановление базы данных Azure для PostgreSQL.Here are some failure scenarios and how Azure Database for PostgreSQL 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.

Время восстановления (RTO) зависит от различных факторов, включая действия во время сбоя, такие как большие транзакции и объем операций восстановления, выполняемых в процессе запуска сервера базы данных.The recovery time (RTO) is dependent on various factors including the activity at the time of fault such as large transaction and the amount of recovery to be performed during the database server startup process.

Приложения, использующие базы данных PostgreSQL, должны быть созданы таким образом, чтобы они определяли и повторно пропустили соединения и неудачные транзакции.Applications using the PostgreSQL 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.

Если вы хотите восстановить только подмножество баз данных или определенные таблицы, а не все базы данных на сервере базы данных, можно восстановить сервер базы данных в новом экземпляре, экспортировать таблицы с помощью pg_dump, а затем использовать pg_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 pg_dump, and then use pg_restore to restore those tables into your database.

ИтогиSummary

База данных Azure для PostgreSQL предоставляет возможность быстрого перезапуска серверов баз данных, избыточного хранилища и эффективной маршрутизации из шлюза.Azure Database for PostgreSQL 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 для PostgreSQL защищает базы данных от большинства распространенных простоев, а также предлагает ведущие в отрасли, 99,99% времени соглашения об уровне обслуживания.With inherent high availability capabilities, Azure Database for PostgreSQL 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