執行 SSMA 控制台 (Db2ToSQL)
Microsoft提供一組健全的腳本檔案命令,以執行和控制 SQL Server 移轉小幫手 (SSMA) 活動。 後幾節會詳細說明相同的內容。 主控台應用程式會使用本節列舉的特定標準指令檔命令。
專案指令檔命令
專案命令會處理建立專案、開啟、儲存和結束專案。
命令
create-new-project
:建立新的 SSMA 專案。
指令碼
project-folder
表示專案建立的資料夾。project-name
表示專案的名稱。 {string}overwrite-if-exists
選用屬性會指出是否應該覆寫現有的專案。 {boolean}project-type:
選用屬性。 表示項目類型。 例如,sql-server-2019
或sql-azure
。 預設值為sql-server-2016
。
範例:
<create-new-project
project-folder="<project-folder>"
project-name="<project-name>"
overwrite-if-exists="<true/false>" (optional)
project-type="<sql-server-2016 | sql-server-2017 | sql-server-2019 | sql-server-2022 | sql-azure>" (optional)
/>
屬性 overwrite-if-exists
預設為 false
。
屬性 project-type
預設為 sql-server-2016
。
命令
open-project
:開啟現有的專案。
指令碼
project-folder
表示專案建立的資料夾。 如果指定的資料夾不存在,此命令就會失敗。 {string}project-name
表示專案的名稱。 如果指定的專案不存在,此命令就會失敗。 {string}
語法範例:
<open-project
project-folder="<project-folder>"
project-name="<project-name>"
/>
SSMA for Db2 控制台應用程式支援回溯相容性。 您可以開啟舊版 SSMA 所建立的專案。
命令
save-project
:儲存移轉專案。
語法範例:
<save-project/>
命令
close-project
:關閉移轉專案。
語法範例:
<close-project
if-modified="<save/error/ignore>" (optional)
/>
資料庫連接文稿檔案命令
資料庫連線命令可協助連線到資料庫。
主控台不支援 UI 的 [瀏覽] 功能。
如需詳細資訊,請參閱 建立腳本檔案。
命令
connect-source-database
執行與來源資料庫的連線,並載入來源資料庫的高階中繼資料,但不會載入所有中繼資料。
如果無法建立至來源的連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。
指令碼
伺服器定義是從伺服器連接檔或指令檔的伺服器區段中,針對每個連接所定義的 name 屬性擷取。
語法範例:
<connect-source-database server="<server-unique-name>"/>
命令
force-load-source-database
/force-load-target-database
載入來源中繼資料。
適合用於離線處理移轉專案。
如果無法建立來源/目標的連接,就會產生錯誤,主控台應用程式會停止進一步執行
指令碼
需要一或多個 Metabase 節點作為命令列參數。
語法範例:
<force-load object-name="<object-name>"
metabase="<source/target>"/>
Or
<force-load>
<metabase-object object-name="<object-name>"/>
</force-load>
命令
reconnect-source-database
重新連線至來源資料庫,但不會載入任何中繼資料,與 connect-source-database 命令不同。
如果無法建立與來源的 (重新) 連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。
語法範例:
<reconnect-source-database server="<server-unique-name>"/>
命令
connect-target-database
連線至目標 SQL Server 資料庫,並載入目標資料庫的高階中繼資料,但不會完全載入中繼資料。
如果無法建立至目標的連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。
指令碼
伺服器定義是從伺服器連接檔或指令檔的伺服器區段中,針對每個連接所定義的 name 屬性擷取。
語法範例:
<connect-target-database server="<server-unique-name>"/>
命令
reconnect-target-database
重新連線至目標資料庫,但不會載入任何中繼資料,與 connect-target-database 命令不同。
如果無法建立至目標的 (重新) 連線,就會產生錯誤,主控台應用程式會停止進一步執行。
語法範例:
<reconnect-target-database server="<server-unique-name>"/>
報告指令檔命令
[報表] 命令會產生各種 SSMA 控制台活動的效能報告。
命令
generate-assessment-report
在來源資料庫上產生評定報告。
如果在執行此命令之前未執行來源資料庫連線,則會產生錯誤,而且主控台應用程式會結束。
在命令執行期間無法連線到來源資料庫伺服器,也會導致終止主控台應用程式。
指令碼
conversion-report-folder:
指定可儲存評量報告的資料夾。 (選用屬性)object-name:
指定考慮用於產生評量報表的物件(它可以有個別的物件名稱或群組物件名稱)。object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。conversion-report-overwrite:
指定是否在評定報告資料夾已經存在時覆寫。預設值:false。 (選用屬性)
write-summary-report-to:
指定產生摘要報表的路徑。如果只提及資料夾路徑,則會依名稱 AssessmentReport<n>.XML 建立檔案。 (選用屬性)
報告建立有兩個更進一步的子類別:
report-errors
true
或false
,預設值為false
(選擇性屬性)verbose
true
或false
,預設值為false
(選擇性屬性)
語法範例:
<generate-assessment-report
object-name="<object-name>"
object-type="<object-category>"
write-summary-report-to="<file>" (optional)
verbose="<true/false>" (optional)
report-errors="<true/false>" (optional)
assessment-report-folder="<folder-name>" (optional)
conversion-report-overwrite="<true/false>" (optional)
/>
Or
<generate-assessment-report
conversion-report-folder="<folder-name>" (optional)
conversion-report-overwrite="<true/false>" (optional)
>
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</generate-assessment-report>
移轉指令檔命令
移轉命令會將目標資料庫結構描述轉換成來源結構描述,並將資料移轉至目標伺服器。 移轉命令的預設主控台輸出設定是「完整」輸出報告,沒有詳細的錯誤報告:只有來源物件樹狀目錄根節點的摘要。
命令
convert-schema
執行從來源到目標結構描述的結構描述轉換。
如果在執行此命令之前未執行來源或目標資料庫連線,或在命令執行期間與來源或目標資料庫伺服器的連線失敗,則會產生錯誤並結束主控台應用程式。
指令碼
conversion-report-folder:
指定可儲存評量報告的資料夾。 (選用屬性)object-name:
指定考慮轉換架構的來源物件(它可以有個別的物件名稱或群組物件名稱)。object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。conversion-report-overwrite:
指定是否在評定報告資料夾已經存在時覆寫。預設值:false。 (選用屬性)
write-summary-report-to:
指定產生摘要報表的路徑。如果只提及資料夾路徑,則會依名稱 SchemaConversionReport<n>.XML 建立檔案。 (選用屬性)
報告建立有兩個更進一步的子類別:
report-errors
true
或false
,預設值為false
(選擇性屬性)verbose
true
或false
,預設值為false
(選擇性屬性)
語法範例:
<convert-schema
object-name="<object-name>"
object-type="<object-category>"
write-summary-report-to="<file-name/folder-name>" (optional)
verbose="<true/false>" (optional)
report-errors="<true/false>" (optional)
conversion-report-folder="<folder-name>" (optional)
conversion-report-overwrite="<true/false>" (optional)
/>
Or
<convert-schema
conversion-report-folder="<folder-name>" (optional)
conversion-report-overwrite="<true/false>" (optional)
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</convert-schema>
命令
migrate-data
:將源數據遷移至目標。
指令碼
conversion-report-folder:
指定可儲存評量報告的資料夾。 (選用屬性)object-name:
指定考慮移轉數據的來源物件(它可以有個別的物件名稱或群組物件名稱)。object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。conversion-report-overwrite:
指定是否在評定報告資料夾已經存在時覆寫。預設值:false。 (選用屬性)
write-summary-report-to:
指定產生摘要報表的路徑。如果只提及資料夾路徑,則會依名稱
DataMigrationReport<n>.xml
建立檔案。 (選用屬性)報告建立有兩個更進一步的子類別:
report-errors
true
或false
,預設值為false
(選擇性屬性)verbose
true
或false
,預設值為false
(選擇性屬性)
語法範例:
<migrate-data
write-summary-report-to="<file-name/folder-name>"
report-errors="<true/false>"
verbose="<true/false>">
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
<data-migration-connection
source-use-last-used="true"/source-server="<server-unique-name>"
target-use-last-used="true"/target-server="<server-unique-name>"/>
</migrate-data>
Or
<migrate-data
object-name="<object-name>"
object-type="<object-category>"
write-summary-report-to="<file-name/folder-name>"
report-errors="<true/false>"
verbose="<true/false>"/>
移轉準備腳本檔案命令
移轉準備命令會起始來源與目標資料庫之間的結構描述對應。
命令
map-schema
:源資料庫的架構對應至目標架構。
指令碼
source-schema
:指定要移轉的來源架構。sql-server-schema
:指定我們想要移轉的目標架構。
語法範例:
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
命令
map-schema
:源資料庫的架構對應至目標架構。
指令碼
source-schema
指定我們想要移轉的來源結構描述。
sql-server-schema
指定我們想要移轉至的目標結構描述。
語法範例:
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
管理性腳本檔案命令
管理性命令可協助同步處理目標資料庫物件與來源資料庫。
移轉命令的預設主控台輸出設定是「完整」輸出報告,沒有詳細的錯誤報告:只有來源物件樹狀目錄根節點的摘要。
命令
synchronize-target
同步目標物件與目標資料庫。
如果針對來源資料庫執行此命令,就會發生錯誤。
如果在執行此命令之前未執行目標資料庫連線,或在命令執行期間與目標資料庫伺服器的連線失敗,則會產生錯誤並結束主控台應用程式。
指令碼
object-name:
指定考慮與目標資料庫同步處理的目標物件(它可以有個別的物件名稱或群組物件名稱)。object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。on-error:
指定是否要將同步處理錯誤指定為警告或錯誤。 可用的 on-error 選項:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
指定同步處理作業的錯誤報告位置(選擇性屬性)如果只指定資料夾路徑,則會依名稱
TargetSynchronizationReport.xml
建立檔案。
語法範例:
<synchronize-target
object-name="<object-name>"
on-error="<report-total-as-warning/
report-each-as-warning/
fail-script>" (optional)
report-errors-to="<file-name/folder-name>" (optional)
/>
Or
<synchronize-target
object-name="<object-name>"
object-type="<object-category>"/>
Or
<synchronize-target>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
</synchronize-target>
命令
refresh-from-database
從資料庫重新整理來源物件。
如果針對目標資料庫執行此命令,會產生錯誤。
指令碼
需要一或多個 Metabase 節點作為命令列參數。
object-name:
指定考慮從源資料庫重新整理的來源物件(它可以有個別的物件名稱或群組物件名稱)。object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。on-error:
指定是否要將重新整理錯誤指定為警告或錯誤。 可用的 on-error 選項:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
如果只指定指定資料夾路徑,則會針對重新整理作業指定錯誤報告的位置(選擇性屬性),然後依名稱SourceDBRefreshReport.xml
建立檔案。
語法範例:
<refresh-from-database
object-name="<object-name>"
on-error="<report-total-as-warning/
report-each-as-warning/
fail-script>" (optional)
report-errors-to="<file-name/folder-name>" (optional)
/>
Or
<refresh-from-database
object-name="<object-name>"
object-type="<object-category>"/>
Or
<refresh-from-database>
<metabase-object object-name="<object-name>"/>
</refresh-from-database>
腳本產生腳本檔案命令
指令碼產生命令會執行雙重工作:它們可協助將主控台輸出儲存在指令檔中,並根據您指定的參數,將 T-SQL 輸出記錄到主控台或檔案。
命令
save-as-script
:將 物件的腳本儲存至時 metabase=target
所提及的檔案。 這是同步處理命令的替代方法,其中我們會取得腳本,並在目標資料庫上執行相同。
指令碼
需要一或多個 Metabase 節點作為命令列參數。
object-name:
指定要儲存其文稿的物件。 (其可有個別物件名稱或群組物件名稱)object-type:
指定物件名稱屬性中指定的物件類型(如果指定物件類別,則物件類型為category
)。metabase:
指定它是來源或目標 Metabase。destination:
指定文稿必須儲存的路徑或資料夾,如果未指定檔名,則格式為檔名(object_name屬性值)。overwrite:
如果true
存在相同的檔名,則會覆寫它。 它可以包括該值 (true/false)。
語法範例:
<save-as-script
metabase="<source/target>"
object-name="<object-name>"
object-type="<object-category>"
destination="<file/folder>"
overwrite="<true/false>" (optional)
/>
Or
<save-as-script
metabase="<source/target>"
destination="<file/folder>"
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</save-as-script>
命令
convert-sql-statement
context
指定結構描述名稱。destination
指定輸出是否應該處存在檔案中。如果未指定此屬性,則會在控制台上顯示已轉換的 T-SQL 語句。 (選用屬性)
conversion-report-folder
會指定可儲存評量報告的資料夾。 (選用屬性)conversion-report-overwrite
指定是否在評定報告資料夾已經存在時覆寫。預設值:false。 (選用屬性)
write-converted-sql-to
指定要儲存轉換 T-SQL 的檔案 (或) 資料夾路徑。 指定資料夾路徑與sql-files
屬性時,每個來源檔案都有在指定資料夾下建立的對應目標 T-SQL 檔案。 指定資料夾路徑與sql
屬性時,轉換后的 T-SQL 會寫入指定資料夾下名為Result.out
的檔案。sql
指定要轉換的 Db2 SQL 語句,可以使用 “;” 分隔一或多個語句sql-files
指定必須轉換成 T-SQL 程式代碼之 SQL 檔案的路徑。write-summary-report-to
會指定產生報表的路徑。 如果只提及資料夾路徑,則會依名稱ConvertSQLReport.xml
建立檔案。 (選用屬性)報告建立有兩個更進一步的子類別:
report-errors
:true
或false
,預設值為false
(選擇性屬性)verbose
:true
或false
,預設值為false
(選擇性屬性)
指令碼
需要一或多個 Metabase 節點作為命令列參數。
語法範例:
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
write-summary-report-to="<file-name/folder-name>" (optional)
verbose="<true/false>" (optional)
report-errors="<true/false>" (optional)
destination="<stdout/file>" (optional)
file-name="<file-name>"
sql="SELECT 1 FROM DUAL;">
<output-window suppress-messages="<true/false>" />
</convert-sql-statement>
Or
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
write-summary-report-to="<file-name/folder-name>" (optional)
verbose="<true/false>" (optional)
report-errors="<true/false>"
destination="<stdout/file>" (optional)
write-converted-sql-to="<file-name/folder-name>"
sql-files="<folder-name>\*.sql" />
Or
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
sql-files="<folder-name>\*.sql" />