SSISDB和Always On。如何安排工作?

时间:2017-05-04 09:26:45

标签: sql-server alwayson

现在SQL Server 2016使SSISDB完全可用,我对作业设置有疑问。

当我创建执行SSISDB中部署的SSIS包的SQL代理作业时,在作业步骤中,服务器应该是监听器名称还是物理主机名?

我问这是因为如果我使用物理主机名并在两个副本中创建作业,则辅助作业将始终失败,因为DB处于只读模式。我还没有尝试放置听众名称,因为我想先得到意见。

1 个答案:

答案 0 :(得分:0)

服务器名称应该是侦听器名称,如果您遵循此方法,则只需在一个实例中部署作业

您还可以在所有实例中使用物理主机名和部署作业,前提是您在第一步下面有一段代码

- 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/