Последнее резервное копирование Powershell (sqlps) не меняется, несмотря на запуск резервного копирования sqlserver
Я использую 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
Если я затем запускаю sql-резервную копию экземпляра Server1 по умолчанию и выполняю тот же запрос, дата последнего резервного копирования не изменяется:
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
Я предполагаю, что это ожидаемое поведение, но кто-нибудь может показать мне, где это задокументировано / объяснено - я просто хочу понять, что происходит.
Это работает SQlps, который пришел с 2008 года, против экземпляра 2008 года.
Спасибо
Matt
1 ответ
sqlps использует SMO так же, как SQL Server Management Studio, и вы когда-нибудь замечали, что в панели проводника объектов базы данных нужно щелкнуть правой кнопкой мыши и выбрать команду "обновить", например, при создании новой таблицы с помощью T-SQL в области запросов? Ну, та же концепция, только с sqlps, здесь нет щелчка правой кнопкой мыши.
Вместо этого вам нужно вызвать метод обновления:
dir SQLSERVER:\SQL\Server1\default\databases | foreach { $_.Refresh() }