建立腳本檔案 (Db2ToSQL)
您必須先建立文稿檔案,才能啟動 SQL Server 移轉小幫手 (SSMA) 主控台應用程式。 如有必要,您也可以建立變數值檔案和伺服器連接檔。
文稿檔案可以分成三個區段:
區段 | 描述 |
---|---|
config |
設定主控台應用程式的組態參數。 |
servers |
設定來源/目標伺服器定義。 也可以位於個別的伺服器連接檔案中。 |
script-commands |
執行 SSMA 工作流程命令。 |
本文將詳細說明每一節。
設定 SSMA 控制台應用程式設定
指令碼的設定會顯示在主控台指令檔中。
如果組態節點中指定了任何專案,則會將其設定為全域設定。 換句話說,它們會套用至所有腳本命令。 如果您想要覆寫全域設定,您也可以在 script-command 區段中的每個命令內設定這些組態元素。
使用者可設定的選項包括:
輸出視窗提供者:如果
suppress-messages
屬性設定為true
,則命令特定的訊息不會顯示在控制臺上。屬性 描述 destination
指定輸出是否需要列印到檔案或 stdout。 預設為 false
。file-name
(選用)檔案的路徑。 suppress-messages
隱藏控制臺上的訊息。 預設為 false
。範例:
<output-providers> <output-window suppress-messages="<true/false>" (optional) destination="<file/stdout>" (optional) file-name="<file-name>" (optional) /> </output-providers>
or
<...All commands...> <output-window suppress-messages="<true/false>" (optional) destination="<file/stdout>" (optional) file-name="<file-name>" (optional) /> </...All commands...>
數據遷移連接提供者:指定要考慮哪些來源/目標伺服器進行數據遷移。 Source-use-last-used 表示上次用於資料移轉的來源伺服器。 同樣地,target-use-last-used 表示上次用於資料移轉的目標伺服器。 您也可以使用source-server或 target-server 屬性來指定伺服器(來源或目標)。
一次只能設定其中一個屬性:
source-use-last-used="true"
(預設值) 或source-server="<source-server-unique-name>"
target-use-last-used="true"
(預設值) 或target-server="<target-server-unique-name>"
範例:
<output-providers> <data-migration-connection source-use-last-used="true" target-server="<target-server-unique-name>"/> </output-providers>
or
<migrate-data> <data-migration-connection source-server="<source-server-unique-name>" target-use-last-used="true"/> </migrate-data>
使用者輸入快顯:允許從資料庫載入物件時處理錯誤。 您提供輸入模式,如果發生錯誤,主控台會依照指定方式繼續進行。
模式 描述 ask-user
提示您繼續 ( yes
) 或錯誤輸出 (no
)。error
(預設值)主控台會顯示錯誤並停止執行。 continue
主控台會繼續進行執行。 範例:
<output-providers> <user-input-popup mode="<ask-user/continue/error>"/> </output-providers>
or
<!-- Connect to target database --> <connect-target-database server="<target-server-unique-name>"> <user-input-popup mode="<ask-user/continue/error>"/> </connect-target-database>
重新連線提供者:可讓您設定連線失敗時的重新連線設定。 可同時針對來源和目標伺服器設定。
重新連線模式 描述 reconnect-to-last-used-server
如果連線未使用中,它會嘗試重新連線到最後一部伺服器,最多使用五次。 generate-an-error
(預設值)如果連線未使用中,則會產生錯誤。 範例:
<output-providers> <reconnect-manager on-source-reconnect="<reconnect-to-last-used-server/generate-an-error>" on-target-reconnect="<reconnect-to-last-used-server/generate-an-error>"/> </output-providers>
or
<!--synchronization--> <synchronize-target> <reconnect-manager on-target-reconnect="reconnect-to-last-used-server"/> </synchronize-target>
or
<!--data migration--> <migrate-data server="<target-server-unique-name>"> <reconnect-manager on-source-reconnect="reconnect-to-last-used-server" on-target-reconnect="generate-an-error"/> </migrate-data>
轉換器覆寫提供者:可讓您處理已存在於目標中繼基底上的物件。
動作 描述 error
主控台會顯示錯誤並停止執行。 overwrite
(預設值)覆寫現有的物件值。 skip
主控台會略過資料庫上已經存在的物件。 ask-user
提示您輸入 ( yes
/no
)。範例:
<output-providers> <object-overwrite action="<error/skip/overwrite/ask-user>"/> </output-providers>
or
<convert-schema object-name="<object-name>"> <object-overwrite action="<error/skip/overwrite/ask-user>"/> </convert-schema>
失敗的必要條件提供者:您可以處理處理命令所需的任何必要條件。 根據預設,
strict-mode
是false
。 如果true
為 ,則會產生例外狀況,以因不符合必要條件而失敗。範例:
<output-providers> <prerequisites strict-mode="<true/false>"/> </output-providers>
停止作業:在中期作業期間,如果您想要停止作業,則可以使用 Ctrl+C 快速鍵。 SSMA 控制台應用程式的 SSMA 會等候作業完成並終止主控控台執行。
如果您想要立即停止執行,則可以再次按下 Ctrl+C 熱鍵以終止 SSMA 控制台應用程式。
進度提供者:告知每個主控台命令的進度。 預設為停用。 進度報告屬性包含:
off
every-1%
every-2%
every-5%
every-10%
every-20%
範例:
<output-providers> progress-reporting enable="<true/false>" (optional) report-messages="<true/false>" (optional) report-progress="every-1%/every-2%/every-5%/every-10%/every-20%/off" (optional)/> </output-providers>
or
<...All commands...> <progress-reporting enable="<true/false>" (optional) report-messages="<true/false>" (optional) report-progress="every-1%/every-2%/every-5%/every-10%/every-20%/off" (optional)/> </...All commands...>
記錄器詳細程度:設定記錄詳細程度層級。 這會對應至 UI 中的 [ 所有類別 ] 選項。
記錄器層級 描述 fatal-error
只會記錄嚴重錯誤訊息。 error
(預設值)只會記錄錯誤和嚴重錯誤訊息。 warning
除了偵錯和資訊訊息之外,所有層級都會記錄。 info
除了記錄偵錯訊息以外的所有層級。 debug
記錄的所有訊息層級。 所有層級都會記錄必要訊息。
範例︰
<output-providers> <log-verbosity level="fatal-error/error/warning/info/debug"/> </output-providers>
or
<...All commands...> <log-verbosity level="fatal-error/error/warning/info/debug"/> </...All commands...>
覆寫加密密碼:如果
true
為 ,則為伺服器連接檔案或腳本檔案之伺服器定義區段中指定的純文本密碼,如果存在,則會覆寫儲存在受保護記憶體中的加密密碼。 如果未以純文字指定任何密碼,系統會提示您輸入密碼。在這裡,會出現兩個案例:
如果覆寫選項為 false,搜尋順序會是受保護的記憶體 > 腳本文件 > 伺服器連接檔案 > 提示使用者。
如果覆寫選項為 true,搜尋順序為腳本文件 > 伺服器連接檔案 > 提示使用者。
範例:
<output-providers> <encrypted-password override="<true/false>"/> </output-providers>
無法設定的選項為:
- 重新連線嘗試次數上限:建立的連線因網路故障而逾時或中斷時,需要重新連線伺服器。 重新連線嘗試最多允許
5
重試,之後控制台會自動執行重新連線。 自動重新連線功能可減少重新執行指令碼的心力。
伺服器連線參數
伺服器連線參數可以在指令檔或伺服器連線檔案中定義。 如需詳細資訊,請參閱 建立伺服器連線檔案。
腳本命令
指令檔包含一系列 XML 格式的移轉工作流程命令。 SSMA 主控台應用程式會依指令檔中顯示的命令順序來處理移轉。
例如,Db2 資料庫中特定數據表的一般數據遷移會遵循架構>數據表的階層。
成功執行文本檔案中的所有命令時,SSMA 控制台應用程式就會結束。 腳本檔案的內容或多或少是靜態的,變數資訊包含在變數值檔案中,或是在腳本檔案中用於變數值的個別區段中。
範例:
以下是文稿檔案命令的範例:
<ssma-script-file>
<script-commands>
<create-new-project project-folder="<project-folder>"
project-name="<project-name>"
overwrite-if-exists="<true/false>"/>
<connect-source-database server="<source-server-unique-name>"/>
<save-project/>
<close-project/>
</script-commands>
</ssma-script-file>
產品目錄的 [範例控制台腳本] 資料夾中提供由三個腳本檔案所組成的範本(用於執行各種案例)、變數值檔案和伺服器連接檔案:
AssessmentReportGenerationSample.xml
ConversionAndDataMigrationSample.xml
SqlStatementConversionSample.xml
VariableValueFileSample.xml
ServersConnectionFileSample.xml
您可以在變更顯示於該處的參數以取得相關程度之後,執行範本 (檔案)。
您可以在執行 SSMA 控制台中找到 文稿命令的完整清單
指令檔驗證
您可以針對資料夾中可用的Schemas
架構定義檔案驗證文稿檔案O2SSConsoleScriptSchema.xsd
。