Compartir a través de


Creación de archivos de script (MySQLToSQL)

El primer paso antes de iniciar la aplicación de consola SSMA es crear el archivo de script y, si es necesario, crear el archivo de valor variable y el archivo de conexión del servidor.

El archivo de script se puede dividir en tres secciones, viz..,:

  1. config: Permite al usuario establecer los parámetros de configuración para la aplicación de consola.

  2. Servidores: Permite al usuario establecer las definiciones de servidor de origen o destino. Esto también puede estar en un archivo de conexión de servidor independiente.

  3. script-commands: Permite al usuario ejecutar comandos de flujo de trabajo de SSMA.

Cada sección se describe en detalle a continuación:

Configuración de las opciones de la consola de MySQL

Las configuraciones de un script se muestran en el archivo de script de consola.

Si se especifica cualquiera de los elementos en el nodo de configuración, se establecen como la configuración global, es decir, son aplicables a todos los comandos de script. Estos elementos de configuración también se pueden establecer dentro de cada comando de la sección script-command si el usuario quiere invalidar la configuración global.

Las opciones configurables por el usuario incluyen:

  1. Proveedor de ventana de salida: Si el atributo suppress-messages se establece en "true", los mensajes específicos del comando no se muestran en la consola. A continuación se muestra la descripción de los atributos:

    • destination: especifica si la salida debe imprimirse en un archivo o stdout. Esto es false de forma predeterminada.

    • file-name: la ruta de acceso del archivo (opcional).

    • suppress-messages: suprime los mensajes en la consola. Esto es "false" de forma predeterminada.

    Ejemplo:

    <output-providers>  
    
      <output-window  
    
        suppress-messages="<true/false>"   (optional)  
    
        destination="<file/stdout>"        (optional)  
    
        file-name="<file-name>"            (optional)  
    
       />  
    
    </output-providers>  
    

    o

    <...All commands...>  
    
      <output-window  
    
         suppress-messages="<true/false>"   (optional)  
    
         destination="<file/stdout>"        (optional)  
    
         file-name="<file-name>"            (optional)  
    
       />  
    
    </...All commands...>  
    
  2. Proveedor de conexión de migración de datos: Esto especifica qué servidor de origen o destino se debe tener en cuenta para la migración de datos. Source-use-last-used indica que el último servidor de origen usado se usa para la migración de datos. Del mismo modo, target-use-last-used indica que se usa el último servidor de destino usado para la migración de datos. El usuario también puede especificar el servidor (origen o destino) mediante los atributos source-server o target-server.

    Solo se puede usar uno o el otro atributo especificado, es decir:

    • source-use-last-used="true" (valor predeterminado) o source-server="source_servername"

    • target-use-last-used="true" (valor predeterminado) o target-server="target_servername"

    Ejemplo:

    <output-providers>  
    
      <data-migration-connection  source-use-last-used="true"  
    
                                  target-server="<target-server-unique-name>"/>  
    
    </output-providers>  
    

    o

    <migrate-data>  
    
      <data-migration-connection   source-server="<source-server-unique-name>"  
    
                                   target-use-last-used="true"/>  
    
    </migrate-data>  
    
  3. Ventana emergente de entrada de usuario: Esto permite gestionar los errores cuando los objetos se cargan desde la base de datos. El usuario proporciona los modos de entrada y, en caso de error, la consola continúa como especifica el usuario.

    Los modos incluyen:

    • ask-user: Pide al usuario que continúe ("sí") o que se produzca un error ("no").

    • error- La consola muestra un error y detiene la ejecución.

    • continuar- La consola continúa con la ejecución.

    El modo predeterminado es error.

    Ejemplo:

    <output-providers>  
    
      <user-input-popup mode="<ask-user/continue/error>"/>  
    
    </output-providers>  
    

    o

    <!-- Connect to target database -->  
    
    <connect-target-database server="<target-server-unique-name>">  
    
      <user-input-popup mode="<ask-user/continue/error>"/>  
    
    </connect-target-database>  
    
  4. Proveedor de reconexión: Esto permite al usuario establecer la configuración de reconexión en caso de errores de conexión. Esto se puede establecer tanto para los servidores de origen como para los de destino.

    Los modos de reconexión son:

    • reconexión al último servidor usado: si la conexión no está activa, intenta volver a conectarse al último servidor usado como máximo 5 veces.

    • generate-an-error: si la conexión no está activa, se genera un error.

    El modo predeterminado es generate-an-error.

    Ejemplo:

    <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>  
    

    o

    <!--synchronization-->  
    
    <synchronize-target>  
    
      <reconnect-manager on-target-reconnect="reconnect-to-last-used-server"/>  
    
    </synchronize-target>  
    

    o

    <!--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>  
    
  5. Proveedor de sobrescritura del convertidor: Esto permite al usuario controlar los objetos que ya están presentes en la metabase de destino. Entre las posibles acciones se incluyen:

    • error: la consola muestra un error y detiene la ejecución.

    • sobrescribir: Sobrescribe los valores de los objetos existentes. Esta acción se realiza de forma predeterminada.

    • skip: la consola omite los objetos que ya existen en la base de datos.

    • ask-user: solicita al usuario que escriba ("sí" / "no")

    Ejemplo:

    <output-providers>  
    
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>  
    
    </output-providers>  
    

    o

    <convert-schema object-name="<object-name>">  
    
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>  
    
    </convert-schema>  
    
  6. Proveedor de gestión de requisitos previos fallidos: Esto permite al usuario gestionar cualquier requisito previo necesario para procesar un comando. De forma predeterminada, el modo estricto es "false". Si se establece en "true", se genera una excepción por no cumplir con los requisitos previos.

    Ejemplo:

    <output-providers>  
    
      <prerequisites strict-mode="<true/false>"/>  
    
    </output-providers>  
    
  7. Operación de detención: Durante la operación intermedia, si el usuario quiere detener la operación, se puede usar la tecla de acceso rápido "Ctrl+C ". SSMA para la consola de MySQL esperará a que se complete la operación y finalice la ejecución de la consola.

    Si el usuario quiere detener la ejecución inmediatamente, se puede presionar de nuevo la tecla de acceso rápido "Ctrl+C" para la terminación abrupta de la aplicación de consola de SSMA.

  8. Proveedor de progreso: Informa al progreso de cada comando de consola. Esta opción está deshabilitada de manera predeterminada. Los atributos de informes de progreso comprenden:

    • desactivado

    • cada 1%

    • cada 2%

    • cada 5%

    • cada 10%

    • cada 20%

    Ejemplo:

    <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>  
    

    o

    <...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...>  
    
  9. Verbosidad del registro: Establece el nivel de verbosidad del registro. Esto corresponde a la opción Todas las categorías de la interfaz de usuario. De forma predeterminada, el nivel de verbosidad del registro es "error".

    Las opciones de nivel del registrador incluyen:

    • fatal-error: solo se registran los mensajes de fatal-error.

    • error: solo se registran los mensajes de error y de error crítico.

    • advertencia: todos los niveles excepto los mensajes de depuración e información son registrados.

    • info: Se registran todos los niveles excepto los mensajes de depuración.

    • Depuración: Todos los niveles de mensajes registrados.

    Nota:

    Los mensajes obligatorios se registran en cualquier nivel.

    Ejemplo:

    <output-providers>  
    
      <log-verbosity level="<fatal-error/error/warning/info/debug>"/>  
    
    </output-providers>  
    

    o

    <...All commands...>  
    
      <log-verbosity level="<fatal-error/error/warning/info/debug>"/>  
    
    </...All commands...>  
    
  10. Invalidar contraseña cifrada: Si es "true", la contraseña de texto no cifrado especificada en la sección definición del servidor del archivo de conexión del servidor o en el archivo de script invalida la contraseña cifrada almacenada en el almacenamiento protegido si existe. Si no se especifica ninguna contraseña en texto no cifrado, se le pedirá al usuario que escriba la contraseña.

    Aquí surgen dos casos:

    1. Si la opción de invalidación es false, el orden de búsqueda será Almacenamiento protegido-Archivo de script>-Archivo de conexión del servidor>-Solicitar al usuario.

    2. Si la opción de anulación es true, el orden de búsqueda será Archivo de Script - Archivo de Conexión del Servidor - Solicitar al Usuario.

    Ejemplo:

    <output-providers>  
    
      <encrypted-password override="<true/false>"/>  
    
    </output-providers>  
    

La opción no configurable es:

  • Número máximo de intentos de reconexión: Cuando se agota el tiempo de espera o se interrumpe una conexión establecida debido a un error de red, es necesario volver a conectar el servidor. Los intentos de reconexión pueden tener un máximo de 5 reintentos después de lo cual la consola realiza automáticamente la reconexión. La funcionalidad de reconexión automática reduce el esfuerzo de volver a ejecutar el script.

Parámetros de conexión del servidor

Los parámetros de conexión del servidor se pueden definir en el archivo de script o en el archivo de conexión del servidor. Consulte la sección Creación de archivos de conexión de servidor (MySQLToSQL) para obtener más detalles.

Comandos de script

El archivo de script contiene una secuencia de comandos de flujo de trabajo de migración en formato XML. La aplicación de consola SSMA procesa la migración en el orden de los comandos que aparecen en el archivo de script.

Por ejemplo, una migración de datos típica de una tabla específica en una base de datos MySQL sigue la jerarquía de: Database -> Table.

Cuando todos los comandos del archivo de script se ejecutan correctamente, la aplicación de consola SSMA sale y devuelve el control al usuario. El contenido de un archivo de script es más o menos estático, con la información de variables contenida en un Archivo de Valores de Variables o en una sección independiente dentro del archivo de script para los valores de variables.

Ejemplo:

<!--Sample of script file commands -->  
  
<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>  

Las plantillas que constan de 3 archivos de script (para ejecutar varios escenarios), un archivo de valor variable y un archivo de conexión de servidor se proporcionan en la carpeta Scripts de consola de ejemplo del directorio del producto:

  • AssessmentReportGenerationSample.xml

  • ConversionAndDataMigrationSample.xml

  • SqlStatementConversionSample.xml

  • VariableValueFileSample.xml

  • ServersConnectionFileSample.xml

Puede ejecutar las plantillas (archivos) después de cambiar los parámetros que se muestran en él por relevancia.

Puede encontrar una lista completa de comandos de script en Ejecución de la consola SSMA (MySQLToSQL)

Validación de archivos de script

El usuario puede validar fácilmente su archivo de script en el archivo de definición de esquema "M2SSConsoleScriptSchema.xsd" disponible en la carpeta "Schemas".

Paso siguiente

El siguiente paso en el funcionamiento de la consola es Crear archivos de valor de variable (MySQLToSQL).

Véase también

Crear archivos de valores variables (MySQLToSQL)