【问题标题】:SSISDB and Always On. How to schedule jobs?SSISDB 和永远在线。如何安排工作?
【发布时间】:2017-05-04 09:26:44
【问题描述】:

现在 SQL Server 2016 使 SSISDB 完全高可用,我有一个关于作业设置的问题。

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

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

【问题讨论】:

    标签: sql-server alwayson


    【解决方案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/

    【讨论】:

    • 将工作放在单个服务器上的唯一问题是,如果整个服务器丢失了,所以我认为部署到这两个服务器听起来更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多