
-
-
Обсуждения на сайте Альта-Софт
-
Создание дубля базы (вопрос к ТП)
Модераторы: Renat, Gala, alta_olg, Lemur, expert
Создание дубля базы (вопрос к ТП)
Подскажите скрипт позволяющий создать полную копию рабочей SQL базы с другим именем на том же сервере. dbutil не предлагать
. Т.е. при наличии базы gtd, требуется наличие той же базы с именем gtd_back на том же сервере.

Re: Создание дубля базы (вопрос к ТП)
Вам нужен именно скрипт? Т.е. руками вы делать не хотите? Почему? Надо сто раз такое проделывать? Для чего вообще вы это делаете?
Re: Создание дубля базы (вопрос к ТП)
Скрипт должен отрабатывать раз в квартал на паре десятков ноутов, совместно с со скриптами очистки и создания резервных копий. Скрипты очистки базы и резервного копирования легко создать в Альте, а вот автоматизировать создание копий баз с новыми именами не получается.
- aiki
- Дед
- Сообщения: 302
- На форуме: c 14 апр 2010
- Откуда: СП "Интегра", Ижевск
Сказал: 7 ед.
Получил: 74 ед.
Получил: 74 ед.
Re: Создание дубля базы (вопрос к ТП)
Вы бы описали решаемую задачу. Чтоб решение предложить.iboxjo писал(а):Скрипт должен отрабатывать раз в квартал на паре десятков ноутов, совместно с со скриптами очистки и создания резервных копий. Скрипты очистки базы и резервного копирования легко создать в Альте, а вот автоматизировать создание копий баз с новыми именами не получается.
Re: Создание дубля базы (вопрос к ТП)
Вообще операция восстановления БД имеет слишком много нюансов.
В общем случае SQL-команда для Вашей задачи может выглядеть так:
RESTORE DATABASE gtd_new
FROM DISK = 'C:\backup\gtd.bak' with recovery,
move 'gtd' to 'C:\Data\gtd_new\gtd.mdf',
move 'gtd_log' to 'C:\Data\gtd_new\gtd_log.ldf'
Здесь создается новая БД с именем gtd_new из архива (файла), расположенного в C:\backup\gtd.bak. Физические файлы при этом должны располагаться в отдельной папке, н-р, C:\Data\gtd_new.
Также для этой операции нужно точно знать, как называются логические имена файлов базы (в примере это gtd и gtd_log).
Обкатывайте команду сначала в Managment Studio. Как только все заработает, можете оформить в виде bat-ника по примеру backup.cmd.
Да, и учтите, что операцию восстановления, в отличии от бэкапа, нельзя выполнить, если к базе подключены пользователи.
А вообще, конечно, такие операции все-таки лучше проводить под контролем. Где-то что-то пойдет не так, Вы сразу не заметите, и данные могут потеряться.
В общем случае SQL-команда для Вашей задачи может выглядеть так:
RESTORE DATABASE gtd_new
FROM DISK = 'C:\backup\gtd.bak' with recovery,
move 'gtd' to 'C:\Data\gtd_new\gtd.mdf',
move 'gtd_log' to 'C:\Data\gtd_new\gtd_log.ldf'
Здесь создается новая БД с именем gtd_new из архива (файла), расположенного в C:\backup\gtd.bak. Физические файлы при этом должны располагаться в отдельной папке, н-р, C:\Data\gtd_new.
Также для этой операции нужно точно знать, как называются логические имена файлов базы (в примере это gtd и gtd_log).
Обкатывайте команду сначала в Managment Studio. Как только все заработает, можете оформить в виде bat-ника по примеру backup.cmd.
Да, и учтите, что операцию восстановления, в отличии от бэкапа, нельзя выполнить, если к базе подключены пользователи.
А вообще, конечно, такие операции все-таки лучше проводить под контролем. Где-то что-то пойдет не так, Вы сразу не заметите, и данные могут потеряться.
Re: Создание дубля базы (вопрос к ТП)
Благодарю за ответ. Да подконтрольно конечно лучше. Но задача поставлена и её надо попробовать решить. Ещё раз спасибо, попробую.