Как запланировать повторное резервное копирование БД SQL Server 2012 с помощью sqlcmd?

426
garym

Я ищу способ создания ежемесячной повторяющейся резервной копии базы данных сервера SQL с использованием sqlcmd.

Я видел сценарии для SQL Express, но они выполняются только один раз. Я ищу сценарий SQL, который будет использовать агент или другое средство для периодического запуска резервного копирования.

Спасибо

1
Спасибо за ответ и вопросы. Я пытаюсь держаться подальше от планировщика задач из-за заблокированной / безопасной системы. Я ищу скрипт tsql для реализации msdb.dbo.sp_add_job, msdb.dbo.sp_add_jobstep и msdb.dbo.sp_add_jobschedule. По крайней мере, это то, что я думаю, мне нужно сделать, так как я разместил вопрос. garym 7 лет назад 0
Ahh yes, 2012 and 2008r2 on secure 2008R2 server. No Express versions allowed. I'm the dba/machine admin. sa access but no domain admin privileges. The task scheduler belongs to the domain guys. I'm writing something (an installer) now. I'll see how it goes. I'll post it as soon as I get it working. I also need to pass most the variables via the command line garym 7 лет назад 0
Возможно, имеет смысл просто создать устройства резервного копирования через TSQL с SSMS, а затем создать задание агента SQL, в котором каждый шаг содержит логику для резервного копирования этих БД на устройства резервного копирования по одному со всеми статическими именами, такими как `DBName1 .bak`, поэтому при каждом запуске существующий файл перезаписывается, а затем просто позволяет агенту SQL позаботиться о планировании. Задание агента SQL было бы более мощным, чем SQLCMD, и если вам действительно нужно что-то, что принимает несколько параметров, вы можете создать его для динамического SP и затем передать аргументы оттуда. Pimp Juice IT 7 лет назад 0
Я делаю это все время как администратор базы данных для нескольких экземпляров SQL Server, и это очень надежный метод, и вы также можете настроить его так, чтобы каждый шаг переходил к следующему шагу независимо от сбоя или успеха, и тогда самый последний шаг мог проверьте состояние всех предыдущих шагов, а если произошел сбой и т. д., вы можете отправить его по электронной почте, чтобы указать, что есть проблема, и вы должны проверить журналы и т. д. Pimp Juice IT 7 лет назад 0
Последнее тоже подумали, так что даже если вы не являетесь администратором сервера, технически, если вы являетесь пользователем экземпляра SQL Server. Включив и используя cmdexec, вы можете использовать большинство команд на уровне ОС сервера с правами локального администратора. Я также хотел поделиться этим с вами https://ola.hallengren.com/sql-server-backup.html, так как я слышал только хорошее об этом инструменте, но я не использовал его. Если вас интересуют устройства резервного копирования SQL и задание агента SQL для резервного копирования через них, я могу написать что-нибудь позже завтра, когда-нибудь. Проверьте http://dba.stackexchange.com/ тоже. Pimp Juice IT 7 лет назад 0

1 ответ на вопрос

0
Alain Tésio

несколько шагов, как вы спросили о sqlcmd:

  • запустить SQL Server Profiler
  • выполнить резервное копирование из Management Studio
  • см. команды sql в профилировщике
  • в конечном итоге внести некоторые коррективы в код SQL (например, добавив текущую дату к имени файла)
  • сохранить код sql в файл makedump.sql
  • создайте запланированное задание с файлом makedump.bat, который выполняет "sqlcmd ... -i makedump.sql"

Или используйте простой способ:

  • запустить Management Studio
  • найдите свой экземпляр sql в проводнике объектов
  • разверните узел сервера и «план обслуживания»
  • щелкните правой кнопкой мыши на мастере и следуйте инструкциям

Похожие вопросы