MS SQL Server2k数据转换服务部署

2008-04-02 10:47:42来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 微软未来的“灵魂”——SQL Server 2005探密

下一篇: 利用SQL移动硬盘文档