问题标签 [sql-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2008 - SQL Server 代理为 CmdExec 添加参数
我想将参数添加到在 SQL Server 代理中运行操作系统 (CmdExec) 的步骤。我到处搜索并询问了我的同事,但他们之前都没有尝试过。我附上了屏幕的图片。我在想我也许可以在 .exe 语句之后添加参数(文件路径),但不确定。
我认为以下可能有效:
这是在生产服务器上,如果这不正确,我不想破坏任何东西。
谢谢!
sql-server - Powershell 远程签名策略不适用于 SQL 代理作业,但如果“手动”运行则有效
我有一个使用 Powershell 脚本进行数据库备份的 SQL 2008 作业。SQL 作业中的每个步骤都是“操作系统(CmdExec)”类型。每个步骤都会启动一个执行 SQL 备份和其他操作的 powershell 脚本。该脚本位于远程服务器上,因此如果我们需要进行更改,我们只需进行一次。
如果我将 Powershell 执行策略设置为“绕过”,则 SQL 作业可以工作。但是,如果我将其设置为“远程签名”,则无法说明执行策略设置不正确。但是,如果我从 CMD 窗口启动脚本,它会正确运行。服务器是 64 位的,所以我确保 32 位和 64 位 shell 的执行策略都设置为“远程签名”。而且,我在 IE 中将远程服务器 UNC 路径设置为受信任的 Intranet 站点(发现 Powershell 将本地 UNC 路径视为 http 路径,除非在 IE 中设置)。
就像我说的,它运行正确,如果从 CMD 窗口中手动启动,并且执行策略设置为远程签名,并且如果执行策略设置为绕过,则如果 SQL 作业启动,则它可以正常运行。仅当它从 SQL 启动并且执行策略设置为远程签名时才会失败。
它已经运行了一年,没有将 Powershell 执行策略设置为绕过的问题,但我被告知现在将该执行策略设置为远程签名。将其保持在旁路不再是一种选择。
有什么想法吗?
sql-server - SSIS 网络服务
我有一个使用 SQL 代理作业执行的 SSIS 2005 包。此包有一个 Web 服务任务,其凭据与用于执行包的凭据不同。
在服务器上执行我的包时遇到以下问题:
“Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException:System.UnauthorizedAccessException:对路径的访问......被拒绝。
该包正在集群环境中执行。两个帐户都已在服务器上创建,以便包能够写入 TEMP 文件,但问题仍然存在。
sql-server-2008 - 插入后 15 秒自动更新 SQL Server 表中的字段
我有一点奇怪的情况,我正在努力填充表格中的字段。我还应该提到我对 SQL Server 很陌生。
正在使用什么:我正在使用 SQL Server 2008 数据库。有两个关注表PO_APPROVAL_LOG
, 和PO_HDR
。
此处执行的过程是创建新的采购订单。在某些情况下,创建采购订单需要经理批准。我正在使用针对 Active Directory 对经理进行身份验证的 winform (C#),如果经理是某个组的成员,则批准 PO。
我的情况:正在使用第 3 方应用程序,我正在编写一些验证代码(上面提到过),这些代码在应用程序中发生保存事件之前执行。如果满足某些条件,我的验证码会返回TRUE
并允许应用程序继续保存。当保存开始时,数据库中的一些表被插入,包括PO_HDR
. 我无法更改事件发生的顺序,我只能编写这些验证规则。应用程序将不会继续,直到它从我的代码中接收到一个SUCCESS
属性设置为TRUE
or的特定对象FALSE
。
我遇到的问题PO_APPROVAL_LOG
与将 PO 批准记录到表中有关。现在,该PO_APPROVAL_LOG
表被插入到经理提交其凭据的时间。这发生在PO_HDR
填充之前。我需要包含PO_HDR.PO_NUMBER
,为了做到这一点,我需要等到PO_HDR
填充之后,然后获取PO_NUMBER
值,然后更新相应的PO_APPROVAL_LOG
条目。很少有 PO 实际需要批准,PO_APPROVAL_LOG
表格不应该有很多动作。
我无法在PO_HDR
表上创建触发器。
为了进行实验,我在使用 a时创建了一个AFTER INSERT
触发器,以查看是否可以在有机会填充之后获取。(是的,我确实知道在触发器中是一个糟糕的主意,它只是在游戏数据库中进行实验)。这不起作用,因为直到插入和后续触发器执行完成后,应用程序才从我的验证代码中得到响应。PO_APPROVA_LOG
waitfor delay
PO_NUMBER
PO_HDR
waitfor delay
TRUE
我的问题:SQL 代理工作可能是一种解决方案吗?它需要每隔一两分钟运行一次。我担心的一个问题是,这会对数据库造成很大负担吗?如果作业运行并确定是否应该调用一个过程来更新日志表(在 中找到一个或多个NULL
PO_NUMBER
值PO_APPROVAL_LOG
),那么这可能会起作用。
还有什么建议吗?这给我带来了一段时间的麻烦。
如果其中任何一个不清楚,请询问!谢谢!
c# - 调用 SQL 代理作业
我正在尝试从我的 C# 应用程序调用 SQL 代理作业。
我希望能够。
- 按下按钮即可执行作业。
但我也想在作业完成运行或失败时收到某种消息。
来自另一个答案的以下代码示例对我不起作用,因为我需要访问本地 MSDB 数据库。
sql - 找不到 SQL 代理文件
此 SQL 作业已在 SQL Server 2000 上工作多年。我决定将此 SQL 作业移至 SQL Server 2012。
我照常运行这项工作,但不断收到以下错误:
错误代码:0 错误源 = Microsoft Word 错误描述:找不到此文件。第 21 行出错。步骤失败。它无法找到位于单独服务器上的 .dot 文件。
现在我在更新服务器上错过了什么吗?
sql-server-2008 - 如何在 SQL 代理作业中成功运行批处理文件?
亲爱的 Stackoverflow 用户,
我有一个 SQL 代理作业,它在 PDF 文件中生成特定报告,然后将 PDF 复制到网络目录,然后删除源目录中的 PDF 文件。
SQL 作业包括 2 个步骤: 1. 生成报告 2. 将报告复制到网络位置。
对于第 2 步,我制作了一个 bat 文件,用于处理 pdf 文件的复制和删除。
bat文件如下:
但是,当我运行作业时,它会挂在第二步。状态只是停留在“正在执行”。
这是我在步骤中声明的行(要执行的 bat 文件的位置):
我的工作设置如下:
第1步
类型:操作系统 (CmdExec) 成功时:转到下一步
On Failure:退出作业报告失败
第2步
类型:操作系统(CmdExec)
成功时:辞职报告成功
On Failure:退出作业报告失败
一些事实:
- 我对网络目录有读/写权限
- 我以管理员帐户(登录用户,默认)运行这些步骤
- 第 1 步成功
- 我运行 Windows Server 2008 R2 标准版
- 我有 SQL Server 2008 R2
- 当我从 cmd 手动运行脚本时,它可以工作(在管理员帐户下)。
提前致谢!
sql-server-2008 - 配置 AppFabric 监控 - 无法检测到为此数据库运行作业的 SQL 代理服务
我正在尝试解决为什么我们的几个安装了应用程序结构的服务器没有登录到数据库。
我们有多个运行 2008 R2 的 Web 服务器,以及一个运行 SQL Server 2008 的数据库服务器 2008 R2。每个 Web 服务器都安装了 AppFabric,并配置为将监控记录到数据库服务器上的单独数据库中。
除了两个之外,所有 Web 服务器都正确记录。我曾多次尝试重新配置 AppFabric 监控配置,每次都给我一个错误:
无法检测到为此数据库运行作业的 SQL 代理服务。如果服务停止,AppFabricDashboard 将不会显示事件数据。
当我在根 web.config 中注册监视存储并初始化监视存储时出现此错误。它成功创建了所有数据库表、sql 作业等。 但似乎没有任何记录。
是的,sql 代理服务正在运行,因为对于数据库服务器上的所有其他数据库,它是相同的 sql 代理服务。
除了唯一数据库之外,我在所有 Web 服务器上都使用相同的设置。
我的监控配置是:
AppFabric 事件收集服务帐户:srv_AppFabric
监控提供程序:System.Data.SqlClient
连接字符串:ApplicationServerMonitoringConnectionString
服务器:sql2008(这是我们数据库服务器的名称)
数据库:ApplicationServerMonitoring_DEV(每个 Web 服务器连接到不同的数据库,它将是 ApplicationServerMonitoring_[Env ])
安全配置:
Windows 身份验证
管理员:srv_AppFabric
读者:srv_AppFabric
作家:srv_AppFabric
我对类似问题采取了一些解决方案,但无济于事:
- http://msdn.microsoft.com/en-us/library/ff637694(v=azure.10).aspx
- https://stackoverflow.com/questions/4733348/configuring-appfabric-with-remote-database
- 我想我正确配置了 AppFabric,但 AppFabric 仪表板上没有任何反应
- http://social.technet.microsoft.com/wiki/contents/articles/windows-server-appfabric-troubleshooting-anonymous-logon.aspx
- http://social.msdn.microsoft.com/Forums/en-US/dublin/thread/e885b0cb-29c8-42b2-a8a7-f6373b3dfb12/
希望有任何帮助或建议,谢谢
sql-server - PowerShell 登录名和权限
从 SQL Server 作业中的 PowerShell 任务调用时,PowerShell 以什么登录方式运行?显然我的“Google_foo”很弱,因为我找不到它,我不想只是假设它会作为与 SQL Server 代理关联的登录名运行。
我也想知道是否可以更改以及如何更改?
谢谢你的帮助,伙计们。
ssis - 如何修复从 SQL 代理到 SSAS 的连接?
我有 3 台服务器: Server1 - Prod DB Server Server2 - Prod ETL Server Server3 - Dev Server
我创建了 SSIS 包来每晚处理多维数据集。
所以 Package 位于Server2上,它使用 Windows 身份验证(模拟用户)来访问 SSAS db。SQL 代理作业也在Server2上创建。
当我在 Job Step 中设置与Server3的连接时(还有 SSAS db) - 一切正常。
但是当我设置到Server1的连接时- 我在作业步骤中收到错误:“无法建立连接。确保服务器正在运行。”
当我手动(从文件系统或 Visual Studio)运行这个包时 - 它运行良好。
我的问题是:为什么使用 SQL 代理作业执行包时连接不起作用,而手动执行包时连接不起作用?
我会很感激这方面的任何帮助。
谢谢