Questions tagged «jobs»

由数据库管理的计划任务,例如使用SQL Server代理,Oracle dbms_job或MySQL事件计划程序。

5
SQL Server维护计划-任务和计划的最佳实践
我的任务是为Sql Server 2005数据库设计维护计划。我知道要进行备份,我想每15分钟执行一次每日完整数据库备份和事务日志备份。我的问题在于弄清楚我想完成哪些其他任务以及应该多久执行一次。 因此,到目前为止,我已经牢记这一点。如果我的想法有任何缺陷或更好的解决方法,请纠正我。 备份-所有表,完整备份(每天) 备份-选定表,完整备份(每小时) 备份-事务日志(每15分钟) 检查数据库完整性(每天) 重组索引(每天) 更新统计信息(每天) 缩小数据库(每周一次) 重建指数(每周) 维护清理(每天) 我记得有一段时间读过(当我在另一份工作中制定类似计划时),其中一些任务不需要每天运行或不应该每天运行。至于哪一个,它逃脱了我。我可以使用一些指导来创建更好的维护计划,以减少灾难中的数据丢失,但在高峰时段运行时不会增加系统负担(也可以提高性能)。

3
如何在没有外部Cron类工具的情况下在Postgresql上运行重复任务?
我想定期调用存储过程。在Oracle上,我将为此创建工作。我发现Postgresql可以通过使用外部工具(cron等)和PgAgent很好地模仿这一点。 您是否知道不涉及外部工具的“内部”替代方案? 我想避免与pgAgent命令行上存储的密码有关的安全问题。 我想避免隐藏密码(~/.pgpass)的任何其他系统配置。 PostgreSQL 8.3 Linux RedHat 64位



4
如何在维护计划作业中更改或更新本地服务器连接
两天前,我们的客户更改了我们的Dev Server名称之一 重命名服务器后,由于服务器名称不匹配,所有我的维护作业和其他作业都失败了。 我们正在使用sql server 2012版本和 Server 2008 OS 所以今天早上我将我的Sql Server 2012名称重命名为更新的给定名称,并进行了表,程序更新 我试图在维护作业中更新本地服务器连接,但是无法编辑。然后我添加了新的服务器连接,但仍无用,执行作业时出现错误。 我尝试了作业属性选项中的目标页面后,也仅选择了目标服务器,并且禁用了多个目标服务器。 错误如下 以用户身份执行:NT Service \ SQLSERVERAGENT。用于64位版权(C)Microsoft Corporation的Microsoft(R)SQL Server执行软件包实用程序版本11.0.2100.60。版权所有。 开始时间:12:01:28 AM错误:2013-12-16 00:01:43.98代码:0xC00291EC源:{410F7661-F71A-4B68-9584-BA422AB00F02}执行SQL任务 说明:无法获取连接“本地服务器连接” 。连接可能配置不正确,或者您对此连接没有正确的权限。结束错误 错误:2013-12-16 00:02:00.00 代码:0xC0024104 源:Territory_Update 说明:任务上的Execute方法返回错误代码0x80131904(建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问该服务器。请验证实例名称是否正确以及该实例名称是否正确。 SQL Server配置为允许远程连接(提供程序:命名管道提供程序,错误:40-无法打开与SQL Server的连接)。Execute方法必须成功,并使用“ out”参数指示结果。结束错误 错误:2013-12-16 00:02:15.00 代码:0xC0024104 源:{4E2AF328-0B8D-4905-83BE-839FDDEFC09C} 说明:任务上的Execute方法返回错误代码0x80131904(建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问该服务器。请验证实例名称是否正确以及该实例名称是否正确。 SQL Server配置为允许远程连接(提供程序:命名管道提供程序,错误:40-无法打开与SQL Server的连接)。Execute方法必须成功,并使用“ out”参数指示结果。 结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。 开始:12:01:28 AM 完成:12 …



3
在另一个作业中调用SQL Server作业
是否可以调用SQL Server作业在另一个作业中运行? 我知道我们可以将作业1的所有步骤添加到作业2中,但是我不愿意这样做。首先,作业2已经很大,其次,我找不到在作业之间复制步骤的复制粘贴选项,因此手动添加步骤会很耗时。 任何建议表示赞赏。

2
在SQL Server代理中运行Powershell脚本时出错
我有一个通过SQL Server代理运行的SQL作业(正在运行SQL Server 2012 Enterprise)。作业的最后一步是运行位于网络共享上的应用程序。不幸的是,我不知道应用程序所在的文件夹的名称(该文件夹是版本号),因此我正在使用PowerShell查找它: set-location "\\server\companydocuments\MyApp\Application Files\" $name = Get-ChildItem | sort name -desc | select -f 1 | select name cd $name.name & ".\Application.exe" 如果我在SQL Server上打开PowerShell窗口,则可以正常工作。当我在SQL Server代理中运行此命令时,出现以下错误: A job step received an error at line 1 in a PowerShell script. The corresponding line is 'set-location "\\server\companydocuments\MyApp\Application Files\'" 我以为这可能是权限问题,所以我尝试在我的凭据(这是测试服务器,不是生产服务器)下运行SQL …

2
SQL Server作业中的事务和try-catch
在SQL Server作业的每个步骤中,我们都有DML操作。为了确保更新/插入的情况下将回滚不顺心的事,我已经包裹的数据修改的每一步中TRY CATCH和TRANSACTION块: BEGIN TRY BEGIN TRANSACTION [[INSERT/update statements]] ... IF @@TRANCOUNT > 0 BEGIN COMMIT TRANSACTION PRINT 'Successful.' END END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION …

1
允许非系统管理员,SQL Server代理作业的非所有者执行该作业
我有一份运行SSIS程序包的工作。 当前所有者是代理帐户。我可以从sys-admin帐户手动运行作业。 我们的网络服务使用受限帐户登录。它需要执行作业。当前它根本看不到工作(当我尝试按名称执行时,它说它不存在)。 我尝试将工作所有者更改为受限帐户。现在它可以看到该作业,但是该作业执行失败,因为它不再运行SSIS包。 必须有一种方法允许受限帐户运行另一个帐户拥有的工作,对吗?

2
重新启动数据库(重新启动后)后如何清除错误15404
SQL Server代理每小时作业每隔一段时间(例如,几个月)就会开始报告错误15404,并继续这样做直到被干预。 [298] SQLServer错误:15404,无法获取有关Windows NT组/用户'DOMAIN_NAME \ SomeDomainAccount'的信息,错误代码0x6e。[SQLSTATE 42000](ConnIsLoginSysAdmin) 有时,第一次失败是在手动重新启动SQL Server Engine和SQL Server代理服务后立即发生的。可以通过重新启动计算机来解决此问题。 作业所有者是错误消息中列出的名称,并且是SQL Server管理员。 SQL Server Engine服务帐户看起来像是一个服务帐户(我相信它是默认的安装帐户(比一般的NetworkService好一个级别,以防止Engine / Agent实例之间发生干扰): NT Service\MSSQL$INSTNAME 如果该作业始终失败,那将是一回事,但是由于该作业在重新启动后成功,这使我认为应该使用的服务帐户就可以正常工作,并且存在一些A / D时序问题或错误。当询问IT人员有关A / D配置的信息时,响应通常是“什么都没有改变”。 重新启动引擎和代理服务可能导致作业开始失败。 重新启动计算机即可解决问题。 随后立即重新启动引擎和代理程序不再导致作业失败。 链接: 如何解决SQL Server 8198错误

2
如何找到两次之间的工作
是否有查询以检查在给定时间之间运行的作业。我可以检查两次之间安排的作业,但我不希望这样。 示例我想知道介于16:00:00和之间的作业17:00:00 在某些情况下,计划在的工作15:00:00可能会运行超过1个小时,我也希望这样做。我确实在google中搜索过,但所得到的只是两次安排的工作

2
如何在Sql Server 2008中调度作业少于10秒?
我想每3秒运行一次作业,但是在SQL Server 2008中,我们不能将间隔定义为少于10秒。 该作业用于将访问者信息以及细分信息插入/更新到Google搜索所跟踪的数据库中。 2到3秒钟内最多插入约100行。该作业将插入并更新数据库中的表。有什么方法可以使用sp作业计划配置进行计划吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.