Depois de aplicar esta correção, tem de ativar o sinalizador de rastreio 1800 como um parâmetro de arranque em todos os servidores ou réplicas com o tamanho do setor físico de 512 bytes e reiniciá-los para que esta correção funcione corretamente.
Sintomas
Considere o seguinte cenário:
-
Ativa a funcionalidade Grupos de Disponibilidade AlwaysOn ou Logshipping no Microsoft SQL Server.
-
Os discos que armazenam os ficheiros de registo da réplica primária e secundária num Grupo de Disponibilidade AlwaysOn (AG) têm tamanhos de setor diferentes. Ou em ambientes logshipping, os discos que armazenam os ficheiros de registo para Logshipping servidores primários e Logshipping servidores secundários têm tamanhos de setor diferentes. Por exemplo:
-
O ficheiro de registo de réplica primária está localizado num disco com um tamanho de setor de 512 bytes. No entanto, o ficheiro de registo de réplica secundária está localizado num disco com o tamanho de setor de 4 quilobytes (KB).
-
O ficheiro de registo de réplica primária está localizado num sistema local no local com um tamanho de setor de 512 bytes. No entanto, a réplica secundária está localizada num disco do Armazenamento do Windows Azure com o tamanho de setor de 4 quilobytes (KB).
-
Neste cenário, a seguinte mensagem de erro é registada no SQL Server Registo de erros. A mensagem de erro pode continuar durante algum tempo após o reinício se existirem registos que não foram aplicados à secundária antes de reiniciar o servidor.
Houve X E/S de registo desalinhadas que exigiram a reativação da E/S síncrona. A E/S atual está no ficheiro ....
Além disso, a sincronização do AG ou do Logshipping é executada muito lentamente devido à E/S síncrona. Se a réplica secundária estiver no Armazenamento do Windows Azure, a conclusão do processo de sincronização demorará muito mais tempo do que o esperado.
Nota Este problema ocorre quando utiliza as novas unidades que têm um tamanho de setor de 4 KB e as unidades antigas que têm um tamanho de setor de 512 bytes. Para obter mais informações sobre as novas unidades, veja SQL Server – Novas unidades Utilize o tamanho do setor 4K e SQL Server – Espaços de armazenamento/VHDx e tamanho do setor 4K.
Resolução
O problema foi corrigido pela primeira vez na seguinte atualização cumulativa de SQL Server.
Atualização Cumulativa 5 para SQL Server 2014 /en-us/help/3011055
Atualização Cumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049
Atualização Cumulativa 13 para SQL Server 2012 SP1 /en-us/help/3002044
Depois de aplicar a correção e ativar o sinalizador de rastreio 1800 como um parâmetro de arranque em todas as réplicas de servidores em execução num disco com um tamanho de setor de 512 bytes, irá notar um pequeno aumento no tamanho dos seguintes ficheiros:
-
Ficheiro de registo de transações
-
Cópias de segurança de registo
Além disso, repara que as seguintes mensagens são registadas no SQL Server Registo de erros do servidor primário:
A cauda do registo da base de dados "<nome da base de dados>" está a ser reescrita para corresponder ao novo tamanho de setor de 4096 bytes
Esta é uma mensagem informativa que pode ser ignorada em segurança.
Cada nova atualização cumulativa para SQL Server contém todas as correções e todas as correções de segurança incluídas na atualização cumulativa anterior. Veja as atualizações cumulativas mais recentes para SQL Server:
Solução
Para resolver este problema, mova o ficheiro de registo de transações no destino para uma unidade que tenha Bytes por Setor Físico definidos como 512 bytes.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informações
Como melhor prática, tente garantir que todos os discos em todas as réplicas (pelo menos todos os discos que alojam ficheiros de registo) têm o mesmo tamanho de setor. Em ambientes mistos, em que o secundário tem um setor físico de 512 bytes e o primário tem um tamanho de setor de 4 KB, o TF 1800 deve ser utilizado como um sinalizador de arranque em todos os servidores ou réplicas que tenham um tamanho de setor físico de 512 bytes e reiniciados. Isto garante que o formato de criação de registos em curso utiliza um tamanho de setor de 4 KB.
Para obter mais informações sobre como SQL Server funciona com tamanhos de setor maiores, veja a seguinte mensagem no blogue de suporte:
SQL Server –Espaços de armazenamento/tamanho do setor
VHDx e 4K
Pode utilizar o utilitário da linha de comandos Fsutil para determinar o valor Bytes por Setor Físico. Se este parâmetro não estiver visível na saída, tem de aplicar a correção especificada no artigo da BDC 982018.
Para verificar o tipo de unidade que tem, siga estes passos:
-
Execute o seguinte comando numa linha de comandos elevada:
Fsutil fsinfo ntfsinfo x: Nota O marcador de posição x representa a unidade que está a verificar.
-
Utilize os valores de Bytes por Setor e Bytes por Setor Físico para determinar o tipo de unidade que tem. Para tal, utilize a seguinte tabela:
Valor "Bytes Por Setor"
Valor "Bytes por Setor Físico"
Tipo de unidade
4096
4096
4K nativo
512
4096
Formato Avançado (também conhecido como 512E)
512
512
512 bytes nativos