Назад | Перейти на главную страницу

Как мне автоматически выполнять ночное резервное копирование для Microsoft SQL Server 2005?

Я не вижу встроенного механизма для планирования ночного резервного копирования в 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 действительно намного надежнее. Можно скрипт проверить / разослать результат на несколько серверов и так далее ...