Tivemos uma falha em nosso SQL AAG, onde nosso banco de dados secundário acabou corrompido. O banco de dados primário está bom, ainda funcionando e não foi afetado de forma alguma.
Agora tento colocar o banco de dados primário de volta no grupo Banco de dados de disponibilidade AAG, seguindo as etapas normais; Limpeza da instância SQL secundária, removendo banco de dados, removendo arquivos, fazendo teste no WFCM, fazendo testes SQL para listener AAG e réplicas. Tudo no verde e pronto para ir. Antes que o assistente Adicionar banco de dados aceite o banco de dados, é necessário um backup completo, então já fiz isso.
Executar o assistente, o status é "Atende aos requisitos" e conectar-se à instância SQL secundária funciona bem, e se você escolher a propagação automática (preferencial) ou o banco de dados completo e backup de log, ele fornecerá o mesmo aviso:
Espaço livre insuficiente para dados e arquivos de log na instância do servidor que hospeda a réplica secundária <réplica/Instância>
É claro que posso clicar em Avançar, mas isso não torna o banco de dados compatível/íntegro na réplica secundária, portanto, não há ganho ao fazer isso.
Posso adicionar mais espaço em disco na réplica para as unidades relevantes, mas quanto espaço é necessário?
O tamanho do arquivo de banco de dados é 2,2 TB O tamanho do arquivo de log é 70 GB Executando o assistente Adicionar banco de dados, digamos que o tamanho é 2,4 TB
No servidor secundário, expandi o disco de dados para 5 TB e o disco de log para 1 TB, mas ainda vejo o aviso
Alguém tem alguma ideia do tamanho que esses discos precisam ter?
No passado, sempre pensei que era necessário um "duplo" ao adicionar/re-adicionar o banco de dados à réplica/servidor secundário, mas isso parece não ser mais o caso, ou o SQL Server lê outros tamanhos de disco, do que o explorador de arquivos
Detalhes: Ambos os servidores executando Windows Server 2019 com atualizações mais recentes, SQL Server 2019, CU 18 (devido a erros em compilações posteriores, não podemos usá-los ainda)
Olá @Sean Como já fiz essa operação algumas vezes nesta configuração, realmente garanti que os locais sejam os mesmos, mas todos os pontos positivos que deveria ter colocado aqui. Nenhum ponto de montagem usado. Espaço livre em disco do servidor primário - Servidor secundário - expandido para tentar executar o assistente AAG.
D 95329 D 83481
F 261001 - LDF F 1651181 - LDF
G 196873 G 204041
U 1054054 - MDF U 4619104 - MDF
Aqui estão os locais dos arquivos no primário
DBName FileType Location
master ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\master.mdf
master LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\mastlog.ldf
tempdb ROWS G:\TempDB\instance_name\tempdb.mdf
tempdb LOG G:\TempDB\instance_name\templog.ldf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_2.ndf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_3.ndf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_4.ndf
model ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\model.mdf
model LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\modellog.ldf
msdb ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\MSDBData.mdf
msdb LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\MSDBLog.ldf
UserDB ROWS U:\Unik-DB\Userdb.mdf
UserDB LOG F:\Logs\Userdb_log.ldf
UserDB ROWS U:\Unik-DB\user_ESDH.ndf
E secundário
master ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\master.mdf
master LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\mastlog.ldf
tempdb ROWS G:\TempDB\instance_name\tempdb.mdf
tempdb LOG G:\TempDB\instance_name\templog.ldf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_2.ndf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_3.ndf
tempdb ROWS G:\TempDB\instance_name\tempdb_mssql_4.ndf
model ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\model.mdf
model LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\modellog.ldf
msdb ROWS D:\Data\MSSQL15.instance_name\MSSQL\DATA\MSDBData.mdf
msdb LOG D:\Data\MSSQL15.instance_name\MSSQL\DATA\MSDBLog.ldf
Aqui o UserDB está faltando, pois eu o removi/excluí - mas as unidades U e F existem com quantidade adicional de espaço, pois o assistente continua reclamando de falta de espaço.
Agora iniciei uma restauração para a réplica secundária e tentarei ingressar apenas no assistente.
Você precisará verificar a localização de todos os arquivos em seu banco de dados, considerar os pontos de montagem, se houver, e verificar a réplica secundária para garantir que os locais das unidades, o espaço livre e os pontos de montagem (incluindo espaço) correspondam e são precisos. É evidente que algo não é.
Coloque a saída dos locais dos arquivos do seu banco de dados na réplica primária e
xp_fixeddrives
na réplica secundária se desejar mais ajuda.Este nunca foi o caso, a restauração (manual ou via propagação automática) precisa do tamanho do banco de dados.
Se você conhece melhor que o assistente, nada o impede de não usar o assistente e fazer isso manualmente (adicionando a réplica e usando qualquer modo de configuração de sincronização que desejar). Essa é sempre uma opção... novamente, supondo que você esteja correto e as ferramentas não (o que não sabemos, dados os dados disponíveis).
Obrigado @Sean, por suas dicas e sugestões, e também por confirmar meus números.
Acabei na solução Join Only.
Portanto, se outras pessoas tiverem o mesmo problema e não conseguirem resolver no AAG Autoseeding, esta é a única opção que achei funcionando:
https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/manually-prepare-a-secondary-database-for-an-availability-group-sql-server?view= sql-server-ver16
O que teria sido bom seria se o erro que me dizia 'espaço insuficiente na réplica secundária' pudesse explicar por que ocorre o erro, já que obviamente tenho bastante espaço por toda parte.