Как автоматизировать резервное копирование SQL на общем размещенном сервере? - PullRequest
1 голос
/ 08 декабря 2008

Я пользуюсь услугой хостинга, которая позволяет создавать резервные копии базы данных SQL 2008 и загружать файл BAK только через веб-интерфейс - и я имею доступ к базе данных через Management Studio. Я могу выполнить команду резервного копирования из Management Studio, но у меня нет прав на путь, где находятся резервные копии. Есть ли способ с помощью SQL или сценария снять полную копию базы данных - могу ли я сгенерировать сценарий, необходимый для воссоздания базы данных, используя код? Всего несколько тысяч записей.

Спасибо.

Ответы [ 5 ]

2 голосов
/ 24 марта 2011

Просто оставлю это здесь как ответ (Сценарии всей вашей базы данных в файл .sql (включая данные), а затем сжимают ее с помощью winrar.)

Я создал это решение, которое будет запускаться раз в день из планировщика задач, поэтому оно снижается до ежедневного уровня. Если вы хотите выполнить это больше (например, раз в полчаса), вам нужно отредактировать «% date: ~ -4,4 %% date: ~ -7,2 %% date: ~ -10,2 % ", чтобы перейти на уровень часов / минут / секунд, в зависимости от того, что вам нужно.

ПРИМЕЧАНИЕ. Необходимо установить мастер публикации SQL и Winrar

begin.bat - Оболочка для ведения записи файла журнала. Это командный файл, который будет вызываться планировщиком задач

::Run dbbackup.bat and append all output to log.txt

md C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%

"dbbackup.bat" >> "C:\[Directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%\log.txt"

dbbackup.bat - Резервное копирование базы данных

echo off
cls
echo %date% %time%
echo ***************************************************************************
echo ** Script all objects in databases and save them in 'yyyymmdd' folder  **
echo ***************************************************************************
cd C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%
"C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz.exe" script -C "[ConnectionString]" [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo ***************************************************************************
echo ** RAR compress all .sql script files                                    **
echo ***************************************************************************
"C:\Program Files\WinRAR\WinRAR.exe" -ibck a [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.rar [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo WinRAR has completed execution
echo ***************************************************************************
echo ** Delete all .sql script files                                          **
echo ***************************************************************************
del *.sql
echo .SQL files deleted

Просто создайте запланированное задание для запуска begin.bat для запуска в любой требуемый интервал времени, и резервная копия базы данных будет записана вместе с файлом журнала.

2 голосов
/ 09 мая 2009

Бесплатно SqlBackupAndFTP позволяет выполнять удаленное резервное копирование с использованием сценариев

2 голосов
/ 08 декабря 2008

Если у вас есть доступ через Management Studio, почему бы вам не скопировать размещенную базу данных на локальный компьютер (Задачи> Копировать БД)?

Как только он будет восстановлен в локальной системе, вы можете делать все, что захотите.

1 голос
/ 08 декабря 2008

Если хост не предоставляет простой способ получить резервные копии вашей базы данных (автоматизированные - и расскажет вам, как это сделать), вы должны найти другой.

0 голосов
/ 08 декабря 2008

Одним из способов является создание сценария структуры базы данных и создание операторов вставки для всей базы данных с помощью этого надстройки SSMS http://www.ssmstoolspack.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...