如何检查复制代理的执行频率?

时间:2016-06-21 06:56:42

标签: sql sql-server replication

是否可以检查(在现有复制中)复制代理执行的频率? (例如每5分钟,每2周一次,......)

我在SQL-Server Agent中找不到它。

3 个答案:

答案 0 :(得分:1)

它应该像打开复制作业属性 - >一样简单。 时间表 - > 编辑,在频率下,您可以看到已设置的所有设置。

答案 1 :(得分:1)

您可以在相关数据库上运行此存储过程:sp_replmonitorhelppublication(https://msdn.microsoft.com/en-us/library/ms186304.aspx

答案 2 :(得分:1)

你可以使用。

    select * from MSlogreader_agents
    select * from MSdistribution_agents
    select * from MSdistribution_history
    select * from MSlogreader_history

在分发数据库中。

要查看计划,您可以使用msdb.dbo.sysjobschedules加入MSlogreader_agents,MSdistribution_agents。

以下是查看计划信息的脚本。如果在订阅服务器上提供推送订阅分发代理,则可以在订阅中使用它。

        SELECT 
            [schedule_uid] AS [ScheduleID]
            , [name] AS [ScheduleName]
            , CASE [enabled]
                WHEN 1 THEN 'Yes'
                WHEN 0 THEN 'No'
              END AS [IsEnabled]
            , CASE 
                WHEN [freq_type] = 64 THEN 'Start automatically when SQL Server Agent starts'
                WHEN [freq_type] = 128 THEN 'Start whenever the CPUs become idle'
                WHEN [freq_type] IN (4,8,16,32) THEN 'Recurring'
                WHEN [freq_type] = 1 THEN 'One Time'
              END [ScheduleType]
            , CASE [freq_type]
                WHEN 1 THEN 'One Time'
                WHEN 4 THEN 'Daily'
                WHEN 8 THEN 'Weekly'
                WHEN 16 THEN 'Monthly'
                WHEN 32 THEN 'Monthly - Relative to Frequency Interval'
                WHEN 64 THEN 'Start automatically when SQL Server Agent starts'
                WHEN 128 THEN 'Start whenever the CPUs become idle'
              END [Occurrence]
            , CASE [freq_type]
                WHEN 4 THEN 'Occurs every ' + CAST([freq_interval] AS VARCHAR(3)) + ' day(s)'
                WHEN 8 THEN 'Occurs every ' + CAST([freq_recurrence_factor] AS VARCHAR(3)) 
                            + ' week(s) on '
                            + CASE WHEN [freq_interval] & 1 = 1 THEN 'Sunday' ELSE '' END
                            + CASE WHEN [freq_interval] & 2 = 2 THEN ', Monday' ELSE '' END
                            + CASE WHEN [freq_interval] & 4 = 4 THEN ', Tuesday' ELSE '' END
                            + CASE WHEN [freq_interval] & 8 = 8 THEN ', Wednesday' ELSE '' END
                            + CASE WHEN [freq_interval] & 16 = 16 THEN ', Thursday' ELSE '' END
                            + CASE WHEN [freq_interval] & 32 = 32 THEN ', Friday' ELSE '' END
                            + CASE WHEN [freq_interval] & 64 = 64 THEN ', Saturday' ELSE '' END
                WHEN 16 THEN 'Occurs on Day ' + CAST([freq_interval] AS VARCHAR(3)) 
                             + ' of every '
                             + CAST([freq_recurrence_factor] AS VARCHAR(3)) + ' month(s)'
                WHEN 32 THEN 'Occurs on '
                             + CASE [freq_relative_interval]
                                WHEN 1 THEN 'First'
                                WHEN 2 THEN 'Second'
                                WHEN 4 THEN 'Third'
                                WHEN 8 THEN 'Fourth'
                                WHEN 16 THEN 'Last'
                               END
                             + ' ' 
                             + CASE [freq_interval]
                                WHEN 1 THEN 'Sunday'
                                WHEN 2 THEN 'Monday'
                                WHEN 3 THEN 'Tuesday'
                                WHEN 4 THEN 'Wednesday'
                                WHEN 5 THEN 'Thursday'
                                WHEN 6 THEN 'Friday'
                                WHEN 7 THEN 'Saturday'
                                WHEN 8 THEN 'Day'
                                WHEN 9 THEN 'Weekday'
                                WHEN 10 THEN 'Weekend day'
                               END
                             + ' of every ' + CAST([freq_recurrence_factor] AS VARCHAR(3)) 
                             + ' month(s)'
              END AS [Recurrence]
            , CASE [freq_subday_type]
                WHEN 1 THEN 'Occurs once at ' 
                            + STUFF(
                         STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                WHEN 2 THEN 'Occurs every ' 
                            + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Second(s) between ' 
                            + STUFF(
                           STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                            + ' & ' 
                            + STUFF(
                            STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                WHEN 4 THEN 'Occurs every ' 
                            + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Minute(s) between ' 
                            + STUFF(
                           STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                            + ' & ' 
                            + STUFF(
                            STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                WHEN 8 THEN 'Occurs every ' 
                            + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Hour(s) between ' 
                            + STUFF(
                            STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
                            + ' & ' 
                            + STUFF(
                            STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6)
                                        , 3, 0, ':')
                                    , 6, 0, ':')
              END [Frequency]
            , STUFF(
                    STUFF(CAST([active_start_date] AS VARCHAR(8)), 5, 0, '-')
                        , 8, 0, '-') AS [ScheduleUsageStartDate]
            , STUFF(
                    STUFF(CAST([active_end_date] AS VARCHAR(8)), 5, 0, '-')
                        , 8, 0, '-') AS [ScheduleUsageEndDate]
            , [date_created] AS [ScheduleCreatedOn]
            , [date_modified] AS [ScheduleLastModifiedOn]
        FROM [msdb].[dbo].[sysschedules]
        INNER JOIN      MSDB.DBO.sysjobschedules
        ON MSDB.DBO.sysjobschedules.schedule_id=[msdb].[dbo].[sysschedules].schedule_id
        INNER JOIN (
                        select job_id from distribution.dbo.MSlogreader_agents
                        union all
                        select job_id from distribution.dbo.MSdistribution_agents
                ) a ON A.job_id=[msdb].[dbo].sysjobschedules.job_id
        ORDER BY [ScheduleName]

感谢。