Powershell (sqlps) lastbackupdate não mudando apesar de ter executado um backup do sqlserver

2

Estou usando o Powershell para verificar os últimos tempos de backup em todos os nossos bancos de dados sqlserver. Isso parece funcionar muito bem, mas eu tenho uma pergunta

Se eu executar isso (uma versão reduzida do script real):

dir SQLSERVER:\SQL\Server1\default\databases | select parent, name, 
lastbackupdate

Eu recebo:

Parent                     Name                       LastBackupDate
------                     ----                       --------------
[Server1]                  ADBA                       10/09/2012 21:15:37
[Server1]                  ReportServer               10/09/2012 21:00:17
[Server1]                  ReportServerTempDB         10/09/2012 21:00:18
[Server1]                  db1                        10/09/2012 21:15:35

Se eu executar um backup SQL da instância padrão do Server1 e executar a mesma consulta, a data do último backup não será alterada:

PS C:\temp> dir SQLSERVER:\SQL\Server1\default\databases | select parent, name,
lastbackupdate

Parent                     Name                       LastBackupDate
------                     ----                       --------------
[Server1]                  ADBA                       10/09/2012 21:15:37
[Server1]                  ReportServer               10/09/2012 21:00:17
[Server1]                  ReportServerTempDB         10/09/2012 21:00:18
[Server1]                  db1                        10/09/2012 21:15:35

.. mas se eu abrir uma nova janela do PowerShell, mostrarei o backup que acabei de fazer:

PS SQLSERVER:\> dir SQLSERVER:\SQL\Server1\default\databases | select parent, 
name,    lastbackupdate

Parent                     Name                       LastBackupDate
------                     ----                       --------------
[server1]                  ADBA                       12/09/2012 09:03:23
[server1]                  ReportServer               12/09/2012 08:48:03
[server1]                  ReportServerTempDB         12/09/2012 08:48:04
[server1]                  db1                        12/09/2012 09:03:21

Meu palpite é que esse é um comportamento esperado, mas alguém poderia me mostrar onde está documentado / explicado - só quero entender o que está acontecendo.

Isso está executando os SQlps que vieram com 2008, em relação a uma instância de 2008.

Obrigado

Matt

    
por mattypenny 12.09.2012 / 18:28

1 resposta

2

O sqlps usa o SMO como o SQL Server Management Studio e você já notou no painel do explorador de objetos do banco de dados que você precisa clicar com o botão direito e selecionar atualizar quando, por exemplo, criar uma nova tabela via T-SQL no painel de consulta? Bom, mesmo conceito com sqlps só não tem clique direito.

Em vez disso, você precisa chamar o método de atualização:

dir SQLSERVER:\SQL\Server1\default\databases | foreach { $_.Refresh() }
    
por 13.09.2012 / 03:38