Данная запись не является неким решением, а скорее является результатом моего исследования по данной теме. Далее приведённый скрипт весьма не совершенен и требует доработки под конкретные условия. Однако он вполне может являться отличной отправной точкой для создания собственного решения. Возникла задача по автоматизации восстановления баз данных (БД) SQL Server на тестовый сервер для нужд разработчиков. Так как мы работаем с разными версиями SQL Server, только одна из них установлена как экземпляр по умолчанию, остальные используют именованные экземпляры (Named Instance). Восстановление БД из System Center 2012 R2 DPM посредством PowerShell, как оказалось, вообще задача не тривиальная и мало описанная. К примеру, практически нигде в документации (или, по крайней мере, я не нашел) не говорится, что операции, которые делаются через GUI консоль DPM, не соответствуют операциям, которые можно проделать через PowerShell. DPM это тот продукт, который выбивается из линейки продуктов “2012 R2”, так как для этих продуктов (Windows Server 2012 R2, SCCM 2012 R2, SCVMM 2012 R2) постоянно декларируется то, что любую операцию, которую можно сделать через GUI, можно сделать и через PowerShell, и даже более того, порой PowerShell дает более расширенные возможности по сравнению с GUI. Как выяснилось, в DPM это совсем не так. Операция восстановления БД из точки восстановления в DPM через GUI выглядит примерно так: Выбираем группу защиты Выбираем точку восстановления нужной БД Выбираем тип восстановления (в нашем случае это “Recover to any instance of SQL Server”) Выбираем сервер и экземпляр SQL Server, а так же пути для файлов в точке назначения Указываем режим восстановленной базы Указываем специфические опции Жмем “Recover” Какой результат получаем в итоге: Файлы базы копируется на сервер назначения База монтируется на выбранном экземпляре SQL Server В случае с PowerShell мы не получаем функционала для пункта 2. Так как в структуре командлета New-RecoveryOption значение обязательного параметра -RecoveryLocation можно указать только OriginalServer или OriginalServerWithDBRename (остальные типы значений
↧