SSISDB и всегда включен. Как планировать работу?

Теперь, когда SQL Server 2016 позволяет SSISDB быть полностью доступным, у меня есть вопрос относительно настройки задания.

Когда я создаю задание агента SQL, которое выполняет пакет служб SSIS, развернутый в SSISDB, должен ли на этапе задания сервер быть именем прослушивателя или именем физического хоста?

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


person Marcos Freccia    schedule 04.05.2017    source источник


Ответы (1)


Имя сервера должно быть именем слушателя, если вы следуете этому подходу, достаточно развернуть задание в одном экземпляре.

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

- fn_hadr_group_is_primary
USE master;
GO
IF OBJECT_ID('dbo.fn_hadr_group_is_primary', 'FN') IS NOT NULL
  DROP FUNCTION dbo.fn_hadr_group_is_primary;
GO
CREATE FUNCTION dbo.fn_hadr_group_is_primary (@AGName sysname)
RETURNS bit
AS
BEGIN;
  DECLARE @PrimaryReplica sysname; 

  SELECT
    @PrimaryReplica = hags.primary_replica
  FROM sys.dm_hadr_availability_group_states hags
  INNER JOIN sys.availability_groups ag ON ag.group_id = hags.group_id
  WHERE ag.name = @AGName;

  IF UPPER(@PrimaryReplica) =  UPPER(@@SERVERNAME)
    RETURN 1; -- primary

    RETURN 0; -- not primary
END; 

В этом посте также рассматриваются некоторые распространенные проблемы, о которых необходимо позаботиться.

https://blogs.msdn.microsoft.com/mattm/2012/09/19/ssis-with-alwayson/

person TheGameiswar    schedule 04.05.2017
comment
Единственная проблема с размещением задания на одном сервере — если все будет потеряно, поэтому я думаю, что размещение на обоих серверах звучит лучше. - person Marcos Freccia; 04.05.2017