Я не вижу встроенного механизма для планирования ночного резервного копирования в SQL Server 2005. Какие инструменты доступны для выполнения этой задачи и насколько они надежны?
В Агент SQL Server сделаю это за вас.
Доступен даже удобный мастер для создания необходимых заданий резервного копирования (Электронная документация по SQL Server 2005: Как: создать план обслуживания). Что касается надежности - я ожидал, что это будет надежно.
Он может выполнять многоэтапные задания по сложным графикам и уведомлять вас по почте или другим способом или запускать процессы в зависимости от успеха или неудачи любого задания.
MSDN:
По умолчанию служба агента SQL Server отключена при установке SQL Server 2005 или более поздней версии, если пользователь явно не выбрал автоматический запуск службы.
В этом есть несколько частей.
Во-первых, планы обслуживания создают набор действий, которые могут создавать резервную копию вашей базы данных, дефрагментировать ваш индекс, выполнять проверки DBCC и т. Д. Проблема в том, что планы обслуживания страдают недостатком гибкости и имеют некоторые ограничения. Я говорю об этом в своем обучающем видео о планах обслуживания:
http://sqlserverpedia.com/wiki/Database_Main maintenance_Plans
Вместо этого вы можете написать свои собственные сценарии T-SQL для резервного копирования базы данных. Это даст вам больше гибкости и мощности. Мы также ссылаемся на несколько хороших сценариев резервного копирования по этой видеосвязи.
Во-вторых, независимо от того, какой метод вы выберете (планы обслуживания или пользовательские сценарии T-SQL), задания будут выполняться по вашему расписанию агентом SQL Server. Агент - это планировщик заданий, встроенный в SQL Server.
Я сделал это с помощью плана обслуживания. Я действительно написал сценарий для резервного копирования всех пользовательских баз данных. Я поделился этим сценарием здесь http://dbalink.wordpress.com/2009/04/25/automated-sql-server-back-poor-mans-edition/
Однако есть решения лучше, чем то, что я сделал в своем сценарии. Просто проверьте комментарии к моему сообщению.
Надеюсь, это поможет ;-)
Какая у вас версия SQL 2005? Если у вас есть экспресс-версия (бесплатная версия), она не поставляется с агентом SQL.
Если у вас есть Express, вам придется проявить немного больше творчества. Один из вариантов - использовать планировщик Windows для вызова sqlcmd со сценарием резервного копирования.
Если у вас нет агента, используйте Планировщик для вызова такого сценария:
BACKUP DATABASE MyDatabase TO DISK='C:\MyDatabase.bak';
Или похожие…
Помните, что C: \ не может быть сетевым диском, он должен быть локально подключенным. (Нет, подключенные диски тоже не работают).
Я использую планы обслуживания, они были просты в настройке и до сих пор не подводили. У меня есть резервные копии моих баз данных в SAN, вы должны указать UNC-имя для пути к каталогу, например, \\ archive \ SQL \ database \ fullbackup.bak.
По мере того, как я все больше использую SQL-сервер, я, скорее всего, перейду к сценариям, поскольку просмотр видео Брента показал мне, что в долгосрочной перспективе это лучше.
Сетевое резервное копирование возможно с помощью агента SQL Server ...
Вам просто нужно изменить учетную запись, которая используется для запуска службы агента SQL Server, на учетную запись с доступом к общему сетевому ресурсу (и, конечно, к операциям системной службы) - например, любая учетная запись администратора домена ...
Но бэкап локального диска и xp_commandshell действительно намного надежнее. Можно скрипт проверить / разослать результат на несколько серверов и так далее ...