Estou testando esse novo parâmetro @DatabasesInParallel
e parece fazer backup de apenas 1 banco de dados por vez, mas não especifica isso como uma limitação na documentação, então estou me perguntando se posso estar fazendo algo errado.
Tenho 4 DBs configurados e estou executando manualmente os 4 comandos a seguir:
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'AdminDB',
@Directory = N'\\499bsl01\sqldata_test$',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 24,
@Compress = 'Y',
@CheckSum = 'Y',
@DatabasesInParallel = 'Y',
@LogToTable = 'Y',
@Execute = 'Y'
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'Pop',
@Directory = N'\\499bsl01\sqldata_test$',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 24,
@Compress = 'Y',
@CheckSum = 'Y',
@DatabasesInParallel = 'Y',
@LogToTable = 'Y',
@Execute = 'Y'
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'DaveTest_StackOverflow2010',
@Directory = N'\\499bsl01\sqldata_test$',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 24,
@Compress = 'Y',
@CheckSum = 'Y',
@DatabasesInParallel = 'Y',
@LogToTable = 'Y',
@Execute = 'Y'
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'DaveTest_SUPERUSER',
@Directory = N'\\499bsl01\sqldata_test$',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 24,
@Compress = 'Y',
@CheckSum = 'Y',
@DatabasesInParallel = 'Y',
@LogToTable = 'Y',
@Execute = 'Y'
Quando verifico a tabela QueueDatabase, posso ver que a coluna DatabaseOrder e RequestStartTime são exatamente as mesmas para todos os 4 bancos de dados. No entanto, quando você olha para a coluna DatabaseStartTime, ela mostra os 2 primeiros bancos de dados iniciando ao mesmo tempo e, em seguida, os próximos 2 bancos de dados não iniciam até que o 2º banco de dados termine de fazer seu backup e verificação de verificação.
Essa é a funcionalidade pretendida com os parâmetros que estou usando? Eu esperaria que todos os 4 bancos de dados fossem iniciados exatamente ao mesmo tempo com esse parâmetro.
EDIT 14/11: Título/texto atualizado da postagem
A postagem original dizia que estava fazendo backup de apenas 2 bancos de dados por vez, mas na verdade estava fazendo apenas 1 banco de dados por vez. O primeiro banco de dados cujo backup foi feito no meu teste é tão pequeno que eu não percebi que ele termina quase imediatamente e o segundo é iniciado. No entanto, você pode ver isso
Depois de ler o último comentário de Ola, tive um momento de lâmpada e percebi o que estava fazendo de errado e consegui funcionar.
Como eu estava apenas testando esses comandos, nunca os coloquei em um trabalho de agente - imaginei que eles funcionariam da mesma maneira apenas executando-os manualmente ao mesmo tempo. Eu apenas tinha todos os 4 comandos de trabalho colados em uma janela de consulta e apenas executava isso. Eu pensei que isso funcionaria, mas parece que não, mesmo que todos mostrassem o mesmo RequestStartTime na tabela QueueDatabase.
Depois de criar os trabalhos e definir um único agendamento, pude ver que o RequestStartTime varia em milissegundos, mas o DatabaseStartTime é o mesmo para todos os bancos de dados.
A captura de tela abaixo mostra a tabela QueueDatabase do meu teste hoje (rosa) que foi bem-sucedida quando criei um trabalho de agente. O teste do dia 08/11 (azul) foi quando executei manualmente os comandos em uma janela de Consulta.
Perguntei ao Ola em um email se essa funcionalidade faz sentido que não funcione ao executar manualmente em uma janela de consulta e abaixo está a resposta dele:
Os parâmetros devem ser idênticos para todos os 4 trabalhos.
Frio você tenta mudar todos os trabalhos assim:
@Databases = 'USER_DATABASES'