Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: База данных SQL Azure
Microsoft отвечает за управление целостностью данных в База данных SQL Azure. Хотя существуют традиционные методы мониторинга целостности данных и восстановления от повреждений баз данных в SQL Server, команда инженеров Microsoft SQL разработала новые методы, которые автоматически и без потери данных обрабатывают некоторые классы повреждений. Сервис использует эти методы, чтобы избежать потери данных и простоев в случаях, когда это возможно.
В этой статье описываются некоторые из этих методов, как они работают и как они влияют на клиентов, обеспокоенных тем, какие шаги им следует предпринять для защиты своих данных в База данных SQL Azure.
Как Microsoft управляет целостностью данных
Защита целостности данных в База данных SQL Azure включает сочетание техник и развивающихся методов:
Обширный мониторинг оповещений об ошибках целостности данных. SQL ядро СУБД выдаёт оповещения о всех ошибках и необработанных исключениях, указывающих на вопросы целостности данных. Инженерная команда обрабатывает и расследует эти сигналы.
Обнаружение «потерянной записи» в системе ввода-вывода. Движок базы данных обладает дополнительными функциями для выявления самой частой причины физических повреждений: «потеря записей» в системе ввода-вывода. Эта функция отслеживает операции записи страниц и связанные с ними номера LSN (номера последовательности журнала). Последующее чтение страницы данных с диска сопоставляется с ожидаемым значением LSN этой страницы. Если есть несовпадение значений LSN между значением на диске и ожидаемым значением, страница считается устаревшей, и инженерная команда немедленно получает уведомление.
Автоматический ремонт страниц. Некоторые сервисные уровни предоставляют реплики баз данных для обеспечения непрерывности бизнеса. Затем служба использует автоматическое восстановление страниц, аналогичное технологии, используемой в группах доступности. Если реплика не может прочитать страницу из-за проблемы с целостностью данных, сервис получает свежую копию страницы с другой реплики, заменяя нечитаемую страницу без потери данных или простоя у клиента.
Целостность данных в состоянии покоя и в процессе передачи. Все базы данных сервиса настроены на проверку страниц с помощью
CHECKSUMнастройки, которая вычисляет контрольную сумму по всей странице и сохраняет её в заголовке страницы для проверки во время чтения. Безопасность транспортного уровня (TLS) также используется для всей коммуникации, помимо базовых контрольных сумм транспортного уровня, предоставляемых TCP/IP.Проверка целостности резервного копирования и восстановления. База данных SQL Azure выполняет верификацию страниц как при резервном копировании сервисом, так и при каждой операции восстановления. Любые обнаруженные проблемы вызывают немедленное предупреждение инженерной команде.
Как Microsoft справляется с инцидентами с целостностью данных
Microsoft рассматривает инциденты, связанные с некорректными результатами или повреждением данных, как инциденты наивысшего уровня серьезности. Компания предоставляет поддержку 24×7 от всех Azure инженерных команд. При работе с инцидентами целостности цель — минимизировать недоступность и минимизировать потерю данных.
Проблемы целостности системных данных
Microsoft исправляет проблемы, не влияющие на данные клиентов или доступность баз данных, не уведомляя их об этом. Примеры включают проблемы, которые может решить автоматическое исправление страниц, или повреждение внутренних метаданных базы данных или телеметрии, которые не влияют на данные клиентов или результаты запросов.
Проблемы с целостностью данных клиентов
Когда Microsoft обнаруживает ошибочные результаты или проблему с повреждением данных клиентов, Microsoft предпринимает следующие действия:
- Старается связаться с клиентом как можно скорее после подтверждения обнаружения, в соответствии с законами о конфиденциальности.
- Если контакт установлен, он работает напрямую с клиентом, объясняя масштаб повреждений, определяя варианты восстановления и позволяя клиенту выбрать наиболее подходящий вариант для его приложения и сценария.
- По возможности помогает клиенту понять масштаб последствий для его приложения, например определить, не привело ли повреждение данных к тому, что приложение неожиданным образом изменило другие данные.
Microsoft восстанавливает повреждение данных, используя различные методы и шаги в координации с клиентами. Он не пытается починить, если это может привести к потере данных без одобрения клиента. Клиенты не могут выполнять DBCC CHECKDB опции восстановления в База данных SQL Azure, потому что нельзя разместить базу данных в SINGLE_USER режиме. Однако команда Microsoft SQL может предпринять шаги по восстановлению, включая, но не ограничиваясь:
- Перестройте индекс. Например, восстановить некластерный индекс, где базовая таблица не повреждена.
- Запустите
DBCC CHECKDBсREPAIR_REBUILD, если восстановление исключает возможность потери данных. - Запустите
DBCC CHECKDBсREPAIR_ALLOW_DATA_LOSS, если исправления могут привести к некоторой потере данных. - В случаях, когда
DBCC CHECKDBнельзя исправить проблему целостности данных, инженеры могут использовать восстановление в точке времени до возникновения проблемы целостности данных, а затем ручное воспроизведение соответствующих транзакций из журнала транзакций. Примером применения этой техники является повреждение журнала транзакций таким образом, что не позволяет автоматическому воспроизведению всех транзакций без повреждения данных клиентов.
Инженерная команда проводит подробные вскрытия проблем, приводящих к неправильным результатам или повреждению данных. Команда внимательно отслеживает связанные с этим ремонтные элементы, созданные из-за этой проблемы. Эти разборы инцидентов привели к множеству существенных улучшений, включая описанную ранее функцию обнаружения потерянных операций записи.
Проверки целостности, инициируемые клиентом
Помимо существующего мониторинга и защиты, предоставляемых сервисом, вы можете выбрать выполнение проверок целостности, инициируемых пользователем, в качестве дополнительного уровня защиты. Например, вы можете вручную выполнить команду DBCC CHECKDB в тех предложениях баз данных, где эта команда доступна.
В База данных SQL Azure Hyperscale используйте DBCC CHECKTABLE ('<TableName>') WITH TABLOCK.
Отзывы клиентов и развивающиеся методологии
Команда инженеров Azure SQL регулярно проверяет и совершенствует возможности сервиса по обнаружению проблем с целостностью данных. Хотя ошибки целостности данных редки, если вы столкнулись с ошибкой до получения уведомления от Azure Support, оформите заявление в поддержку.
Если у вас есть отзывы по стратегии Microsoft по обеспечению целостности данных, инженерная команда будет рада услышать вас. Чтобы связаться с инженерной командой для получения обратной связи или комментариев по этой теме, см. https://aka.ms/sqlfeedback. Ваши отзывы помогают Microsoft улучшать существующие и разрабатывать новые возможности защиты целостности данных.