国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

MS SQL Server2k數據轉換服務部署

2024-08-31 00:49:36
字體:
來源:轉載
供稿:網友


1. 目標 www.yestar2000itbulo.comwp3xq

  ms sql server做大數據量傳輸的時候,我們大多會用到數據傳輸服務。現在假設,在開發環境下,我們已經設計好了dts包并且運行良好,接下來我們要做的事情是遷移和部署這個dts數據包。www.yestar2000itbulo.comwp3xq

  所以,我們需要把設計環境下的dts包保存成結構化的存儲文件,并且這個文件導入到目標環境下的ms sql server中,最后添加作業,讓ms sql server angent在我們預期的事情執行這個dts包完成數據傳輸工作。其中需要重點解決的一個問題是,在目標環境中,dts傳輸的源和目的地會發生改變,需要對它進行配置。 www.yestar2000itbulo.comwp3xq

  2. 解決方案 www.yestar2000itbulo.comwp3xq

  2.1. dtsrun www.yestar2000itbulo.comwp3xq

  dtsrun是微軟提供的命令用于執行dts包(包括結構化存儲的、存儲在sql server或存儲在meta data services的包)。 www.yestar2000itbulo.comwp3xq

  dtsrun的用法: www.yestar2000itbulo.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.yestar2000itbulo.comwp3xq

  具體的用法參看微軟的資料。這里需要重點指出的是,通過“/a global_variable_name:typeid=value”選項,我們可以給dts包傳遞多個自定義的參數,在dts包部署的目標環境下,我們用這個選項告訴dts包服務器名稱、用戶名、密碼等數據庫連接信息。通過“/!y”選項可以獲取加密后的dtsrun參數。 www.yestar2000itbulo.comwp3xq









  2.2. 重新設計dts包 www.yestar2000itbulo.comwp3xq

  為了處理dtsrun傳入的自定義參數,dts包需要重新設計。我們可以增加一個activex script任務,在activex script任務中通過vb script或者java script對dts編程,并且定義流程,把activex script任務設置成最開始的一個任務。由于dts com對象線程模式與activex script任務宿主的不一致,需要將activex script任務工作流屬性設置成在主包線程中執行,否則可能會出現調用錯誤。 www.yestar2000itbulo.comwp3xq

  下面的例子是activex script任務中的腳本。例子中的dts包包含名稱為"dbconnection"的數據庫連接對象。 www.yestar2000itbulo.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.yestar2000itbulo.comwp3xq

  ' 配置數據源對象的數據連接信息
  if bdbusetrusted then
  oconnection.usetrustedconnection = bdbusetrusted
  else
  oconnection.userid = sdbuserid
  oconnection.password = sdbpassword
  end ifwww.yestar2000itbulo.comwp3xq

www.yestar2000itbulo.comwp3xq








  oconnection.datasource = sdbdatasource
  oconnection.catalog = sdbcatalog
  set oconnection = nothingwww.yestar2000itbulo.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.yestar2000itbulo.comwp3xq

www.yestar2000itbulo.comwp3xq

  2.3. 保存為結構化的存儲文件 www.yestar2000itbulo.comwp3xq

  這個過程相當的簡單,通過企業管理器可以完成。另存為的結構化存儲文件就是我們要分發的dts包。 www.yestar2000itbulo.comwp3xq

  2.4. 導入到ms sql server www.yestar2000itbulo.comwp3xq

  我們需要通過dts編程來實現這個過程。需要強調的是,下面這段示例需要在apartmentstate為sta線程中才可以正確的被調用。 www.yestar2000itbulo.comwp3xq


  public void go()
  {
  dts.package2class pkg = new dts.package2class();
  dts.application app = new dts.applicationclass();www.yestar2000itbulo.comwp3xq

  //從sql server中刪除已經存在的同名dts包
  try
  {
  pkg.removefromsqlserver(
  dbserver,
  dbsuserid,
  dbspassword,
  dts.dtssqlserverstorageflags.dtssqlstgflag_default,
  "", www.yestar2000itbulo.comwp3xq

www.yestar2000itbulo.comwp3xq








  "",
  pkgname
  );
  }
  catch
  {
  }www.yestar2000itbulo.comwp3xq

  //取得待分發dts包(結構化的存儲文件)的包信息,這里假定包中只包含一個版本
  dts.savedpackageinfos infos = pkg.getsavedpackageinfos(uncfile);
  dts.savedpackageinfo info = infos.item(1);www.yestar2000itbulo.comwp3xq

  object obj1 = null;
  object obj2 = null;
  string spkgid = info.packageid;
  string sverid = info.versionid;
  string spkgname = info.packagename;www.yestar2000itbulo.comwp3xq

  //載入結構化的存儲文件
  pkg.loadfromstoragefile(
  uncfile,
  pkgpwd,
  spkgid,
  sverid,
  spkgname,
  ref obj1
  );
  //保存到sql server中
  pkg.savetosqlserveras(
  pkgname,
  dbserver,
  dbsuserid,
  dbspassword,
  dts.dtssqlserverstorageflags.dtssqlstgflag_default,
  pkgownerpwd,
  pkgoperatorpwd,
  "",
  ref obj2,
  false);
  pkg.uninitialize();www.yestar2000itbulo.comwp3xq

www.yestar2000itbulo.comwp3xq






www.yestar2000itbulo.comwp3xq


  //檢查是否保存成功
  dts.packagesqlserver pkgsqlserver =
  app.getpackagesqlserver(
  dbserver,
  dbsuserid,
  dbspassword,
  dts.dtssqlserverstorageflags.dtssqlstgflag_default
  );
  
  dts.packageinfos infs =
  pkgsqlserver.enumpackageinfos(pkgname, true, "");
  if (infs.eof)
  throw new exception("dts包導入到數據庫失敗。");
  dts.packageinfo inf = infs.next();      www.yestar2000itbulo.comwp3xq

  mpkgid = inf.packageid;
  mverid = inf.versionid;
  }www.yestar2000itbulo.comwp3xq

www.yestar2000itbulo.comwp3xq

  2.5. 添加作業 www.yestar2000itbulo.comwp3xq

  添加作業可以用傳統的方式,用sql語句可做到,不做詳細說明。ms sql server更是提供一系列的存儲過程對作業進行修改,以達到用戶預期的效果。www.yestar2000itbulo.comwp3xq

  3. 小結 www.yestar2000itbulo.comwp3xq

  文章到此已經達到我們的目標??傮w上說,2.2這步的實現有些困難,在實現過程當中也碰到過很多困難,有一些是在新聞組中得到的解答,其它的步驟查看msdn都可以得到比較容易的解決。www.yestar2000itbulo.comwp3xq






發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸阳市| 武冈市| 西乌| 惠州市| 江油市| 丰顺县| 宜兰县| 石屏县| 铁岭县| 德州市| 桃园市| 林州市| 精河县| 阿坝县| 富蕴县| 罗甸县| 柳江县| 邵东县| 宿迁市| 武邑县| 改则县| 太湖县| 乳源| 甘孜| 莱西市| 千阳县| 忻州市| 沂源县| 丰顺县| 华亭县| 图片| 乌苏市| 潮州市| 轮台县| 阿克苏市| 刚察县| 平乐县| 平乐县| 通江县| 古交市| 台中县|