Построение цепочки восстановлений баз данных MS SQLИсточник: habrahabr Phantasmogory
Часто возникает задача восстановить базу по цепочке бэкапов на резервном/тестовом сервере, на котором непосредственный бэкап базы не проводился, отсутствуют записи в msdb, но есть сами бэкапы, снятые с продуктивного сервера. Вариант с восстановлением копии базы msdb может не подойти если должны существовать разные наборы джобов для основного сервера и того, на котором мы планируем восстановление. Если файлов с бэкапами немного, то восстановить логический порядок следования файлов нетрудно, особенно если бэкапы принадлежат логшиппингу. В этом случае все тривиально - в имени файла хранятся и время, и дата (стоит только помнить, что время в именах файлов хранится в UTC). Но что делать, если в бэкапах нет структуры или файлов очень много, и организовать их простым способом не представляется возможным или как можно просто определить начиная с какого файла логшипинга начинать донакатку ? Если вы занимались этим вопросом, то возможно вы сталкивались с подобной ошибкой В этой статье я расскажу как с минимумом ручной работы правильно выстроить цепочку восстановления и постараться избежать подобных ошибок. Трюк заключается в наполнении репозитория восстановления и использовании логики построения цепочки восстановлений Management Studio. 1) Первоначально в базе резервного/тестового сервера необходимо сформировать метаданные о бэкапах.
аналог известной команды ORACLE Эта команда, считывая бэкап с диска, проводит минимально необходимую проверку корректности образа, и в случае успеха формирует в msdb резервного сервера записи об этом образе. И скрипт по загрузке истории о бэкапах из определенной папки будет выглядеть так:
! Осторожно: скрипт будет выполняться довольно долго (время обработки одного файла сопоставимо с временем восстановления бэкапа из этого файла) Скрипт заполнит системные таблицы информацией о бэкапах. Такое же добавление в репозиторий происходит при обычном восстановлении из бэкапов. Это подходит в случае использования систем бэкапирования с нестандартными способами восстановления для занесения сведений в репозиторий восстановления.
На этом этапе важно восставить базу с параметром NORECOVERY если мы планируем восстанавливать дальше цепочку бэкапов В результате восстановления в репозитории, в качестве устройства, на котором лежит бэкап будет VDI-устройство и достучаться к нему со стороны SQL сервера будет невозможно, но эта запись нам необходима как отправная точка для цепочки восстановлений
2) После заполнения репозитория восстановления msdb можно начать само восстановление.
Если цепочка восстановлений не построилась, восстановление невозможно по следующим причинам: Указав все необходимые параметры сохраним скрипт на восстановление и удалим шаги, которые мы уже проделывали, восстанавливая из нестандартного источника (например Veritas Netbackup). |