SQL Server job 的迁移及扩展知识
2010-01-14 15:47
891 查看
今天公司数据库服务器down了,要启动备机,所以用了每天的备份文件还原到备机,生产数据库恢复过程一切都比较顺利的完成,应用很快得到恢复,正常运作。但还有些后续工作,需要我这个DBA来完成,比如DTS的重建,job重新布置。
由于job比较多,多亏平时考虑比较周全,每个月把系统数据库(master,msdb,model )这3个库备份了,现在主要就要用到msdb,把msdb还原,由于msdb是控制管理job的所以,通常会有系统账户在登陆使用它,我的做法是开两个企业管理器,一个做好恢复准备,一个用来结束进程,虽然有些笨,不过挺简单,好用。
还原后,在企业管理器-管理-作业下看到所有的job回来了,呵呵,貌似成功。但修改作业会提示错误,这主要是因为恢复msdb库到备机,主
机名不同导致的。
这时需要做以下几步:
1、查找服务器名称
select serverproperty('servername')
或者
select @@servername
2、查看sysjobs表中的originating_server,这个字段代表‘作业来自的服务器名称’。
select * from sysjobs
发现originating_server<>serverproperty('servername'),这就是导致不能修改的原因
3、修改originating_server
update sysjobs set originating_server =cast(serverproperty('servername')as varchar(50))
4、再次修改,ok可以保存。
下面是个网友写的,个人觉得也蛮好的,大体思想不变,更灵活
sp_configure
显示或更改当前服务器的全局配置设置。
RECONFIGURE
指定如果配置设置不需要服务器停止并重新启动,则更新当前运行的值。RECONFIGURE 还检查无效值(如 syscharsets 中不存在的排序次序值)或非推荐值(如将 allow updates 设置为 1)的新配置值。对于那些不需要服务器停止并重新启动的配置选项,其当前运行的值和当前配置的值在指定 RECONFIGURE 后应相同。
WITH OVERRIDE
对 allow updates、recovery interval 或 time slice 高级配置选项禁用配置值检查(检查无效值或非推荐值)。另外,RECONFIGURE WITH OVERRIDE 使用指定值强制重新配置。例如,min server memory 配置选项可使用大于 max server memory 配置选项中所指定的值来配置。然而,这被认为是致命错误。因此,指定 RECONFIGURE WITH OVERRIDE 将不禁用配置值检查。任何配置选项都可以通过 WITH OVERRIDE 选项重新配置。
由于job比较多,多亏平时考虑比较周全,每个月把系统数据库(master,msdb,model )这3个库备份了,现在主要就要用到msdb,把msdb还原,由于msdb是控制管理job的所以,通常会有系统账户在登陆使用它,我的做法是开两个企业管理器,一个做好恢复准备,一个用来结束进程,虽然有些笨,不过挺简单,好用。
还原后,在企业管理器-管理-作业下看到所有的job回来了,呵呵,貌似成功。但修改作业会提示错误,这主要是因为恢复msdb库到备机,主
机名不同导致的。
这时需要做以下几步:
1、查找服务器名称
select serverproperty('servername')
或者
select @@servername
2、查看sysjobs表中的originating_server,这个字段代表‘作业来自的服务器名称’。
select * from sysjobs
发现originating_server<>serverproperty('servername'),这就是导致不能修改的原因
3、修改originating_server
update sysjobs set originating_server =cast(serverproperty('servername')as varchar(50))
4、再次修改,ok可以保存。
下面是个网友写的,个人觉得也蛮好的,大体思想不变,更灵活
--获取当前SQL Server的实例名 DECLARE @servername sysname SET @servername=CAST(SERVERPROPERTY('servername') as nvarchar(128)) --检查是否存在作业的源服务器与当前实例名不同名的作业,如果存在,则更新 IF EXISTS(SELECT * FROM sysjobs WHERE originating_server<>@servername) BEGIN --因为要修改系统表,所以设置允许更新系统表 EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE --将作业的来源服务器设置为当前实例 UPDATE sysjobs SET originating_server=@servername WHERE originating_server<>@servername --关闭系统表更新功能 EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE END
sp_configure
显示或更改当前服务器的全局配置设置。
RECONFIGURE
指定如果配置设置不需要服务器停止并重新启动,则更新当前运行的值。RECONFIGURE 还检查无效值(如 syscharsets 中不存在的排序次序值)或非推荐值(如将 allow updates 设置为 1)的新配置值。对于那些不需要服务器停止并重新启动的配置选项,其当前运行的值和当前配置的值在指定 RECONFIGURE 后应相同。
WITH OVERRIDE
对 allow updates、recovery interval 或 time slice 高级配置选项禁用配置值检查(检查无效值或非推荐值)。另外,RECONFIGURE WITH OVERRIDE 使用指定值强制重新配置。例如,min server memory 配置选项可使用大于 max server memory 配置选项中所指定的值来配置。然而,这被认为是致命错误。因此,指定 RECONFIGURE WITH OVERRIDE 将不禁用配置值检查。任何配置选项都可以通过 WITH OVERRIDE 选项重新配置。
相关文章推荐
- sp_add_jobserver (Transact-SQL) 在指定的服务器中,以指定的作业为目标
- Microsoft Reporting Services in Action:用自定义代码扩展 Microsoft SQL Server 2000 Reporting Services
- Sql server c#扩展存储过程支持并行多线程运算
- Microsoft SQL Server基础知识复习
- sqlserver+job+ 超时
- 知识扩展(线程SQL、SMTP、POP3、反射)
- SQL Server中未公布的扩展存储过程
- 在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合
- ADMT3.2域迁移之Server2003至Server2012系列(三)扩展Server2003架构
- SQL Agent Job 报“Access to the remote server is denied because the current security context is not trusted”
- 编写安全的SQL Server扩展存储过程(转)
- Sql server 日记 (查看Sql server JOB 运行状态)
- SQL Server中未公布的扩展存储过程注入
- sqlserver job使用
- SQL Server job突然不工作了
- 讲解SQL Server定时作业job的设置…
- SQL Server执行计划相关知识
- SQL Server Migration Assistant for MySQL(SSMA),数据迁移后的一些善后操作
- Microsoft SQL Server 相关知识(资料整理)
- MS SQL Server 与 Oracle在应用上的不同 : 如果应用系统要迁移