尽管运行了 sqlserver 备份,Powershell(sqlps)lastbackupdate 仍未改变

尽管运行了 sqlserver 备份,Powershell(sqlps)lastbackupdate 仍未改变

我正在使用 Powershell 检查我们所有 sqlserver 数据库的上次备份时间。这似乎很有效,但我有一个问题

如果我运行这个(实际脚本的精简版):

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

如果我随后运行 Server1 默认实例的 SQL 备份,并运行相同的查询,则上次备份日期不会改变:

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

..但是如果我打开一个新的 powershell 窗口,它会显示我刚刚进行的备份:

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

我猜测这是预期的行为,但有人可以告诉我它在哪里记录/解释吗 - 我只是想了解发生了什么。

这是针对 2008 实例运行 2008 附带的 SQlps。

谢谢

马特

答案1

sqlps 使用 SMO 的方式与 SQL Server Management Studio 类似,您是否注意到,在数据库对象资源管理器窗格中,当您在查询窗格中通过 T-SQL 创建新表时,需要右键单击并选择刷新?其实,sqlps 的概念相同,只是没有右键单击。

相反,您需要调用刷新方法:

dir SQLSERVER:\SQL\Server1\default\databases | foreach { $_.Refresh() }

相关内容