Автоматизация доставки журналов Scripting Log

Можно ли сценаризировать всю конфигурацию отправки журнала?

Например: мне нужно написать задание, которое инициирует доставку журнала из двух баз данных с сервера A на сервер B.

Работа будет выполняться на сервере A.

Кстати, оба являются SQL 2008 R2 Enterprise.

Есть доля на сервере A. \ serverA \ Log

Я верю, что это все, что нужно. Можно ли это сделать только по сценарию? Нужно ли инициализировать базы данных или есть ли способ, например SSMS, для автоматической инициализации?

Должен ли я создавать задания вручную? или он настроен таким образом, что создает задания и управляет ими?

Является ли это сценарием? Кто-нибудь сделал что-нибудь подобное? Есть ли у кого-нибудь сценарий для этого?

Заранее спасибо.

Это вполне возможно, и его можно выполнить с помощью графического интерфейса настройки доставки журналов. Единственное препятствие, которое необходимо преодолеть в сценарии, который он создает, должно будет подключиться как к первичному, так и к вторичному в том же скрипте. Это можно сделать, используя команды режима SQLCMD в SQLCMD, используя команду CONNECT, чтобы установить GO между соединениями. В качестве бонуса вы также можете выполнять команды ОС (copy, del и т. Д.), Чтобы вы могли также выполнить скриптинг и восстановление. См. Пример ниже.

-- Execute the following statements at the Primary to configure Log Shipping -- for the database [primary\instance1].[mydb], -- The script needs to be run at the Primary in the context of the [msdb] database. ------------------------------------------------------------------------------------- -- Adding the Log Shipping configuration -- ****** Begin: Script to be run at Primary: [primary\instance1] ****** :setvar PRIMARY primary\instance1 :setvar SECONDARY secondary\instance2 :setvar DATABASE mydb :setvar PBKDIR "D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\" :setvar PBKSHARE "\\primary\d$\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\" :setvar SBKSHARE "\\secondary\d$\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\" :setvar SDATADIR "D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\" :connect $(PRIMARY) alter database [$(DATABASE)] set recovery full DECLARE @LS_BackupJobId AS uniqueidentifier DECLARE @LS_PrimaryId AS uniqueidentifier DECLARE @SP_Add_RetCode As int EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database @database = N'$(DATABASE)' ,@backup_directory = N'$(PBKDIR)' ,@backup_share = N'$(PBKSHARE)' ,@backup_job_name = N'LSBackup_$(DATABASE)' ,@backup_retention_period = 1440 ,@backup_threshold = 180 ,@threshold_alert_enabled = 1 ,@history_retention_period = 5760 ,@backup_job_id = @LS_BackupJobId OUTPUT ,@primary_id = @LS_PrimaryId OUTPUT ,@overwrite = 1 IF (@@ERROR = 0 AND @SP_Add_RetCode = 0) BEGIN DECLARE @LS_BackUpScheduleUID As uniqueidentifier DECLARE @LS_BackUpScheduleID AS int EXEC msdb.dbo.sp_add_schedule @schedule_name =N'LSBackupSchedule_$(PRIMARY)' ,@enabled = 1 ,@freq_type = 4 ,@freq_interval = 1 ,@freq_subday_type = 4 ,@freq_subday_interval = 60 ,@freq_recurrence_factor = 0 ,@active_start_date = 20100101 ,@active_end_date = 99991231 ,@active_start_time = 0 ,@active_end_time = 235900 ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT ,@schedule_id = @LS_BackUpScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule @job_id = @LS_BackupJobId ,@schedule_id = @LS_BackUpScheduleID EXEC msdb.dbo.sp_update_job @job_id = @LS_BackupJobId ,@enabled = 1 END EXEC master.dbo.sp_add_log_shipping_alert_job EXEC master.dbo.sp_add_log_shipping_primary_secondary @primary_database = N'$(DATABASE)' ,@secondary_server = N'$(SECONDARY)' ,@secondary_database = N'$(DATABASE)' ,@overwrite = 1 backup database [$(DATABASE)] to disk = '$(PBKDIR)$(DATABASE)_dr_init.bak' with init go print '$(PBKSHARE)$(DATABASE)_dr_init.bak' print '$(SBKSHARE)' print 'copy $(PBKSHARE)$(DATABASE)_dr_init.bak $(SBKSHARE) /y' !!copy $(PBKSHARE)$(DATABASE)_dr_init.bak $(SBKSHARE) /y go !!del $(PBKSHARE)$(DATABASE)_dr_init.bak /Q go -- ****** End: Script to be run at Primary: [primary\instance1] ****** -- Execute the following statements at the Secondary to configure Log Shipping -- for the database [secondary\instance2].[mydb], -- the script needs to be run at the Secondary in the context of the [msdb] database. ------------------------------------------------------------------------------------- -- Adding the Log Shipping configuration -- ****** Begin: Script to be run at Secondary: [secondary\instance2] ****** :connect $(SECONDARY) !!sqlcmd /E /S$(SECONDARY) -i DRRestoreDatabase.sql -v BKDIR="$(SBKSHARE)" -v DATADIR="$(SDATADIR)" -v LOGDIR="$(SLOGDIR)" !!del $(SBKSHARE)$(DATABASE)_dr_init.bak /Q go DECLARE @LS_Secondary__CopyJobId AS uniqueidentifier DECLARE @LS_Secondary__RestoreJobId AS uniqueidentifier DECLARE @LS_Secondary__SecondaryId AS uniqueidentifier DECLARE @LS_Add_RetCode As int EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary @primary_server = N'$(PRIMARY)' ,@primary_database = N'$(DATABASE)' ,@backup_source_directory = N'$(PBKSHARE)' ,@backup_destination_directory = N'$(SBKSHARE)' ,@copy_job_name = N'LSCopy_$(PRIMARY)_$(DATABASE)' ,@restore_job_name = N'LSRestore_$(PRIMARY)_$(DATABASE)' ,@file_retention_period = 1440 ,@overwrite = 1 ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) BEGIN DECLARE @LS_SecondaryCopyJobScheduleUID As uniqueidentifier DECLARE @LS_SecondaryCopyJobScheduleID AS int EXEC msdb.dbo.sp_add_schedule @schedule_name =N'DefaultCopyJobSchedule' ,@enabled = 1 ,@freq_type = 4 ,@freq_interval = 1 ,@freq_subday_type = 4 ,@freq_subday_interval = 60 ,@freq_recurrence_factor = 0 ,@active_start_date = 20090505 ,@active_end_date = 99991231 ,@active_start_time = 0 ,@active_end_time = 235900 ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule @job_id = @LS_Secondary__CopyJobId ,@schedule_id = @LS_SecondaryCopyJobScheduleID DECLARE @LS_SecondaryRestoreJobScheduleUID As uniqueidentifier DECLARE @LS_SecondaryRestoreJobScheduleID AS int EXEC msdb.dbo.sp_add_schedule @schedule_name =N'DefaultRestoreJobSchedule' ,@enabled = 1 ,@freq_type = 4 ,@freq_interval = 1 ,@freq_subday_type = 4 ,@freq_subday_interval = 60 ,@freq_recurrence_factor = 0 ,@active_start_date = 20090505 ,@active_end_date = 99991231 ,@active_start_time = 0 ,@active_end_time = 235900 ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT EXEC msdb.dbo.sp_attach_schedule @job_id = @LS_Secondary__RestoreJobId ,@schedule_id = @LS_SecondaryRestoreJobScheduleID END DECLARE @LS_Add_RetCode2 As int IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) BEGIN EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database @secondary_database = N'$(DATABASE)' ,@primary_server = N'$(PRIMARY)' ,@primary_database = N'$(DATABASE)' ,@restore_delay = 0 ,@restore_mode = 1 ,@disconnect_users = 1 ,@restore_threshold = 180 ,@threshold_alert_enabled = 1 ,@history_retention_period = 2880 ,@overwrite = 1 END IF (@@error = 0 AND @LS_Add_RetCode = 0) BEGIN EXEC msdb.dbo.sp_update_job @job_id = @LS_Secondary__CopyJobId ,@enabled = 1 EXEC msdb.dbo.sp_update_job @job_id = @LS_Secondary__RestoreJobId ,@enabled = 1 END go -- ****** End: Script to be run at Secondary: [secondary\instance2] ****** 
  • SQL Server: как сгенерировать объектные скрипты без DMO / SMO?
  • Скрипты в приложении Delphi
  • Сценарий миграции: замена «в данных на»
  • В SQL Server 2005 есть простой способ «скопировать» разрешения на объект от одного пользователя / роли к другому?
  • Создание базы данных в SQL Server на основе модели данных Visio
  • Быстрое создание сценариев SQL Server 2005
  • SQL Server параллелен Oracle DBMS_METADATA.GET_DDL?
  • Могу ли я автоматически «Сгенерировать скрипты» в задаче SQL Server 2005?
  • В SQL-сервере есть ли способ заставить команду «use database» принять переменную
  • Удалите базу данных localdb из диспетчера пакетов VS
  • Где вы держите свои общие сценарии задач sql?
  • Давайте будем гением компьютера.