首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 DTS 套件部署實戰:從開發環境到生產環境的遷移與參數化策略

     編輯:關於SqlServer

部署目標

開發環境已設計完成並測試通過的 DTS 套件,需遷移至生產環境並排程執行。核心挑戰:來源/目的伺服器、帳號、密碼等連線資訊在環境間不同。

解決方案:DTSRun 命令列 + 全域變數參數化

DTSRun 語法重點

dtsrun
    [/?] |
    [ /S server[\instance]  { /U user /P pass | /E } ]
    { /N package_name | /G package_guid | /V version_guid }
    [ /M package_password ]
    [ /F structured_storage_file ]
    [ /R repository_db ]
    [ /A global_var_name:type_id=value ]   -- 關鍵:傳遞參數
    [ /L log_file ]
    [ /W event_log_status ]
    [ /Z ] [ /!X ] [ /!D ] [ /!Y ] [ /!C ]

參數化實作步驟

  1. DTS 設計師中建立全域變數:如 SrcServer、SrcUser、SrcPwd、DestServer、DestUser、DestPwd。
  2. 在「資料傳輸工作」的連線屬性中,以動態屬性工作或 ActiveX 腳本,將連線屬性綁定至對應全域變數。
  3. 另存套件為結構化儲存檔 (.dts) 或發布至 msdb/Repository。
  4. 生產環境建立 .bat 或 Agent 作業步驟,呼叫 dtsrun 並以 /A 傳遞實際連線參數:
dtsrun /S ProdSQL /E /N "MyPackage" ^
    /A "SrcServer":8="ProdSource" ^
    /A "SrcUser":8="etl_user" ^
    /A "SrcPwd":8="P@ssw0rd" ^
    /A "DestServer":8="ProdDW" ^
    /A "DestUser":8="dw_user" ^
    /A "DestPwd":8="P@ssw0rd" ^
    /L "C:\Logs\MyPackage.log"

:8 表示 VT_BSTR (字串) 型別 ID。

加密參數防洩露

使用 /!Y 選項產生加密後的完整命令列字串,部署時僅使用加密字串,避免明文密碼出現在批次檔或作業步驟中。
範例:dtsrun /!Y /S ... /A "SrcPwd":8="secret" ... → 輸出加密字串,實際執行用 dtsrun /!X "encrypted_string"。

部署檢查清單

  • 目標伺服器已安裝相同版本 DTS 執行環境。
  • 所有參考的連線管理員 (OLE DB Provider、ODBC DSN) 在目標機器已設定。
  • 執行帳號 (Agent Proxy 或批次檔執行身分) 擁有來源/目的資料庫權限。
  • 測試手動執行 dtsrun 成功後,再建立 Agent 排程作業。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved