仓酷云

标题: MYSQL编程:MS SQL Server2k数据转换服务部署 [打印本页]

作者: 兰色精灵    时间: 2015-1-16 22:25
标题: MYSQL编程:MS SQL Server2k数据转换服务部署
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。1.方针www.yestar2000iTbulo.comWp3XQ  MSSQLServer做年夜数据量传输的时分,我们年夜多会用到数据传输服务。如今假定,在开辟情况下,我们已计划好了DTS包而且运转优秀,接上去我们要做的事变是迁徙和部署这个DTS数据包。www.yestar2000iTbulo.comWp3XQ
  以是,我们必要把计划情况下的DTS包保留成布局化的存储文件,而且这个文件导进到方针情况下的MSSQLServer中,最初增加功课,让MSSQLServerAngent在我们预期的事变实行这个DTS包完成数据传输事情。个中必要重点办理的一个成绩是,在方针情况中,DTS传输的源和目标地会产生改动,必要对它举行设置。www.yestar2000iTbulo.comWp3XQ
  2.办理计划www.yestar2000iTbulo.comWp3XQ
  2.1.DTSRunwww.yestar2000iTbulo.comWp3XQ
  DTSRun是微软供应的命令用于实行DTS包(包含布局化存储的、存储在SQLServer或存储在MetaDataServices的包)。www.yestar2000iTbulo.comWp3XQ
  dtsrun的用法:www.yestar2000iTbulo.comWp3XQ

  dtsrun
  [/?]|
  [
  [
  /[~]Sserver_name[instance_name]
  {{/[~]Uuser_name[/[~]Ppassword]}|/E}
  ]
  {
  {/[~]Npackage_name}
  |{/[~]Gpackage_guid_string}
  |{/[~]Vpackage_version_guid_string}
  }
  [/[~]Mpackage_password]
  [/[~]Ffilename]
  [/[~]Rrepository_database_name]
  [/Aglobal_variable_name:typeid=value]
  [/Llog_file_name]
  [/WNT_event_log_completion_status]
  [/Z][/!X][/!D][/!Y][/!C]
  ]www.yestar2000iTbulo.comWp3XQ
  详细的用法参看微软的材料。这里必要重点指出的是,经由过程“/Aglobal_variable_name:typeid=value”选项,我们能够给DTS包传送多个自界说的参数,在DTS包部署的方针情况下,我们用这个选项告知DTS包服务器称号、用户名、暗码等数据库毗连信息。经由过程“/!Y”选项能够猎取加密后的DTSRun参数。www.yestar2000iTbulo.comWp3XQ








  2.2.从头计划DTS包www.yestar2000iTbulo.comWp3XQ
  为了处置DTSRun传进的自界说参数,DTS包必要从头计划。我们能够增添一个ActiveXScript义务,在ActiveXScript义务中经由过程VBScript大概JavaScript对DTS编程,而且界说流程,把ActiveXScript义务设置成最入手下手的一个义务。因为DTSCOM工具线程形式与ActiveXScript义务宿主的纷歧致,必要将ActiveXScript义务事情流属性设置成在主包线程中实行,不然大概会呈现挪用毛病。www.yestar2000iTbulo.comWp3XQ
  上面的例子是ActiveXScript义务中的剧本。例子中的DTS包包括称号为"DBConnection"的数据库毗连工具。www.yestar2000iTbulo.comWp3XQ

  ************************************************************************
  VisualBasicActiveXScript
  ************************************************************************  FunctionMain()
  DimsDBDataSource
  DimsDBCatalog
  DimsDBUserID
  DimsDBPassword
  DimbDBUseTrusted
  DimsOLAPServer
  DimsOLAPCatalog
  DimoPackage
  DimoConnection
  DimoTask
  DimoCustomTask
  
  猎取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包工具的技能
  SetoPackage=DTSGlobalVariables.Parent
  获得包中的数据毗连工具
  SetoConnection=oPackage.Connections("DBConnection")www.yestar2000iTbulo.comWp3XQ
  设置数据源工具的数据毗连信息
  IfbDBUseTrustedThen
  oConnection.UseTrustedConnection=bDBUseTrusted
  Else
  oConnection.UserID=sDBUserID
  oConnection.Password=sDBPassword
  EndIfwww.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ







  oConnection.DataSource=sDBDataSource
  oConnection.Catalog=sDBCatalog
  SetoConnection=nothingwww.yestar2000iTbulo.comWp3XQ
  设置跟多的信息,这里是OLAP剖析服务处置义务
  SetoTask=oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate")
  SetoCustomTask=oTask.CustomTask
  SetoTask=nothing
  oCustomTask.Properties("TreeKey").Value=sOLAPServer&""_
  &sOLAPCatalog&"CubeFolderCertificate"
  SetoCustomTask=nothing
  
  前往乐成形态
  Main=DTSTaskExecResult_Success
  EndFunctionwww.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
  2.3.保留为布局化的存储文件www.yestar2000iTbulo.comWp3XQ
  这个历程相称的复杂,经由过程企业办理器能够完成。另存为的布局化存储文件就是我们要分发的DTS包。www.yestar2000iTbulo.comWp3XQ
  2.4.导进到MSSQLServerwww.yestar2000iTbulo.comWp3XQ
  我们必要经由过程DTS编程来完成这个历程。必要夸大的是,上面这段示例必要在ApartmentState为STA线程中才能够准确的被挪用。www.yestar2000iTbulo.comWp3XQ

  publicvoidGo()
  {
  DTS.Package2Classpkg=newDTS.Package2Class();
  DTS.Applicationapp=newDTS.ApplicationClass();www.yestar2000iTbulo.comWp3XQ
  //从SQLSERVER中删除已存在的同名DTS包
  try
  {
  pkg.RemoveFromSQLServer(
  DBServer,
  DBSUserID,
  DBSPassword,
  DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,
  "",www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ







  "",
  PkgName
  );
  }
  catch
  {
  }www.yestar2000iTbulo.comWp3XQ
  //获得待分发DTS包(布局化的存储文件)的包信息,这里假定包中只包括一个版本
  DTS.SavedPackageInfosinfos=pkg.GetSavedPackageInfos(UNCFile);
  DTS.SavedPackageInfoinfo=infos.Item(1);www.yestar2000iTbulo.comWp3XQ
  objectobj1=null;
  objectobj2=null;
  stringsPkgID=info.PackageID;
  stringsVerID=info.VersionID;
  stringsPkgName=info.PackageName;www.yestar2000iTbulo.comWp3XQ
  //载进布局化的存储文件
  pkg.LoadFromStorageFile(
  UNCFile,
  PkgPwd,
  sPkgID,
  sVerID,
  sPkgName,
  refobj1
  );
  //保留到SQLServer中
  pkg.SaveToSQLServerAs(
  PkgName,
  DBServer,
  DBSUserID,
  DBSPassword,
  DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,
  PkgOwnerPwd,
  PkgOperatorPwd,
  "",
  refobj2,
  false);
  pkg.UnInitialize();www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ





www.yestar2000iTbulo.comWp3XQ

  //反省是不是保留乐成
  DTS.PackageSQLServerpkgSQLServer=
  app.GetPackageSQLServer(
  DBServer,
  DBSUserID,
  DBSPassword,
  DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default
  );
  
  DTS.PackageInfosinfs=
  pkgSQLServer.EnumPackageInfos(PkgName,true,"");
  if(infs.EOF)
  thrownewException("DTS包导进到数据库失利。");
  DTS.PackageInfoinf=infs.Next();www.yestar2000iTbulo.comWp3XQ
  mPkgID=inf.PackageID;
  mVerID=inf.VersionID;
  }www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
  2.5.增加功课www.yestar2000iTbulo.comWp3XQ
  增加功课能够用传统的体例,用SQL语句可做到,不做具体申明。MSSQLServer更是供应一系列的存储历程对功课举行修正,以到达用户预期的效果。www.yestar2000iTbulo.comWp3XQ
  3.小结www.yestar2000iTbulo.comWp3XQ
  文章到此已到达我们的方针。整体上说,2.2这步的完成有些坚苦,在完成历程傍边也碰着过良多坚苦,有一些是在旧事组中失掉的解答,别的的步骤检察MSDN都能够失掉对照简单的办理。www.yestar2000iTbulo.comWp3XQ





通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。
作者: admin    时间: 2015-1-19 11:47
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
作者: 深爱那片海    时间: 2015-1-25 19:48
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
作者: 只想知道    时间: 2015-2-3 19:34
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
作者: 谁可相欹    时间: 2015-2-9 04:47
我们学到了什么?思考问题的时候从表的角度来思考问
作者: 精灵巫婆    时间: 2015-2-26 23:43
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
作者: 飘灵儿    时间: 2015-3-8 18:32
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
作者: 再现理想    时间: 2015-3-16 10:51
无法深入到数据库系统层面去了解和探究
作者: 山那边是海    时间: 2015-3-22 22:27
入门没那么困难,精通没那么容易




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2