Заменить расположение резервной копии в заданиях SQL - PullRequest
0 голосов
/ 06 февраля 2019

Мы пытаемся заменить место резервного копирования на шаге Задания резервного копирования SQL (запуск оболочки питания через несколько серверов). Ниже приведен сценарий PS, который я хотел бы использовать:

# $Server is a file with SERVERNAME names 
$Jobs = Get-SQLAgentJob -ServerInstance 
$Servers Foreach ($job in $Jobs.Where{$_.Name -like 'DatabaseBackup' -and $_.isenabled -eq $true}) { 
    foreach ($Step in $Job.jobsteps.Where{$_.Name -like 'DatabaseBackup'}) { 
        $Step.Command = $Step.Command.Replace("Directory = N'C:\Backup\oldname1\oldname2\SERVERNAME'", "Directory = N'C:\Backup2\newname1\newname2\SERVERNAME'")
        $Step.Alter() 
        } 
}

1 Ответ

0 голосов
/ 07 февраля 2019

Кажется, это должно работать.Единственными потенциальными проблемами, которые я вижу, являются следующие:

  1. именованные экземпляры SQL: переменная $ servers должна иметь формат имя_сервера \ имя_экземпляра, если не используется имя экземпляра по умолчанию

  2. Имена заданий и шагов: Если ваши имена заданий и имена шагов заданий не являются точно резервными копиями базы данных, исключая регистр, то оператор -like в сочетании с точной строкой не найдет совпадения.Если имена содержат строку резервного копирования базы данных, вам будет безопаснее использовать -match «databasebackup» или -подобно со звездочками с обеих сторон строки.

В противном случаеэтот код должен работать только при условии отсутствия проблем с сетевым подключением или разрешениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...