备份和恢复DTS(本地包)的方法.

原创 2006年05月29日 13:41:00

备份的储存过程:

Save all DTS packages on server to files
Author Nigel Rivett

This will save all dts packages on the server to storage files.
It uses a trusted connect to access the package - just change the LoadFromSQLServer call to use a sql server connection.

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[s_SavePackages]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[s_SavePackages]
GO

Create procedure s_SavePackages
@Path	varchar(128)
as
/*

*/

	set nocount on

declare @objPackage int
declare @PackageName varchar(128)
declare @rc int
declare @ServerName varchar(128)
declare @FileName varchar(128)
declare	@FilePath varchar(128)
declare	@cmd varchar(2000)
	
	select 	@ServerName = @@ServerName ,
		@FilePath = @Path
	
	if right(@Path,1) <> '/'
	begin
		select @Path = @Path + '/'
	end
	
	-- create output directory - will fail if already exists but ...
	select	@cmd = 'mkdir ' + @FilePath
	exec master..xp_cmdshell @cmd
	
	
create table #packages (PackageName varchar(128))
	insert 	#packages
		(PackageName)
	select 	distinct name
	from	msdb..sysdtspackages
	
	select	@PackageName = ''
	while @PackageName < (select max(PackageName) from #packages)
	begin
		select	@PackageName = min(PackageName) from #packages where PackageName > @PackageName

		select	@FileName = @FilePath + @PackageName + '.dts'

		exec @rc = sp_OACreate 'DTS.Package', @objPackage output
		if @rc <> 0
		begin
			raiserror('failed to create package rc = %d', 16, -1, @rc)
			return
		end

		exec @rc = sp_OAMethod @objPackage, 'LoadFromSQLServer' , null,
			@ServerName = @ServerName, @Flags = 256, @PackageName = @PackageName
		if @rc <> 0
		begin
			raiserror('failed to load package rc = %d, package = %s', 16, -1, @rc, @PackageName)
			return
		end
		
		-- delete old file
		select @cmd = 'del ' + @FileName
		exec master..xp_cmdshell @cmd, no_output
		
		exec @rc = sp_OAMethod @objPackage, 'SaveToStorageFile', null, @FileName
		if @rc <> 0
		begin
			raiserror('failed to save package rc = %d, package = %s', 16, -1, @rc, @PackageName)
			return
		end
		
		exec @rc = sp_OADestroy @objPackage
	end
go
恢复的储存过程:
This will load the dts package from structured storage file @FileName and save to sql server (msdb) as @PackageName.


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[s_LoadPackageToServer]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[s_LoadPackageToServer]
GO

Create procedure s_LoadPackageToServer
@PackageName	varchar(128) ,
@FileName	varchar(500) ,
@Username	varchar(100) ,
@Password	varchar(100)
as
/*
exec	s_LoadPackageToServer
		@PackageName = 'mypackage' ,
		@FileName = 'c:/dtspckgs/mypackage.dts' ,
		@Username = 'sa' ,
		@Password = 'pwd'
*/
declare @objPackage int
declare @rc int

		exec @rc = sp_OACreate 'DTS.Package', @objPackage output
		if @rc <> 0
		begin
			raiserror('failed to create package rc = %d', 16, -1, @rc)
			return
		end

		exec @rc = sp_OAMethod @objPackage, 'LoadFromStorageFile' , null,
			@UncFile = @FileName, @password = null
		if @rc <> 0
		begin
			raiserror('failed to load package rc = %d, package = %s', 16, -1, @rc, @PackageName)
			return
		end
		
		exec @rc = sp_OAMethod @objPackage, 'SaveToSQLServerAs' , null,
			@NewName = @PackageName, @ServerName = @@ServerName, @ServerUserName = @Username, @ServerPassword = @Password
		if @rc <> 0
		begin
			raiserror('failed to load package rc = %d, package = %s', 16, -1, @rc, @PackageName)
			return
		end
go

gitlab的备份和恢复

按照官方文档安装完成后,/home/git目录结构如下 |-- home | |-- git | |-- .ssh | |-- gitlab | |-- gi...
  • JordanAndyKingxx
  • JordanAndyKingxx
  • 2016年09月18日 14:08
  • 2421

HBase中的备份和故障恢复方法

本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍。 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障...
  • iAm333
  • iAm333
  • 2014年07月28日 18:30
  • 4703

详解mysql备份恢复的三种实现方式

一、Mysql备份策略: 完整备份: 完整备份就是指对某一个时间点上的所有数据或应用进行的一个完整拷贝,对数据量大的,备份时间较长,当然数据在恢复的时候快。 增量备份: 备份自...
  • only_jing1314
  • only_jing1314
  • 2016年04月05日 15:15
  • 1867

SQL2000 备份和恢复DTS(本地包)的方法

备份也可以通过打开包另存为dts文件完成。 Save all DTS packages on server to files Author Nigel Rivett This will sa...
  • riyao
  • riyao
  • 2012年05月22日 10:29
  • 2971

DTS专辑在电脑上播放的解决方法

  • 2013年08月04日 22:44
  • 304KB
  • 下载

DTS转立体声MP3方法

  • 2012年10月14日 09:49
  • 916KB
  • 下载

关于转换DTS-CD至AC3的探析-即dvd多声道制作方法

  • 2013年05月26日 20:46
  • 54KB
  • 下载

dts的vb包转为delphi(0.01)

  • 2002年09月26日 00:00
  • 149KB
  • 下载

dtimg转dtb,dtb反编译为dts方法

一、QCDT Version 目前dt.img里的QCDT表规范最新的为version 3  比version 2增加了几个定义。  可以同时支持verion2和version3。 ...
  • feng1072218457
  • feng1072218457
  • 2016年09月07日 22:43
  • 2623

用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS

用FFMPEG SDK进行视频转码压缩的时候,转码成功后去看视频的内容,发现音视频是不同步的。这个的确是一个恼火的事情。我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到...
  • maopig
  • maopig
  • 2011年09月10日 16:57
  • 6090
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:备份和恢复DTS(本地包)的方法.
举报原因:
原因补充:

(最多只允许输入30个字)