logo

ANDRIY.CO Support Forum / Форум техподдержки ANDRIY.CO

Домашняя страница http://andriy.co

Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Андрей Мукан  
#1 Оставлено : 27 сентября 2010 г. 10:16:07(UTC)
Андрей Мукан

Статус: Администратор

Репутация:

Группы: Administrators
Зарегистрирован: 16.11.2008(UTC)
Сообщений: 392
Украина
Откуда: Київ

Поблагодарили: 5 раз в 5 постах
Тема, достойная отдельной статьи. Пока статья не готова, но расскажу уже сейчас, как можно с помощью скрипта на T-SQL создавать резервные копии базы данных. Выполнение скрипта можно и нужно назначить в планировщике заданий Windows.
Кратко о скрипте - при запуске создается резервная копия MSSQL базы данных, она сжимается архиватором и сохраняется для хранения в архиве. Полученный архив можно скопировать еще в 2 места (на локальный или сетевой компьютер). Есть возможность по истечении определенного периода удалять старые архивы, чтобы они не заполнили со временем свободное пространство на жестком диске.


Распакуйте архив mssql.zip в корневую папку диска D: Должен получиться каталог D:\MSSQL
Содержимое указанного каталога
1. D:\MSSQL\Backup - каталог сохранения резервных копий базы данных после каждой процедуры резервирования
2. D:\MSSQL\instr - данная инструкция
3. D:\MSSQL\Temp - каталог для временных файлов
4. D:\MSSQL\backup.bat - исполняемый пакетный файл. Вызывает backup.cmd с параметром. В качестве параметра указывается имя базы данных. Например, "backup.bat ukr"
5. D:\MSSQL\backup.cmd - командный файл, выполняющий резервирование базы данных, имя которой указано в качестве параметра при вызове. Настройка расписана ниже.
6. D:\MSSQL\forfiles.exe - утилита, удаляющая файлы, старше определенного количества дней. Вызывается из командного файла.
7. D:\MSSQL\rar.exe - архиватор. Упаковывает резервные копии базы данных в архив для уменьшения занимаемого места на диске. Вызывается из командного файла.
Командный файл позволяет создать резервную копию базы данных, упаковать ее в архив, дополнительно сохранить архив на локальном жестком диске либо сетевом ЖД (до 2 каталогов, без учета основного).
Исполнение командного файла можно назначить в планировщике заданий.
Для адаптации скрипта к выполнению задач на сервере с базой данных необходимо отредактировать командный файл:
- Откройте D:\MSSQL\backup.cmd в блокноте.
- Отредактируйте строки, выделенные желтым цветом. Укажите имя базы данных, каталоги сохранения резервных копий и т.д.
В частности, Вам будет необходимо будет определить путь к коммандной строке osql.exe, используя короткие имена.
Сначала необходимо определить положение osql.exe - как правило, он находится в каталоге C:\Program Files\Microsoft SQL Server\90\Tools\Binn\ - убедитесь, что osql.exe присутствует в таком каталоге
Чтобы записать этот путь, используя короткие имена для каталогов "Program Files" и "Microsoft SQL Server", сделайте:
1. Запустите cmd.exe (Пуск - выполнить)
2. Выполните команду "C:", затем "cd \", затем "dir /X" (все команды вводите без кавычек, после каждой команды нажимайте кнопку ввода). В полученном списке в правом столбце найдите путь с длинным именем "Program Files" и запишите его короткое имя "PROGRA~1". У вас может быть другим. (желтый цвет)

UserPostedImage

3. Выполните команду "cd PROGRA~1"
4. Выполните команду "dir /X". В полученном списке в правом столбце найдите путь с длинным именем "Microsoft SQL Server" и запишите его короткое имя "MICROS~2". У вас может быть другим.

UserPostedImage

Таким образом, путь к osql.exe будет выглядеть следующим образом:
C:\PROGRA~1\MICROS~2\90\Tools\Binn\osql.exe
Чтобы убедиться, что все было сделано верно, скопируйте полученный путь к osql.exe (без самого "osql.exe", только каталог. Пример: C:\PROGRA~1\MICROS~2\90\Tools\Binn\) и вставьте его в адресную строку проводника Windows - в открывшемся каталоге вы должны увидеть перечень файлов и в нем файл osql.exe.

UserPostedImage

Продолжите редактирование командного файла. Сохраните изменения. Если вы используете Express редакцию сервера, не забудьте в имени сервера указать "\SQLExpress"

UserPostedImage

Откройте в блокноте файл backup.bat и отредактируйте в соответствии с рисунком ниже:

UserPostedImage

Проверьте работоспособность скрипта. Запустите backup.bat на выполнение. Следите за сообщениями в окне. После успешной отработки скрипта в каталоге с архивами БД, а также в каталогах с копиями должен появиться архив базы данных

Отредактировано пользователем 8 февраля 2017 г. 12:03:58(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Андрей Мукан за этот пост.
admin оставлено 06.02.2017(UTC)
igorochek_59  
#2 Оставлено : 9 апреля 2012 г. 15:05:20(UTC)
igorochek_59

Статус: Новичок

Репутация:

Группы: Зарегистрированный участник
Зарегистрирован: 09.04.2012(UTC)
Сообщений: 5
Украина

Вот например я решил заменить сервер, всё сделал уже, теперь хочу восстановить базу на новом серваке, есть скрипт какой-то или как?
Андрей Мукан  
#3 Оставлено : 9 апреля 2012 г. 19:38:37(UTC)
Андрей Мукан

Статус: Администратор

Репутация:

Группы: Administrators
Зарегистрирован: 16.11.2008(UTC)
Сообщений: 392
Украина
Откуда: Київ

Поблагодарили: 5 раз в 5 постах
igorochek_59 написал:
Вот например я решил заменить сервер, всё сделал уже, теперь хочу восстановить базу на новом серваке, есть скрипт какой-то или как?

Скрипта нет. Восстановить базу из бэкапа можно средствами самой SQL Management Studio. Нужно в дереве объектов кликнуть правой кнопкой мыши на элементе "Databases", затем выбрать пункт "Restore Database" и в открывшейся форме задать имя базы данных, местоположения бэкапа и т.д. Если у вас будут с этим трудности - выходите на Skype:andriy.co.support, поможем.
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.

Форум YAF.NET | YAF.NET © 2003-2024, Yet Another Forum.NET
Страница сгенерирована за 0.138 секунды.