Я сейчас читаю это: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auto-failover-group,, и мне трудно понять политику автоматического переключения при сбое:
По умолчанию группа аварийного переключения настроена с автоматическим переключением при сбое
политика. Служба базы данных SQL запускает аварийное переключение после сбоя
обнаружен, и льготный период истек. Система должна проверить
что сбой не может быть уменьшен встроенной высокой доступностью
инфраструктура службы базы данных SQL из-за масштаба
влияние. Если вы хотите контролировать рабочий процесс отработки отказа из
приложения, вы можете отключить автоматический переход на другой ресурс.
При определении группы отработки отказа в шаблоне ARM:
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"type": "Microsoft.Sql/servers",
"kind": "v12.0",
"name": "[variables('sqlServerPrimaryName')]",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"properties": {
"administratorLogin": "[parameters('sqlServerPrimaryAdminUsername')]",
"administratorLoginPassword": "[parameters('sqlServerPrimaryAdminPassword')]",
"version": "12.0"
},
"resources": [
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"apiVersion": "2015-05-01-preview",
"type": "failoverGroups",
"name": "[variables('sqlFailoverGroupName')]",
"properties": {
"serverName": "[variables('sqlServerPrimaryName')]",
"partnerServers": [
{
"id": "[resourceId('Microsoft.Sql/servers/', variables('sqlServerSecondaryName'))]"
}
],
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 60
},
"readOnlyEndpoint": {
"failoverPolicy": "Disabled"
},
"databases": [
"[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('sqlDatabaseName'))]"
]
},
"dependsOn": [
"[variables('sqlServerPrimaryName')]",
"[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('sqlDatabaseName'))]",
"[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondaryName'))]"
]
},
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"name": "[variables('sqlDatabaseName')]",
"type": "databases",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"dependsOn": [
"[variables('sqlServerPrimaryName')]"
],
"properties": {
"edition": "[variables('sqlDatabaseEdition')]",
"requestedServiceObjectiveName": "[variables('sqlDatabaseServiceObjective')]"
}
}
]
},
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"type": "Microsoft.Sql/servers",
"kind": "v12.0",
"name": "[variables('sqlServerSecondaryName')]",
"apiVersion": "2014-04-01-preview",
"location": "[variables('sqlServerSecondaryRegion')]",
"properties": {
"administratorLogin": "[parameters('sqlServerSecondaryAdminUsername')]",
"administratorLoginPassword": "[parameters('sqlServerSecondaryAdminPassword')]",
"version": "12.0"
}
}
Я указываю readWriteEndpoint следующим образом:
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 60
}
При значении failoverWithDataLossGracePeriodMinutes, равном 60 минутам.
Что это значит? Я не могу найти четкий ответ нигде. Означает ли это, что:
- когда в моем основном регионе, где находится моя основная база данных, происходит возмущение, конечная точка чтения / записи указывает на основную базу данных, и только через 60 минут она переключается на дополнительную, которая становится новой основной. В течение 60 минут единственный способ прочитать мои данные - это использовать readOnlyEndpoint напрямую? OR
- Моя конечная точка чтения / записи мгновенно переключается, если они каким-то образом могут обнаружить, что не было данных для синхронизации
Я думаю, что все сводится к следующему: нужно ли мне вручную переходить на другой ресурс при сбое, если я обнаружу возмущение, если я не забочусь о потере данных, но я хочу иметь возможность записи в свою базу данных?
Дополнительный вопрос: причина наличия льготного периода заключается в том, что на первичном сервере могут быть несинхронизированные данные, которые будут перезаписаны или отброшены, если вторичный станет новым первичным (если я переключаюсь вручную) )
Извините, но я не могу оставить только один вопрос. Я много читал, и мне действительно нужно это знать.