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

Резервное копирование SQL Server 2005 с компьютера не из домена?

Нам нужно сделать резервную копию базы данных MS SQL Server 2005. Компьютер, на котором находится база данных, находится в собственной рабочей группе, а не в нашем домене. Также не похоже, что поставщик поддержит нас при добавлении ПК в домен. Поэтому нам нужно найти способ сохранить резервную копию SQL в нашем домене.

Я не гуру SQL, но вижу, что планы обслуживания SQL, которые мы запускаем для других баз данных, позволяют нам указать, где мы хотим разместить резервную копию. Но все используемые нами базы данных, пользователи и общие ресурсы находятся в нашем домене. Кажется, наша проблема заключается в том, что план обслуживания SQL должен выполняться от имени локального администратора на компьютере, не являющемся доменом, но тогда у меня нет хорошего способа предоставить этому пользователю права на нашу общую сетевую папку.

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

Я уверен, что мы могли бы создать сценарий копии файла после того, как план обслуживания SQL будет запущен локально. Мы просто вставили учетные данные в сценарий. Но мы думаем, что было бы лучше, если бы План обслуживания мог позаботиться об этом сам - на мой взгляд, меньше движущихся частей.

Я чувствую себя толстым в понедельник, и это должно быть проще, чем я делаю. Что мне не хватает?

Спасибо за вашу помощь! CC

Если вы хотите придерживаться плана обслуживания, даже если я знаю, что большинство администраторов баз данных страстно их ненавидят. Вы можете сделать сценарий копирования этапом в плане обслуживания. Таким образом, резервное копирование и копия остаются синхронными. Следуй этим шагам:

  1. Создайте сценарий копирования, используя выбранный вами язык сценариев. Это достаточно просто сделать с пакетом dos.
  2. Создайте задание агента SQL Server, создайте задание и добавьте шаг с типом: Операционная система (CmdExec) и укажите путь к командному файлу для запуска, например. X:\mssql\backup\copy_db.cmd. Не составляйте расписание.
  3. Измените план обслуживания и добавьте Выполнение задачи задания агента SQL Server. Для этого перетащите эту задачу из панели инструментов в окно дизайна.
  4. Получить Выполнение задачи задания агента SQL Server чтобы запустить только что созданное задание.
  5. Выберите существующий Задача резервного копирования базы данных а затем перетащите зеленую стрелку и подключите ее к только что созданной задаче «Задание агента». Это гарантирует, что задание копирования будет запущено после успешного завершения резервного копирования.

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

Лично я бы написал сценарий для запуска на компьютере SQL Server в качестве «запланированной задачи», который запускал бы резервное копирование с помощью SQLCMD. После завершения резервного копирования я скопирую его на удаленный компьютер, используя учетные данные, встроенные в этот сценарий. Попытка перехватить резервную копию после выполнения плана обслуживания для меня проблематична, потому что план обслуживания асинхронен со сценарием, копирующим базу данных. Я бы сохранил план обслуживания, но либо удалил шаг резервного копирования, либо просто не использовал резервную копию, которую он создает. Делать резервную копию и копировать в одном скрипте приятно, потому что это синхронно.