Executar o console do SSMA (Db2ToSQL)
A Microsoft fornece um conjunto robusto de comandos de arquivo de script para executar e controlar as atividades do SSMA (Assistente de Migração do SQL Server). As seções a seguir detalham o mesmo. O aplicativo de console usa determinados comandos de arquivo de script padrão, conforme enumerado nesta seção.
Comandos do arquivo de script do projeto
Os comandos Project lidam com a criação de projetos, abertura, salvamento e saída de projetos.
Comando
create-new-project
: Cria um novo projeto do SSMA.
Script
project-folder
indica a pasta do projeto que está sendo criado.project-name
indica o nome do projeto. {string}overwrite-if-exists
O atributo opcional indica se um projeto existente deve ser substituído. {booleano}Atributo opcional
project-type:
. Indica o tipo de projeto. Por exemplo,sql-server-2019
ousql-azure
. O padrão ésql-server-2016
.
Exemplo:
<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)
/>
O atributo overwrite-if-exists
é false
por padrão.
O atributo project-type
é sql-server-2016
por padrão.
Comando
open-project
: Abre um projeto existente.
Script
project-folder
indica a pasta do projeto que está sendo criado. O comando falhará se a pasta especificada não existir. {string}project-name
indica o nome do projeto. O comando falhará se o projeto especificado não existir. {string}
Exemplo de sintaxe:
<open-project
project-folder="<project-folder>"
project-name="<project-name>"
/>
O SSMA para Aplicativo de Console Db2 dá suporte à compatibilidade com versões anteriores. Você pode abrir projetos criados pela versão anterior do SSMA.
Comando
save-project
: Salva o projeto de migração.
Exemplo de sintaxe:
<save-project/>
Comando
close-project
: Fecha o projeto de migração.
Exemplo de sintaxe:
<close-project
if-modified="<save/error/ignore>" (optional)
/>
Comandos do arquivo de script de conexão do banco de dados
Os comandos Conexão de Banco de Dados ajudam na conexão ao banco de dados.
O recurso Procurar da interface do usuário não é suportado no console.
Para obter mais informações, consulte Criar arquivos de script.
Comando
connect-source-database
Executa a conexão com o banco de dados de origem e carrega metadados de alto nível do banco de dados de origem, mas não todos os metadados.
Se a conexão com a origem não puder ser estabelecida, será gerado um erro e o aplicativo de console interromperá a execução adicional
Script
A definição do servidor é recuperada do atributo name definido para cada conexão na seção servidor do arquivo de conexão do servidor ou do arquivo de script.
Exemplo de sintaxe:
<connect-source-database server="<server-unique-name>"/>
Comando
force-load-source-database
/force-load-target-database
Carrega os metadados de origem.
Útil para trabalhar offline em projetos de migração.
Se a conexão com a origem/destino não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução adicional
Script
Requer um ou vários nós de metabase como parâmetro de linha de comando.
Exemplo de sintaxe:
<force-load object-name="<object-name>"
metabase="<source/target>"/>
Ou
<force-load>
<metabase-object object-name="<object-name>"/>
</force-load>
Comando
reconnect-source-database
Reconecta-se ao banco de dados de origem, mas não carrega nenhum metadado, ao contrário do comando connect-source-database.
Se a (re)conexão com a origem não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução.
Exemplo de sintaxe:
<reconnect-source-database server="<server-unique-name>"/>
Comando
connect-target-database
Conecta-se ao banco de dados do SQL Server de destino e carrega metadados de alto nível do banco de dados de destino, mas não todos os metadados.
Se a conexão com o destino não puder ser estabelecida, será gerado um erro e o aplicativo de console interromperá a execução adicional.
Script
A definição do servidor é recuperada do atributo name definido para cada conexão na seção servidor do arquivo de conexão do servidor ou do arquivo de script
Exemplo de sintaxe:
<connect-target-database server="<server-unique-name>"/>
Comando
reconnect-target-database
Reconecta-se ao banco de dados de destino, mas não carrega nenhum metadado, ao contrário do comando connect-target-database.
Se a (re)conexão com o destino não puder ser estabelecida, um erro será gerado e o aplicativo de console interromperá a execução.
Exemplo de sintaxe:
<reconnect-target-database server="<server-unique-name>"/>
Comandos do arquivo de script de relatório
Os comandos Relatório geram relatórios sobre o desempenho de várias atividades do console do SSMA.
Comando
generate-assessment-report
Gera relatórios de avaliação sobre o banco de dados de origem.
Se a conexão do banco de dados de origem não for executada antes da execução desse comando, um erro será gerado e o aplicativo de console será encerrado.
A falha ao se conectar ao servidor de banco de dados de origem durante a execução do comando também resulta no encerramento do aplicativo de console.
Script
conversion-report-folder:
Especifica a pasta onde o relatório de avaliação pode ser armazenado. (atributo opcional)object-name:
Especifica os objetos considerados para geração de relatório de avaliação (pode ter nomes de objetos individuais ou um nome de objeto de grupo).object-type:
especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).conversion-report-overwrite:
especifica se a pasta do relatório de avaliação deve ser substituída, caso ela já exista.Valor padrão: falso. (atributo opcional)
write-summary-report-to:
Especifica o caminho em que o relatório de resumo é gerado.Se apenas for mencionado o caminho da pasta, um arquivo com o nome AssessmentReport<n>.XML será criado. (atributo opcional)
A criação de relatórios tem mais duas subcategorias:
report-errors
true
oufalse
, com padrão comofalse
(atributos opcionais)verbose
true
oufalse
, com padrão comofalse
(atributos opcionais)
Exemplo de sintaxe:
<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)
/>
Ou
<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>
Comandos do arquivo de script de migração
Os comandos Migração convertem o esquema do banco de dados de destino para o esquema de origem e migram dados para o servidor de destino. A configuração de saída do console padrão para os comandos de migração é o relatório de saída “Completo” sem relatório de erros detalhado: apenas com o resumo no nó raiz da árvore de objetos de origem.
Comando
convert-schema
Executa a conversão do esquema de origem para o esquema de destino.
Se a conexão de banco de dados de origem ou de destino não for executada antes da execução desse comando ou se a conexão com o servidor de banco de dados de origem ou de destino falhar durante a execução do comando, será gerado um erro e o aplicativo de console será encerrado.
Script
conversion-report-folder:
Especifica a pasta onde o relatório de avaliação pode ser armazenado. (atributo opcional)object-name:
Especifica os objetos de origem considerados para converter o esquema (pode ter nomes de objetos individuais ou um nome de objeto de grupo).object-type:
especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).conversion-report-overwrite:
especifica se a pasta do relatório de avaliação deve ser substituída, caso ela já exista.Valor padrão: falso. (atributo opcional)
write-summary-report-to:
Especifica o caminho em que o relatório de resumo é gerado.Se for mencionado apenas o caminho da pasta, um arquivo com o nome SchemaConversionReport<n>.XML será criado. (atributo opcional)
A criação de relatórios tem mais duas subcategorias:
report-errors
true
oufalse
, com padrão comofalse
(atributos opcionais)verbose
true
oufalse
, com padrão comofalse
(atributos opcionais)
Exemplo de sintaxe:
<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)
/>
Ou
<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>
Comando
migrate-data
: migra os dados de origem para o destino.
Script
conversion-report-folder:
Especifica a pasta onde o relatório de avaliação pode ser armazenado. (atributo opcional)object-name:
Especifica os objetos de origem considerados para migração de dados (pode ter nomes de objetos individuais ou um nome de objeto de grupo).object-type:
especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).conversion-report-overwrite:
especifica se a pasta do relatório de avaliação deve ser substituída, caso ela já exista.Valor padrão: falso. (atributo opcional)
write-summary-report-to:
Especifica o caminho em que o relatório de resumo é gerado.Se apenas o caminho da pasta for mencionado, o arquivo por nome
DataMigrationReport<n>.xml
será criado. (atributo opcional)A criação de relatórios tem mais duas subcategorias:
report-errors
true
oufalse
, com padrão comofalse
(atributos opcionais)verbose
true
oufalse
, com padrão comofalse
(atributos opcionais)
Exemplo de sintaxe:
<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>
Ou
<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>"/>
Comandos do arquivo de script de preparação de migração
O comando Preparação da Migração inicia o mapeamento de esquema entre os bancos de dados de origem e de destino.
Comando
map-schema
: Mapeamento de esquema do banco de dados de origem para o esquema de destino.
Script
source-schema
: Especifica o esquema de origem que pretendemos migrar.sql-server-schema
: Especifica o esquema de destino para o qual queremos que ele seja migrado.
Exemplo de sintaxe:
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
Comando
map-schema
: Mapeamento de esquema do banco de dados de origem para o esquema de destino.
Script
source-schema
especifica o esquema de origem que se pretende migrar.
sql-server-schema
especifica o esquema de destino para onde se deseja migrá-lo.
Exemplo de sintaxe:
<map-schema
source-schema="<source-schema>"
sql-server-schema="<target-schema>"/>
Comandos de arquivo de script de capacidade de gerenciamento
Os comandos da capacidade de gerenciamento ajudam a sincronizar os objetos de banco de dados de destino com o banco de dados de origem.
A configuração de saída do console padrão para os comandos de migração é o relatório de saída “Completo” sem relatório de erros detalhado: apenas com o resumo no nó raiz da árvore de objetos de origem.
Comando
synchronize-target
Sincroniza os objetos de destino com o banco de dados de destino.
Se esse comando for executado no banco de dados de origem, um erro será encontrado.
Se a conexão do banco de dados de destino não for executada antes da execução desse comando ou se a conexão com o servidor de banco de dados de destino falhar durante a execução do comando, um erro será gerado e o aplicativo de console será encerrado.
Script
object-name:
Especifica os objetos de destino considerados para sincronização com o banco de dados de destino (pode ter nomes de objetos individuais ou um nome de objeto de grupo).object-type:
especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).on-error:
especifica se os erros de sincronização devem ser especificados como avisos ou erros. Opções disponíveis para on-error:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
Especifica o local do relatório de erros para a operação de sincronização (atributo opcional)Se apenas o caminho da pasta for fornecido, o arquivo por nome
TargetSynchronizationReport.xml
será criado.
Exemplo de sintaxe:
<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)
/>
Ou
<synchronize-target
object-name="<object-name>"
object-type="<object-category>"/>
Ou
<synchronize-target>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
<metabase-object object-name="<object-name>"/>
</synchronize-target>
Comando
refresh-from-database
Atualiza os objetos de origem do banco de dados.
Se esse comando for executado no banco de dados de destino, um erro será gerado.
Script
Requer um ou vários nós de metabase como parâmetro de linha de comando.
object-name:
Especifica os objetos de origem considerados para atualização do banco de dados de origem (pode ter nomes de objetos individuais ou um nome de objeto de grupo).object-type:
Especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).on-error:
especifica se os erros de atualização devem ser especificados como avisos ou erros. Opções disponíveis para on-error:report-total-as-warning
report-each-as-warning
fail-script
report-errors-to:
Especifica o local do relatório de erros para a operação de atualização (atributo opcional) se apenas o caminho da pasta for fornecido, o arquivo por nomeSourceDBRefreshReport.xml
será criado.
Exemplo de sintaxe:
<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)
/>
Ou
<refresh-from-database
object-name="<object-name>"
object-type="<object-category>"/>
Ou
<refresh-from-database>
<metabase-object object-name="<object-name>"/>
</refresh-from-database>
Comandos de arquivo de script de geração de script
Os comandos de Geração de Script executam duas tarefas: ajudam a salvar a saída do console em um arquivo de script e registra a saída T-SQL no console ou em um arquivo com base no parâmetro especificado.
Comando
save-as-script
: Salve os scripts dos objetos em um arquivo mencionado quando metabase=target
. Esta é uma alternativa ao comando de sincronização em que obtemos os scripts e executamos os mesmos no banco de dados de destino.
Script
Requer um ou vários nós de metabase como parâmetro de linha de comando.
object-name:
Especifica os objetos cujos scripts devem ser salvos. (Pode ter nomes de objeto individuais ou um nome de objeto de grupo)object-type:
especifica o tipo do objeto especificado no atributo object-name (se a categoria do objeto for especificada, o tipo de objeto serácategory
).metabase:
Especifica se a metabase é de origem ou de destino.destination:
Especifica o caminho ou a pasta onde o script deve ser salvo, se o nome do arquivo não for fornecido, um nome de arquivo no formato (object_name valor do atributo).outoverwrite:
setrue
então ele substitui se o mesmo nome de arquivo existir. Pode ter os valores (verdadeiro/falso).
Exemplo de sintaxe:
<save-as-script
metabase="<source/target>"
object-name="<object-name>"
object-type="<object-category>"
destination="<file/folder>"
overwrite="<true/false>" (optional)
/>
Ou
<save-as-script
metabase="<source/target>"
destination="<file/folder>"
<metabase-object object-name="<object-name>"
object-type="<object-category>"/>
</save-as-script>
Comando
convert-sql-statement
context
especifica o nome do esquema.destination
especifica se a saída deve ser armazenada em um arquivo.Se esse atributo não for especificado, a instrução T-SQL convertida será exibida no console. (atributo opcional)
conversion-report-folder
Especifica a pasta onde o relatório de avaliação pode ser armazenado. (atributo opcional)conversion-report-overwrite
especifica se a pasta do relatório de avaliação deve ser substituída, caso ela já exista.Valor padrão: falso. (atributo opcional)
write-converted-sql-to
especifica o caminho do arquivo (ou) da pasta onde o T-SQL convertido deve ser armazenado. Quando um caminho de pasta é especificado junto com o atributosql-files
, cada arquivo de origem tem um arquivo T-SQL de destino correspondente criado na pasta especificada. Quando um caminho de pasta é especificado junto com osql
atributo, o T-SQL convertido é gravado em um arquivo nomeadoResult.out
na pasta especificada.sql
especifica as instruções SQL do Db2 a serem convertidas, uma ou mais instruções podem ser separadas usando um ";"sql-files
especifica o caminho dos arquivos SQL que devem ser convertidos em código T-SQL.write-summary-report-to
Especifica o caminho em que o relatório é gerado. Se apenas o caminho da pasta for mencionado, o arquivo por nomeConvertSQLReport.xml
será criado. (atributo opcional)A criação de relatórios tem mais duas subcategorias:
report-errors
:true
oufalse
, com padrão comofalse
(atributos opcionais)verbose
:true
oufalse
, com padrão comofalse
(atributos opcionais)
Script
Requer um ou vários nós de metabase como parâmetro de linha de comando.
Exemplo de sintaxe:
<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>
Ou
<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" />
Ou
<convert-sql-statement
context="<schema-name>"
conversion-report-folder="<folder-name>"
conversion-report-overwrite="<true/false>"
sql-files="<folder-name>\*.sql" />