董晓涛(David Dong)

博客园 首页 新随笔 联系 订阅 管理

刚才在QA环境创建SQL replication 的时候报错,大致如下:

Error 14274: 无法添加、更新或删除从MSX服务器上发起的作业.

导致Replication不能够成功,如按如下角本解决:

 

For example:tsql02\d2shp01

 

SP_CONFIGURE  'ALLOW UPDATES',1

RECONFIGURE  WITH  OVERRIDE 

GO 

 

use msdb;

go

begin tran

update  sysjobs  set  originating_server='TSQL02\d2whp01'

---please note:if error occur ,please rollback the tran

commit tran

go 

SP_CONFIGURE  'ALLOW UPDATES',0  RECONFIGURE  WITH  OVERRIDE 

GO

 

 

For Detail information:

错误场景:

windows主机名变更后,试图更新或者删除SQL Server2000之前创建的job时会出现14274的错误。 SQL 7.0不会出现该错误,但是在cluster环境中,将SQL 7.0虚拟服务器升级到SQL Server2000后也可能产生该错误。

错误原因:

msdb..sysjobs的列originating_server中保存了SQL Server 2000 instance的名字,其格式为'serverinstance'(SQL 7.0中为(local),故不受影响),当server名变更后,sysjobsoriginating_server并没有相应的更新成新的serverinstance

解决办法:

1.
server改回原来的名称
2.
将所有的job保存为script,然后删除
3.
server变更为新的名字
4.
依次执行第2步产生的script,恢复所有job

或者直接更新sysjobsoriginating_server
use  msdb  
go  
SP_CONFIGURE  'ALLOW UPDATES',1  RECONFIGURE  WITH  OVERRIDE  
GO  
update  sysjobs  set  originating_server=@@servername  
go  
SP_CONFIGURE  'ALLOW UPDATES',0  RECONFIGURE  WITH  OVERRIDE  
GO

posted on 2005-07-29 15:15  董晓涛  阅读(1040)  评论(0编辑  收藏  举报