标签: sql-server-agent

SQL Server代理作业帐户问题

我正在使用SQL Server 2008.我很困惑SQL Server代理程序作业运行时将使用哪个帐户.我的困惑是,

  1. SQL Server代理作为Windows服务,我们可以从Windows服务管理控制台控制,从那里我们可以设置帐户运行SQL Server代理(我的计算机中的LocalSystem);
  2. 我可以将SQL Server代理作业级帐户设置为运行吗?
  3. 我可以在每个步骤中设置将运行SQL Server代理作业步骤的帐户吗?

我有上述混淆,因为可能会使用3个不同的帐户系统,我担心的是每个步骤将运行的实际帐户是什么,我想避免任何许可问题(即我想确保帐户有足够的权限.).有什么意见或建议吗?感谢任何人都可以澄清3个级别的帐户,这让我很困惑.

乔治,提前谢谢

sql sql-server sql-server-agent sql-server-2008

4
推荐指数
1
解决办法
2万
查看次数

sql server作业计划的结束日期是包含还是排除

我有一个时间表,每天做一次,每两个小时一次.我想为这个时间表设定一个结束日期,但我想知道它是包容性的还是排他性的.换句话说,如果我在3月26日设定结束日期,今天将是它运行的最后一天,或明天(今天是25月3日).

sql-server jobs sql-server-agent scheduling sql-server-2005

4
推荐指数
2
解决办法
5320
查看次数

对象'sysjobs',数据库'msdb',架构'dbo'上的SELECT权限被拒绝

我在尝试读取SQL作业时遇到以下错误.

对象'sysjobs',数据库'msdb',架构'dbo'上的SELECT权限被拒绝

我怎样才能解决这个问题?

permissions sql-server-agent sql-server-2005 sql-job

4
推荐指数
2
解决办法
3万
查看次数

如何使用数据库项目管理SQL Server作业

Visual Studio 2010是否支持在数据库项目中管理SQL Server作业?

我正在使用Visual Studio 2010中的数据库项目.我想database scheduler在我的数据库项目中管理我的工作.似乎我无法在数据库项目中创建任何服务器对象.

sql-server-agent database-project visual-studio-2010 sql-server-2008

4
推荐指数
1
解决办法
2417
查看次数

TRY/CATCH无法解决SQL Server代理错误?

sp_start_job用来开始工作.

job(test2)只有一步:

select getdate()
waitfor delay '00:00:10'
Run Code Online (Sandbox Code Playgroud)

TRY/CATCH代码:

begin try
    EXEC msdb.dbo.sp_start_job @job_name = 'test2'
end try
begin catch
    print 'error'
end catch
Run Code Online (Sandbox Code Playgroud)

首次运行代码:

Job'test2'成功启动.

第二次运行代码(10秒内):

消息22022,级别16,状态1,行0
SQLServerAgent错误:请求运行作业test2(来自用户sa)被拒绝,因为作业已经从用户sa的请求运行.

为什么TRY/CATCH在这种情况下不起作用?

更新:我应该首先添加我正在使用链接服务器(sql server 2000)的sql server 2005.我试图在sql server 2005服务器上编写一个proc来查看所有链接服务器上的作业.如果作业未运行,请运行它.最初,我使用try-catch并希望在运行已经运行的作业时捕获任何错误但是失败了(这个线程).

我终于使用了以下代码:(它不会编译,你需要替换一些变量,只是给出一个想法)

    CREATE TABLE [dbo].[#jobInfo](
        [job_id] [uniqueidentifier] NULL,
        [originating_server] [nvarchar](30) ,
        [name] [nvarchar](128) ,
        [enabled] [tinyint] NULL,
        [description] [nvarchar](512) ,
        [start_step_id] [int] NULL,
        [category] [nvarchar](128) ,
        [owner] [nvarchar](128) ,
        [notify_level_eventlog] [int] NULL,
        [notify_level_email] [int] NULL,
        [notify_level_netsend] [int] …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-agent try-catch

4
推荐指数
1
解决办法
5054
查看次数

SQL Server代理未报告PowerShell脚本中未捕获的异常导致的失败

我已经设置了一个SQL Server代理程序作业,其中包含一些需要每周处理的步骤.其中一个是PowerShell脚本,它将抛出以下(未捕获的)自定义异常:

$endfile = Test-Path "C:\Temp\1_${loc}_${lastpayweek}.csv"
IF ($endfile -eq $true) 
{
   throw "target file already exists"
}
Run Code Online (Sandbox Code Playgroud)

现在,当发生这种情况时,我可以在服务器代理历史记录中看到抛出了异常,但仍然报告该步骤是成功的.如果没有失败,服务器代理将不会发送通知电子邮件让我知道失败.

我这样调用PowerShell脚本:

powershell C:\scripts\rename_timesheet_export.ps1 -loc 3
Run Code Online (Sandbox Code Playgroud)

为什么报道成功?

sql sql-server error-handling powershell sql-server-agent

4
推荐指数
1
解决办法
2225
查看次数

如何设置SQL Server代理?未显示在 Sql Server 管理中

我正在尝试在运行 Windows Small Business Server 2011 Standard 和 SQL Server 2008 R2 RTM 的测试服务器上设置 SQL Server 代理。Sql Server Agent 节点不显示在 Sql Management Studio 中。

以下是我根据我阅读的论坛了解到的信息:

  • 在 services.msc 中,我将两个 Sql Server 代理(Sharepoint 和 SBSMonitoring)设置为自动。如果我尝试启动该服务,则会出现以下警告:本地计算机上的 SQL Server 代理服务启动然后停止。如果其他服务或程序未使用某些服务,则会自动停止
  • 在 SQL Server 配置管理器的 SQL Server 服务下,出现错误“远程过程调用失败 [0x800706be]”。在“SQL Server 网络配置(32 位)”下,未列出任何内容。
  • 在本地安全策略中,安全设置 -> 本地策略 -> 用户权限分配:他们没有列出 Sql Server 代理
  • 在 Sql Server Management Studio 中,我创建了一个具有所有可能权限的新用户,在使用该用户登录后,Sql Server 代理没有显示
  • 我执行了以下命令 mofcomp c:\program files (x86) \Microsoft SQL Server\100\Shared\sqlmgmproviderxpsp2up.mof" 但它没有更改 SQL Server 服务中的错误“远程过程调用失败”

根据这些事实,有人有解决方案吗?

谢谢

sql sql-server sql-server-agent ssms sql-server-2008

4
推荐指数
1
解决办法
3万
查看次数

SSIS 服务器维护作业错误

我在负责删除旧执行日志的维护作业的 sql server 2017 代理作业中收到以下错误消息:

Date        5/23/2018 12:18:45 AM
Log     Job History (SSIS Server Maintenance Job)

Step ID     1
Server      KARABL3
Job Name        SSIS Server Maintenance Job
Step Name       SSIS Server Operation Records Maintenance
Duration        00:02:34
Sql Severity    16
Sql Message ID  16916
Operator Emailed    
Operator Net sent   
Operator Paged  
Retries Attempted   3

Message
Executed as user: ##MS_SSISServerCleanupJobLogin##. A cursor with the name 'execution_cursor' does not exist. [SQLSTATE 34000] (Error 16916).  NOTE: The step was retried the requested number of …
Run Code Online (Sandbox Code Playgroud)

sql-server-agent ssis sql-server-2017

4
推荐指数
1
解决办法
1874
查看次数

如何在SQL中获取上次运行的作业详细信息

如何使用SQL获取SQL Server代理中的最后一次运行作业详细信息,包括仅针对上次运行作业(而不是作业结果)的步骤详细信息,因为我想在应用程序中显示它

请帮助我坚持多年

这是我在下面使用的代码,这将为作业历史记录中的所有作业返回所有步骤,

但是,我只想查看上次运行作业的步骤

谢谢

USE msdb
Go 
SELECT j.name JobName,h.step_name StepName, 
CONVERT(CHAR(10), CAST(STR(h.run_date,8, 0) AS dateTIME), 111) RunDate, 
STUFF(STUFF(RIGHT('000000' + CAST ( h.run_time AS VARCHAR(6 ) ) ,6),5,0,':'),3,0,':') RunTime, 
h.run_duration StepDuration,
    case h.run_status when 0 then 'Failed'
    when 1 then 'Succeeded' 
    when 2 then 'Retry' 
    when 3 then 'Cancelled' 
    when 4 then 'In Progress' 
end as ExecutionStatus, 
h.message MessageGenerated
FROM sysjobhistory h 
inner join sysjobs j
ON j.job_id = h.job_id

    LEFT JOIN (
                SELECT 
                    [job_id]
                    , …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-agent

3
推荐指数
1
解决办法
2万
查看次数

每次启动 SQL Server 代理作业时,都会收到错误日志

每次启动 Sql Server 作业时,都会出现以下错误。我正在使用 SQL Server 2016。没有人知道如何修复它吗?

特定于应用程序的权限设置不会向用户授予具有 CLSID {2DC39BD2-9CFF-405D-A2FE-D246C976278C} 和 APPID {DB336D8E-32E5-42B9-B14B-58AAA87SQLCEB06} 的 COM 服务器应用程序的本地激活权限给用户SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) 来自在应用程序容器中运行的地址 LocalHost (Using LRPC) Unavailable SID (Unavailable)。可以使用组件服务管理工具修改此安全权限。

sql-server-agent sql-server-2016

3
推荐指数
1
解决办法
7547
查看次数