Uruchom konsolę SSMA (Db2ToSQL)
Firma Microsoft udostępnia niezawodny zestaw poleceń pliku skryptu do wykonywania i kontrolowania działań programu SQL Server Migration Assistant (SSMA). W poniższych sekcjach szczegółowo opisano to samo. Aplikacja konsolowa używa pewnych standardowych poleceń pliku skryptu, które są wyliczane w tej sekcji.
Polecenia pliku skryptu projektu
Polecenia programu Project obsługują tworzenie projektów, otwieranie, zapisywanie i kończenie projektów.
polecenie
create-new-project
: tworzy nowy projekt SSMA.
skrypt
project-folder
wskazuje folder tworzonego projektu.project-name
wskazuje nazwę projektu. {string}overwrite-if-exists
Opcjonalny atrybut wskazuje, czy istniejący projekt powinien zostać zastąpiony. {wartość logiczna}project-type:
opcjonalny atrybut. Wskazuje typ projektu. Na przykładsql-server-2019
lubsql-azure
. Wartość domyślna tosql-server-2016
.
Przykład:
<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)
/>
Atrybut overwrite-if-exists
jest domyślnie false
.
Atrybut project-type
jest domyślnie sql-server-2016
.
poleceń
open-project
: otwiera istniejący projekt.
skrypt
project-folder
wskazuje folder tworzonego projektu. Polecenie kończy się niepowodzeniem, jeśli określony folder nie istnieje. {string}project-name
wskazuje nazwę projektu. Polecenie kończy się niepowodzeniem, jeśli określony projekt nie istnieje. {string}
przykład składni :
<open-project
project-folder="<project-folder>"
project-name="<project-name>"
/>
Aplikacja konsolowa SSMA dla Db2 obsługuje kompatybilność wsteczną. Możesz otwierać projekty utworzone przez poprzednią wersję programu SSMA.
polecenie
save-project
: zapisuje projekt migracji.
przykład składni :
<save-project/>
polecenie
close-project
: zamyka projekt migracji.
przykład składni:
<close-project
if-modified="<save/error/ignore>" (optional)
/>
Polecenia pliku skryptu połączenia bazy danych
Polecenia połączenia z bazą danych ułatwiają nawiązywanie połączenia z bazą danych.
Funkcja interfejsu użytkownika Przeglądaj nie jest obsługiwana w konsoli.
Aby uzyskać więcej informacji, zobacz Create script files (Tworzenie plików skryptów).
Polecenie
connect-source-database
Wykonuje połączenie ze źródłową bazą danych i ładuje metadane wysokiego poziomu źródłowej bazy danych, ale nie wszystkie metadane.
Jeśli nie można ustanowić połączenia ze źródłem, zostanie wygenerowany błąd, a aplikacja konsolowa przestanie wykonywać dalsze operacje
skrypt
Definicję serwera pobiera się z atrybutu 'name' zdefiniowanego dla każdego połączenia w sekcji serwera w pliku połączenia serwera lub w pliku skryptu.
przykład składni:
<connect-source-database server="<server-unique-name>"/>
Polecenie
force-load-source-database
/force-load-target-database
Ładuje metadane źródłowe.
Przydatne do pracy nad projektem migracji w trybie offline.
Jeśli nie można ustanowić połączenia ze źródłem/obiektem docelowym, zostanie wygenerowany błąd, a aplikacja konsolowa przestanie wykonywać dalsze operacje
skrypt
Wymaga jednego lub kilku węzłów metabazy jako parametru wiersza polecenia.
Przykład składni:
<force-load object-name="<object-name>"
metabase="<source/target>"/>
Lub
<force-load>
<metabase-object object-name="<object-name>"/>
</force-load>
polecenie
reconnect-source-database
Ponownie nawiązuje połączenie ze źródłową bazą danych, ale nie ładuje żadnych metadanych w przeciwieństwie do polecenia connect-source-database.
Jeśli nie można ustanowić połączenia lub ponownego połączenia ze źródłem, zostanie wygenerowany błąd, a aplikacja konsolowa zatrzyma dalsze działanie.
Przykład składni:
<reconnect-source-database server="<server-unique-name>"/>
poleceń
connect-target-database
Nawiązuje połączenie z docelową bazą danych SQL Server i ładuje metadane wysokiego poziomu docelowej bazy danych, ale nie w całości.
Jeśli nie można ustanowić połączenia z obiektem docelowym, zostanie wygenerowany błąd, a aplikacja konsolowa przestanie wykonywać dalsze operacje.
skrypt
Definicja serwera jest pobierana z atrybutu nazwa dla każdego połączenia w sekcji serwera w pliku połączenia serwera lub w pliku skryptu.
przykład składni:
<connect-target-database server="<server-unique-name>"/>
polecenie
reconnect-target-database
Ponownie nawiązuje połączenie z docelową bazą danych, ale nie ładuje żadnych metadanych, w przeciwieństwie do polecenia connect-target-database.
Jeśli (re)połączenie z obiektem docelowym nie może zostać nawiązane, zostanie wygenerowany błąd, a aplikacja konsolowa przestanie wykonywać dalsze operacje.
przykład składni:
<reconnect-target-database server="<server-unique-name>"/>
Polecenia pliku skryptu raportu
Polecenia Raport generują raporty dotyczące wydajności różnych działań konsoli SSMA.
Polecenie
generate-assessment-report
Generuje raporty oceny w źródłowej bazie danych.
Jeśli połączenie źródłowej bazy danych nie zostanie wykonane przed wykonaniem tego polecenia, zostanie wygenerowany błąd i aplikacja konsolowa zakończy działanie.
Niepowodzenie nawiązywania połączenia z źródłowym serwerem bazy danych podczas wykonywania polecenia powoduje również zakończenie aplikacji konsolowej.
skrypt
conversion-report-folder:
Określa folder, w którym można przechowywać raport oceny. (opcjonalny atrybut)object-name:
Określa obiekty rozważane do generowania raportu oceny (może mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy).object-type:
określa typ obiektu określonego w atrybucie object-name (jeśli określono kategorię obiektów, typ obiektu jestcategory
).conversion-report-overwrite:
Określa, czy zastąpić folder raportu oceny, jeśli już istnieje.wartość domyślna: false. (opcjonalny atrybut)
write-summary-report-to:
Określa ścieżkę, w której jest generowany raport podsumowania.Jeśli zostanie wymieniona tylko ścieżka folderu, zostanie utworzony plik według nazwy AssessmentReport<n>.XML. (opcjonalny atrybut)
Tworzenie raportu ma dwie kolejne podkategorie:
-
report-errors
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne) -
verbose
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne)
-
Przykład składni:
<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)
/>
Lub
<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>
Polecenia w pliku skryptu migracji
Polecenia migracji konwertują docelowy schemat bazy danych na schemat źródłowy i migrują dane na serwer docelowy. Domyślne ustawienie danych wyjściowych konsoli dla poleceń migracji to "Pełny" raport wyjściowy bez szczegółowego raportowania błędów: podsumowanie tylko w węźle głównym drzewa obiektów źródłowych.
Komenda
convert-schema
Wykonuje konwersję schematu ze źródła na schemat docelowy.
Jeśli połączenie źródłowej lub docelowej bazy danych nie jest wykonywane przed wykonaniem tego polecenia lub połączenie ze źródłowym lub docelowym serwerem bazy danych kończy się niepowodzeniem podczas wykonywania polecenia, zostanie wygenerowany błąd, a aplikacja konsolowa zakończy działanie.
skryptu
conversion-report-folder:
Określa folder, w którym można przechowywać raport oceny. (opcjonalny atrybut)object-name:
Określa obiekty źródłowe rozważane do konwersji schematu (może mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy).object-type:
określa typ obiektu określonego w atrybucie object-name (jeśli określono kategorię obiektów, typ obiektu jestcategory
).conversion-report-overwrite:
Określa, czy zastąpić folder raportu oceny, jeśli już istnieje.wartość domyślna: false. (opcjonalny atrybut)
write-summary-report-to:
Określa ścieżkę, w której jest generowany raport podsumowania.Jeśli zostanie wymieniona tylko ścieżka folderu, zostanie utworzony plik według nazwy SchemaConversionReport<n>.XML. (opcjonalny atrybut)
Tworzenie raportu ma dwie kolejne podkategorie:
report-errors
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne)verbose
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne)
Przykład składni:
<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)
/>
Lub
<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>
poleceń
migrate-data
: migruje dane źródłowe do obiektu docelowego.
skrypt
conversion-report-folder:
Określa folder, w którym można przechowywać raport oceny. (opcjonalny atrybut)object-name:
Określa obiekty źródłowe rozważane do migrowania danych (mogą mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy).object-type:
określa typ obiektu określonego w atrybucie object-name (jeśli określono kategorię obiektów, typ obiektu jestcategory
).conversion-report-overwrite:
Określa, czy zastąpić folder raportu oceny, jeśli już istnieje.wartość domyślna: false. (opcjonalny atrybut)
write-summary-report-to:
Określa ścieżkę, w której jest generowany raport podsumowania.Jeśli zostanie wymieniona tylko ścieżka folderu, zostanie utworzony plik według nazwy
DataMigrationReport<n>.xml
. (opcjonalny atrybut)Tworzenie raportu ma dwie kolejne podkategorie:
-
report-errors
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne) -
verbose
true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne)
-
Przykład składni:
<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>
Lub
<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>"/>
Polecenia pliku skryptu przygotowania migracji
Polecenie Przygotowanie migracji inicjuje mapowanie schematu między źródłowymi i docelowymi bazami danych.
polecenie
-
map-schema
: mapowanie schematu źródłowej bazy danych na schemat docelowy.
skrypt
-
source-schema
: określa schemat źródłowy, który zamierzamy migrować. -
sql-server-schema
: określa schemat docelowy, w którym ma zostać zmigrowany.
przykład składni :
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
poleceń
map-schema
: mapowanie schematu źródłowej bazy danych na schemat docelowy.
skrypt
source-schema
określa schemat źródłowy, który zamierzamy migrować.
sql-server-schema
określa schemat docelowy, w którym ma zostać zmigrowany.
Przykład składni:
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
Polecenia skryptu zarządzania plikami
Polecenia zarządzania ułatwiają synchronizowanie obiektów docelowej bazy danych ze źródłową bazą danych.
Domyślne ustawienie danych wyjściowych konsoli dla poleceń migracji to "Pełny" raport wyjściowy bez szczegółowego raportowania błędów: podsumowanie tylko w węźle głównym drzewa obiektów źródłowych.
Polecenie
synchronize-target
Synchronizuje obiekty docelowe z docelową bazą danych.
Jeśli to polecenie jest wykonywane względem źródłowej bazy danych, wystąpi błąd.
Jeśli docelowe połączenie z bazą danych nie jest wykonywane przed wykonaniem tego polecenia lub połączenie z docelowym serwerem bazy danych zakończy się niepowodzeniem podczas wykonywania polecenia, zostanie wygenerowany błąd i aplikacja konsolowa zakończy działanie.
skrypt
object-name:
Określa obiekty docelowe rozważane do synchronizowania z docelową bazą danych (może mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy).object-type:
określa typ obiektu określonego w atrybucie object-name (jeśli określono kategorię obiektów, typ obiektu jestcategory
).on-error:
Określa, czy należy określić błędy synchronizacji jako ostrzeżenia lub błąd. Dostępne opcje w przypadku błędu:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
Określa lokalizację raportu o błędach dla operacji synchronizacji (opcjonalny atrybut)Jeśli podano tylko ścieżkę folderu, zostanie utworzony plik według nazwy
TargetSynchronizationReport.xml
.
Przykład składniowy :
<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)
/>
Lub
<synchronize-target
object-name="<object-name>"
object-type="<object-category>"/>
Lub
<synchronize-target>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
</synchronize-target>
polecenie
refresh-from-database
Odświeża obiekty źródłowe z bazy danych.
Jeśli to polecenie jest wykonywane względem docelowej bazy danych, zostanie wygenerowany błąd.
skrypt
Wymaga jednego lub kilku węzłów metabazy jako parametru wiersza polecenia.
object-name:
Określa obiekty źródłowe rozważane do odświeżania z źródłowej bazy danych (może mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy).object-type:
Określa typ obiektu określonego w atrybucie nazwa-obiektu (jeśli określono kategorię obiektu, typ obiektu jestcategory
).on-error:
Określa, czy należy określić błędy odświeżania jako ostrzeżenia lub błąd. Dostępne opcje w przypadku błędu:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
Określa lokalizację raportu o błędach dla operacji odświeżania (opcjonalny atrybut), jeśli podano tylko ścieżkę folderu, a następnie plik według nazwySourceDBRefreshReport.xml
jest tworzony.
Przykład składni:
<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)
/>
Lub
<refresh-from-database
object-name="<object-name>"
object-type="<object-category>"/>
Lub
<refresh-from-database>
<metabase-object object-name="<object-name>"/>
</refresh-from-database>
Polecenia pliku do generowania skryptu
Polecenia generowania skryptów wykonują zadania podwójne: które pomagają zapisywać dane wyjściowe konsoli w pliku skryptu, oraz zapisują dane wyjściowe języka T-SQL w konsoli lub w pliku według określonego parametru.
polecenie
save-as-script
: zapisz skrypty obiektów w pliku wymienionym podczas metabase=target
. Jest to alternatywa dla polecenia synchronizacji, w którym pobieramy skrypty i wykonujemy to samo w docelowej bazie danych.
Skrypt
Wymaga jednego lub więcej węzłów metabazy jako parametru wiersza polecenia.
object-name:
Określa obiekty, których skrypty mają być zapisywane. (Może mieć nazwy poszczególnych obiektów lub nazwę obiektu grupy)object-type:
określa typ obiektu określonego w atrybucie object-name (jeśli określono kategorię obiektów, typ obiektu jestcategory
).metabase:
Określa, czy jest to metabaza źródłowa, czy docelowa.destination:
Określa ścieżkę lub folder, w którym należy zapisać skrypt, jeśli nazwa pliku nie jest podana, nazwa pliku w formacie (object_name wartość atrybutu).outoverwrite:
jeślitrue
to nadpisuje istniejący plik o tej samej nazwie. Może mieć wartości (prawda/fałsz).
przykład składni :
<save-as-script
metabase="<source/target>"
object-name="<object-name>"
object-type="<object-category>"
destination="<file/folder>"
overwrite="<true/false>" (optional)
/>
Lub
<save-as-script
metabase="<source/target>"
destination="<file/folder>"
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</save-as-script>
poleceń
convert-sql-statement
context
określa nazwę schematu.destination
określa, czy dane wyjściowe powinny być przechowywane w pliku.Jeśli ten atrybut nie zostanie określony, w konsoli zostanie wyświetlona przekonwertowana instrukcja T-SQL. (opcjonalny atrybut)
conversion-report-folder
określa folder, w którym można przechowywać raport oceny. (opcjonalny atrybut)conversion-report-overwrite
określa, czy zastąpić folder raportu oceny, jeśli już istnieje.wartość domyślna: false. (opcjonalny atrybut)
write-converted-sql-to
określa ścieżkę pliku (lub) folderu, w którym ma być przechowywany przekonwertowany język T-SQL. Po określeniu ścieżki folderu wraz z atrybutemsql-files
każdy plik źródłowy ma odpowiedni docelowy plik T-SQL utworzony w określonym folderze. Po określeniu ścieżki folderu wraz z atrybutemsql
przekonwertowany język T-SQL jest zapisywany w pliku o nazwieResult.out
w określonym folderze.sql
określa instrukcje DB2 SQL do przekonwertowania, co najmniej jedna instrukcja może być oddzielona za pomocą ";"sql-files
określa ścieżkę plików SQL, które należy przekonwertować na kod T-SQL.write-summary-report-to
określa ścieżkę, w której jest generowany raport. Jeśli zostanie wymieniona tylko ścieżka folderu, zostanie utworzony plik według nazwyConvertSQLReport.xml
. (opcjonalny atrybut)Tworzenie raportu ma dwie kolejne podkategorie:
-
report-errors
:true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne) -
verbose
:true
lubfalse
z wartością domyślnąfalse
(atrybuty opcjonalne)
-
skrypt
Wymaga jednego lub kilku węzłów metabazy jako parametru wiersza polecenia.
przykład składni :
<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>
Lub
<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" />
Lub
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
sql-files="<folder-name>\*.sql" />