1. 目标 www.yestar2000chinai tp ow er.comWp3XQ
MS SQL Server做大数据量传输的时候,我们大多会用到数据传输服务。现在假设,在研发环境下,我们已设计好了DTS包并且运行良好,接下来我们要做的事情是迁移和部署这个DTS数据包。www.yestar2000chinai tp ow er.comWp3XQ
所以,我们需要把设计环境下的DTS包保存成结构化的存储文档,并且这个文档导入到目标环境下的MS SQL Server中,最后添加作业,让MS SQL Server Angent在我们预期的事情执行这个DTS包完成数据传输工作。其中需要重点解决的一个问题是,在目标环境中,DTS传输的源和目的地会发生改变,需要对他进行配置。 www.yestar2000chinai tp ow er.comWp3XQ
2. 解决方案 www.yestar2000chinai tp ow er.comWp3XQ
2.1. DTSRun www.yestar2000chinai tp ow er.comWp3XQ
DTSRun是微软提供的命令用于执行DTS包(包括结构化存储的、存储在SQL Server或存储在Meta Data Services的包)。 www.yestar2000chinai tp ow er.comWp3XQ
dtsrun的用法: www.yestar2000chinai tp ow er.comWp3XQ
| dtsrun [/?]| [ [ /[~]S server_name[\instance_name] { {/[~]U user_name [/[~]P password]} | /E } ] { {/[~]N package_name } | {/[~]G package_guid_string} | {/[~]V package_version_guid_string} } [/[~]M package_password] [/[~]F filename] [/[~]R repository_database_name] [/A global_variable_name:typeid=value] [/L log_file_name] [/W NT_event_log_completion_status] [/Z] [/!X] [/!D] [/!Y] [/!C] ] |
www.yestar2000chinai tp ow er.comWp3XQ 具体的用法参看微软的资料。这里需要重点指出的是,通过“/A global_variable_name:typeid=value”选项,我们能够给DTS包传递多个自定义的参数,在DTS包部署的目标环境下,我们用这个选项告诉DTS包服务器名称、用户名、密码等数据库连接信息。通过“/!Y”选项能够获取加密后的DTSRun参数。 www.yestar2000chinai tp ow er.comWp3XQ
2.2. 重新设计DTS包 www.yestar2000chinai tp ow er.comWp3XQ
为了处理DTSRun传入的自定义参数,DTS包需要重新设计。我们能够增加一个ActiveX Script任务,在ActiveX Script任务中通过VB Script或Java Script对DTS编程,并且定义流程,把ActiveX Script任务配置成最开始的一个任务。由于DTS COM对象线程模式和ActiveX Script任务宿主的不一致,需要将ActiveX Script任务工作流属性配置成在主包线程中执行,否则可能会出现调用错误。 www.yestar2000chinai tp ow er.comWp3XQ
下面的例子是ActiveX Script任务中的脚本。例子中的DTS包包含名称为"DBConnection"的数据库连接对象。 www.yestar2000chinai tp ow er.comWp3XQ
| '************************************************************************ ' Visual Basic ActiveX Script '************************************************************************ Function Main() Dim sDBDataSource Dim sDBCatalog Dim sDBUserID Dim sDBPassword Dim bDBUseTrusted Dim sOLAPServer Dim sOLAPCatalog Dim oPackage Dim oConnection Dim oTask Dim oCustomTask ' 获取DTSRun传入的自定义参数 sDBDataSource = DTSGlobalVariables("DBDataSource").Value sDBCatalog = DTSGlobalVariables("DBCatalog").Value sDBUserID = DTSGlobalVariables("DBUserID").Value sDBPassword = DTSGlobalVariables("DBPassword").Value bDBUseTrusted = DTSGlobalVariables("DBUseTrusted").Value sOLAPServer = DTSGlobalVariables("OLAPServer").Value sOLAPCatalog = DTSGlobalVariables("OLAPCatalog").Value ' 取得当前DTS包对象的技巧 Set oPackage = DTSGlobalVariables.Parent ' 取得包中的数据连接对象 Set oConnection = oPackage.Connections("DBConnection")www.yestar2000chinai tp ow er.comWp3XQ ' 配置数据源对象的数据连接信息 If bDBUseTrusted Then oConnection.UseTrustedConnection = bDBUseTrusted Else oConnection.UserID = sDBUserID oConnection.Password = sDBPassword End Ifwww.yestar2000chinai tp ow er.comWp3XQ |
www.yestar2000chinai tp ow er.comWp3XQ
| oConnection.DataSource = sDBDataSource oConnection.Catalog = sDBCatalog Set oConnection = nothingwww.yestar2000chinai tp ow er.comWp3XQ ' 配置跟多的信息,这里是OLAP分析服务处理任务 Set oTask = oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate") Set oCustomTask = oTask.CustomTask Set oTask = nothing oCustomTask.Properties("TreeKey").Value = sOLAPServer & "\" _ & sOLAPCatalog & "\CubeFolder\Certificate" Set oCustomTask = nothing ' 返回成功状态 Main = DTSTaskExecResult_Success End Functionwww.yestar2000chinai tp ow er.comWp3XQ
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
| | 版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2007 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86263408 86263960 86264018 86267838 86262244 86263408 售前咨询:总机转201 202 203 204 205 206 207 208 售后服务:总机转211
212 213 214 217 218 晚上0点以后拔分机225 |
| 财务咨询:总机转224
223 传真:028-86264041 财务QQ: 635483282
售前咨询QQ: 327314358 241975952 275026793 408235859 2182518 499513144 售后服务QQ: 634349278 809071471 307742704 512359778 287976517 363783715 在线咨询
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号
|
|