Я пытаюсь автоматизировать процесс резервного копирования базы данных SQL. Моя цель - использовать командлет Cloudberry Powershell, чтобы дать мне прямой контроль и доступ к моим ведрам S3. Я могу сделать это вручную, но не могу заставить мои задания SQL работать с этим.Как использовать оснастку Cloudberry Powershell (для Amazon S3) из запланированного задания агента SQL?
Согласно инструкциям по установке Cloudberry, мне не нужно регистрировать оснастку Cloudberry Powershell, если Powershell уже установлен. Я нашел это ложным. Я попытался зарегистрировать его, как 64-битный, так и 32-битный, без везения.
Это работает, когда выполняется вручную/явно из ISE:
Add-PSSnapin CloudBerryLab.Explorer.PSSnapIn
$today = Get-Date -format "yyyy.MM.dd.HH.mm.ss"
$key = "mykeygoeshere"
$secret = "mysecretgoeshere"
$s3 = Get-CloudS3Connection -Key $key -Secret $secret
$destination = $s3 | Select-CloudFolder -path "ProductionBackups/MyClient/log/" | Add-CloudFolder $today
$src = Get-CloudFilesystemConnection | Select-CloudFolder "X:\backups\MyClient\current\"
$src | Copy-CloudItem $destination -filter "log.trn"
^При выполнении этой команды в работе агента SQL, он терпит неудачу с этим сообщением:
Executed, как пользователь: DB-MAIN \ SYSTEM. Шаг задания получил ошибку в строке 1 сценария PowerShell. Соответствующая строка - «Добавить-PSSnapin CloudBerryLab.Explorer.PSSnapIn». Исправьте сценарий и перепланируйте задание. Информация об ошибках, возвращаемая PowerShell: «Термин« Add-PSSnapin »не распознается как имя командлета, функции, файла сценария или операционной программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку. ». Код выхода процесса -1. Не удалось выполнить этот шаг.
Я прочитал в this blog post, что SQLPS.exe не может выполнить команды «Add-PSSnapin»? Это правда? Я не могу найти разъяснений по этому вопросу ...
Как я могу автоматизировать свои файлы резервных копий SQL в облаке Amazon S3? Я все пробовал. TNT Drive был огромной тратой времени. Я надеюсь, что Морошка может это сделать, какие-нибудь советы?
Похоже, что скрипт запускается как пользователя системы. Вы пытались вручную запустить скрипт в качестве учетной записи системы? Вы можете запустить экземпляр Powershell.exe в качестве системной учетной записи, используя инструмент sysinternals psexec.exe -i -s «C: \ ... \ powershell.exe». Также почему бы не запустить его как запланированную задачу Windows? –
Я закончил работать как запланированная задача Windows, и она работает нормально. Я просто не могу заставить его выполнить из SQL Agent Job. – D3vtr0n