首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理大宗进口

管理大宗进口
EN

Database Administration用户
提问于 2017-04-04 17:53:10
回答 1查看 64关注 0票数 -2

如何为批量导入设置规则,以便如果今天的导入失败,Server将阻止将来的导入,直到问题得到解决为止?

我使用的是批量插入代码。代码将文件路径从特定文件夹调用到Server表中。进程从每天运行一次的Server作业中运行

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-04-04 22:28:50

这真的是最好的选择吗?

首先:你应该评估你是否真的应该停止这份工作,或者简单地把失败的文件移开,然后继续前进。

这将取决于您要导入的内容。如果您正在导入必须按照接收到的顺序处理的数据(考虑使用事务日志备份将数据库恢复到某个时间点),那么停止该进程是有意义的。如果它是数据集的完全刷新,那么就没有理由暂停--如果在解决当前文件的问题之前成功地处理了下一个文件,那么这并不重要。

即使数据在逻辑上建立在以前的基础上,也要问一问是否必须这样做。

我处理了一个每周7天早上6点到晚上11点的过程。如果文件中的记录不存在,则添加它们;否则,更新现有记录。这张表包括一个last_modified_time。每个文件只需要考虑几条记录(通常为1-3条,有时多达12条)。当一个文件失败时,我们将它移到一个“失败”目录中,发出一条消息,然后继续下一个文件。当我们处理失败的文件时,我们手动地这样做。我们会查找每条记录;如果它已经存在了,并且它的last_modified_time比所讨论的文件更新,那么我们从文件中删除它(在以后的文件中成功地处理了更晚、更最新的版本,或者有人手动输入了数据;在这两种情况下,系统中的数据都比我们拥有的更新,因此我们可以忽略“坏”记录)。任何剩余的记录都会在流程中运行(当然,修复那些导致它们失败的记录)。

在我们的例子中,新文件每2分钟上传一次。我们没有24到7名支持人员,只有两个人;如果流程每次失败都停止,我们可能会有数以千计的记录等待处理(我提到过这些记录是销售吗?);这是有问题的。通过继续前进,我们将有3-4个销售等待着我们去解决一个问题,而不是数以千计的问题。

如果是.

这就是说:如果你真的需要停止处理这个工作,你最好的选择就是一个标志。我将在您的数据库中创建一个新的表,job_flag或类似的东西,其中有两列:一列将为需要停止的作业(或一组作业(如果必要)具有唯一标识符),另一列(例如stop_job,类型char(1))将指示作业应该运行(stop_job = 'F')还是停止(stop_job = 'T')。

在工作中添加新的第一步: T_SQL步骤,如下所示:

代码语言:javascript
复制
IF EXISTS (SELECT 1 FROM job_flag
            WHERE job_name = 'Job To Stop'
              AND stop_job = 'F')
    SELECT 1;
ELSE
    SELECT 1/0;

因此,如果该标志存在并表示不停止作业,则此步骤将成功;如果该标志缺席或存在,则失败,但要求停止该作业。

让作业步骤中的"On“操作引导您进行正常处理;让”or“操作将您带到在作业停止时做任何您想做的事情的步骤:发送一封电子邮件,说明由于作业被标记而没有运行,或者任何适当的步骤。对于这条链的最后一步,随失败或成功退出,不管你喜欢什么(毕竟,这份工作在技术上并没有失败;它确实做到了它应该做的事情;然而,由于失败导致了这一点,你可能想继续失败)。

回到正常处理链中,运行现有进程。但是,如果任何步骤都失败了,以致下一次不应该运行作业,请让"On“操作更新作业的job_flag记录,以便stop_job = 'T'。然后,当你的工作失败时,继续做你做的任何事情。

我假设有人需要手动解决这个问题。如果是这样的话,这个人可以手动更新job_flag记录,这样作业就可以再次运行;或者,您可以创建一个作业(没有计划)或一个存储过程来为他们创建这个任务(如果更合适的话)。如果有一些自动化的流程可以解决问题,那么在流程中添加一个步骤,以便在一切正常时为该作业设置stop_job = 'F'

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/169117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档