Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Base de Dados SQL do Azure
A Microsoft é responsável pela gestão da integridade dos dados no Base de Dados SQL do Azure. Embora existam técnicas tradicionais para DBAs monitorizarem a integridade dos dados e recuperarem de corrupções de bases de dados no SQL Server, a equipa de engenharia SQL da Microsoft desenvolveu novas técnicas que lidam automaticamente com algumas classes de corrupção e sem perda de dados. O serviço utiliza estas técnicas para evitar a perda de dados e o tempo de inatividade nos casos em que consegue evitá-los.
Este artigo descreve algumas dessas técnicas, como funcionam e como afetam os clientes preocupados com as medidas que devem tomar para proteger os seus dados no Base de Dados SQL do Azure.
Como a Microsoft gere a integridade dos dados
Proteger a integridade dos dados no Base de Dados SQL do Azure envolve uma combinação de técnicas e métodos em evolução:
Monitorização extensiva de alertas de erro na integridade dos dados. O SQL Database Engine emite alertas para todos os erros e exceções não tratadas que indicam preocupações com a integridade dos dados. A equipa de engenharia lida e investiga estes alertas.
Deteção de "escrita perdida" do sistema de I/O. O motor de base de dados tem funcionalidades adicionais para detetar aquela que tem sido a causa mais comum de problemas de corrupção física observados: "escritas perdidas" do sistema de I/O. Esta funcionalidade monitoriza as escritas de páginas e os LSNs (Log Sequence Numbers) associados. Uma leitura subsequente de uma página de dados a partir do disco é comparada com o LSN esperado da página. Se houver uma discrepância nos LSNs entre o que está no disco e o que é esperado, a página fica obsoleta, resultando num alerta imediato para a equipa de engenharia.
Reparação automática de páginas. Alguns níveis de serviço fornecem réplicas de bases de dados para fins de continuidade do negócio. O serviço recorre então à reparação automática de páginas, que é semelhante à tecnologia utilizada em grupos de disponibilidade. No caso de uma réplica não conseguir ler uma página devido a um problema de integridade dos dados, o serviço recupera uma cópia nova da página de outra réplica, substituindo a página ilegível sem perda de dados ou tempo de inatividade do cliente.
Integridade dos dados em repouso e em trânsito. Todas as bases de dados do serviço estão configuradas para verificar páginas usando a
CHECKSUMdefinição, que calcula a soma de verificação em toda a página e armazena-a no cabeçalho da página para verificação durante a leitura. O Transport Layer Security (TLS) também é utilizado em todas as comunicações, além das somas de verificação básicas da camada de transporte fornecidas pelo TCP/IP.Verificações de integridade da cópia de segurança e do restauro. O Base de Dados SQL do Azure realiza verificação de página tanto durante backups geridos por serviços como em cada operação de restauro. Quaisquer problemas encontrados resultam num alerta imediato para a equipa de engenharia.
Como a Microsoft lida com incidentes de integridade de dados
A Microsoft trata os incidentes de resultados errados ou corrupção com a maior severidade. A empresa oferece suporte 24×7 de todas as equipas de engenharia do Azure. Ao lidar com incidentes de integridade, os objetivos são minimizar a indisponibilidade e minimizar a quantidade de perda de dados.
Questões de integridade dos dados do sistema
A Microsoft corrige problemas que não afetam os dados dos clientes ou a disponibilidade da base de dados sem notificar os clientes. Exemplos incluem problemas que a reparação automática de páginas pode resolver, ou corrupção dos metadados internos da base de dados ou telemetria que não afeta os dados dos clientes ou os resultados das consultas.
Questões de integridade dos dados do cliente
Quando a Microsoft deteta um problema de resultados errados ou corrupção de dados do cliente, a Microsoft toma as seguintes ações:
- Faz o melhor esforço para contactar o cliente o mais rapidamente possível após a deteção confirmada, em conformidade com as leis de privacidade.
- Se o contacto for estabelecido, trabalha diretamente com o cliente para explicar o âmbito da corrupção, delinear as opções de recuperação e permitir que o cliente escolha a opção que melhor funciona para a sua aplicação e cenário.
- Sempre que possível, ajuda o cliente a compreender o alcance do impacto na sua aplicação, por exemplo, identificando se a corrupção dos dados levou a aplicação a alterar outros dados de forma inesperada.
A Microsoft corrige a corrupção de dados utilizando vários métodos e passos tomados em coordenação com os clientes. Não tenta reparar que possa resultar em perda de dados sem aprovação do cliente. Os clientes não podem executar DBCC CHECKDB opções de reparação no Base de Dados SQL do Azure porque não é possível colocar uma base de dados em modo SINGLE_USER. No entanto, a equipa Microsoft SQL pode tomar medidas de reparação, incluindo, mas não se limitando a:
- Recrie o índice. Por exemplo, reconstruir um índice não agrupado onde a tabela base também não esteja corrompida.
- Execute
DBCC CHECKDBcomREPAIR_REBUILDem que a reparação não apresenta qualquer possibilidade de perda de dados. - Execute
DBCC CHECKDBcomREPAIR_ALLOW_DATA_LOSSquando as reparações puderem causar alguma perda de dados. - Para cenários em que
DBCC CHECKDBnão pode ser usado para reparar o problema de integridade dos dados, os engenheiros podem usar a restauração pontual até ao ponto anterior à ocorrência do problema de integridade dos dados, seguida de uma reprodução manual das transações relevantes do registo de transações. Um exemplo em que esta técnica se aplica é quando o registo de transações está corrompido de uma forma que impede a reprodução automática de todas as transações, mas sem corromper os dados do cliente.
A equipa de engenharia realiza análises detalhadas de problemas que conduzem a resultados errados ou corrupção de dados. A equipa acompanha de perto os itens de reparação associados criados devido ao problema. Estas análises posteriores dão origem a muitas melhorias significativas, incluindo a funcionalidade de "perda de escritas" descrita anteriormente.
Verificações de integridade iniciadas pelo cliente
A proteção da integridade de dados gerida pela Microsoft proporciona deteção precoce de novos problemas de integridade de dados e corrige-os sempre que possível. As verificações DBCC CHECKDB de integridade iniciadas pelo cliente fornecem uma camada extra de proteção porque DBCC CHECKDB são um mecanismo abrangente de deteção de corrupção para toda a base de dados.
DBCC CHECKDBcomplementa as funcionalidades de proteção da integridade de dados geridas pela Microsoft.
Esta amplitude e profundidade de deteção requerem tempo significativo e recursos adicionais de computação e E/S durante a DBCC CHECKDB execução. Como resultado, DBCC CHECKDB pode afetar as suas cargas de trabalho devido à contenção de recursos.
Para além da monitorização e proteção que o serviço proporciona, pode operar DBCC CHECKDB com a frequência e hora que preferir, equilibrando a proteção extra da integridade dos dados com o consumo adicional de recursos.
DBCC CHECKDBnão está disponível no Base de Dados SQL do Azure Hyperscale. Como alternativa, utilize DBCC CHECKTABLE ('<TableName>') WITH TABLOCK para tabelas individuais da base de dados.
Feedback dos clientes e metodologias em evolução
A equipa de engenharia SQL do Azure revê regularmente e melhora as capacidades de deteção de problemas de integridade dos dados do serviço. Embora erros de integridade de dados sejam raros, se encontrar um erro antes de receber a notificação do Suporte do Azure, apresente um pedido de suporte.
Se tiver feedback para partilhar sobre a estratégia de integridade de dados da Microsoft, a equipa de engenharia gostaria de ouvir a sua opinião. Para contactar a equipa de engenharia com feedback ou comentários sobre este assunto, consulte https://aka.ms/sqlfeedback. O seu feedback ajuda a Microsoft a melhorar e a desenvolver novas capacidades de proteção da integridade dos dados.