Exportar una base de datos MySQL usando mysqldump

Puede ejecutar la utilidad mysqldump directamente en su base de datos MySQL, utilizando las opciones que necesite. Sin embargo, si estás exportando para importar los datos a una base de datos de Cloud SQL, usa la utilidad mysqldump con las siguientes opciones:

  • --databases Especifica una lista explícita de bases de datos para exportar. Esta lista no debe contener las bases de datos del sistema ( sys , mysql , performance_schema e information_schema ).
  • --hex-blob Si su base de datos contiene campos binarios, debe usar este indicador para asegurarse de que sus campos binarios se importen correctamente.
  • --single-transaction Inicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto permite a mysqldump leer la base de datos en el estado actual, lo que genera un volcado de datos consistente.
  • --routines Para incluir procedimientos y funciones almacenados.
  • Cuando se utiliza mysqldump versión 8 o posterior para exportar versiones de bases de datos MySQL anteriores a la 8 :
    --column-statistics=0

    Esta marca elimina la tabla COLUMN_STATISTICS de la exportación de la base de datos para evitar la Unknown table 'COLUMN_STATISTICS' in information_schema (1109) . Para obtener más información, consulte Diagnosticar problemas .

También se recomienda utilizar las siguientes banderas:

  • --no-autocommit
  • --default-character-set=utf8mb4
  • --master-data

Desde una máquina con conectividad de red a su servidor MySQL, ejecute el siguiente comando:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --master-data=1  \
        --single-transaction \
        --routines \
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Si el origen de la migración es un servicio de base de datos relacional (RDS) para MySQL:

  • La propiedad master-data no es compatible.
  • Si su servidor de base de datos de origen admite GTID, utilice la propiedad --set-gtid-purged=on ; de lo contrario, no utilice esta propiedad.
  • Si está utilizando un volcado manual para migrar sus datos, realice la migración con GTID habilitado.

Este comando podría parecerse al siguiente ejemplo:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob  \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --set-gtid-purged=on \
        --single-transaction \
        --routines \ 
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Además, debe configurar instancias de RDS para conservar los binlogs por más tiempo. Este comando podría parecerse al siguiente ejemplo:

    # Sets the retention period to one week.
    call mysql.rds_set_configuration('binlog retention hours', 168);

Reemplace [PROPERTIES_IN_BRACKETS] con los siguientes valores:

Propiedad Valor
[SOURCE_ADDR] La dirección IPv4 o el nombre de host del servidor de la base de datos de origen.
[SOURCE_PORT] El puerto para el servidor de la base de datos de origen.
[USERNAME] La cuenta de usuario de MySQL.
[DBS] Una lista separada por espacios de las bases de datos del servidor de bases de datos de origen que se incluirán en el volcado. Utilice el comando SHOW DATABASES MySQL para enumerar sus bases de datos.
[BUCKET_NAME] El depósito en Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket ).
[DUMP_FILENAME] El nombre de archivo del volcado, que termina con una extensión de archivo .gz (por ejemplo, source-database.sql.gz ).
,

Puede ejecutar la utilidad mysqldump directamente en su base de datos MySQL, utilizando las opciones que necesite. Sin embargo, si estás exportando para importar los datos a una base de datos de Cloud SQL, usa la utilidad mysqldump con las siguientes opciones:

  • --databases Especifica una lista explícita de bases de datos para exportar. Esta lista no debe contener las bases de datos del sistema ( sys , mysql , performance_schema e information_schema ).
  • --hex-blob Si su base de datos contiene campos binarios, debe usar este indicador para asegurarse de que sus campos binarios se importen correctamente.
  • --single-transaction Inicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto permite a mysqldump leer la base de datos en el estado actual, lo que genera un volcado de datos consistente.
  • --routines Para incluir procedimientos y funciones almacenados.
  • Cuando se utiliza mysqldump versión 8 o posterior para exportar versiones de bases de datos MySQL anteriores a la 8 :
    --column-statistics=0

    Esta marca elimina la tabla COLUMN_STATISTICS de la exportación de la base de datos para evitar la Unknown table 'COLUMN_STATISTICS' in information_schema (1109) . Para obtener más información, consulte Diagnosticar problemas .

También se recomienda utilizar las siguientes banderas:

  • --no-autocommit
  • --default-character-set=utf8mb4
  • --master-data

Desde una máquina con conectividad de red a su servidor MySQL, ejecute el siguiente comando:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --master-data=1  \
        --single-transaction \
        --routines \
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Si el origen de la migración es un servicio de base de datos relacional (RDS) para MySQL:

  • La propiedad master-data no es compatible.
  • Si su servidor de base de datos de origen admite GTID, utilice la propiedad --set-gtid-purged=on ; de lo contrario, no utilice esta propiedad.
  • Si está utilizando un volcado manual para migrar sus datos, realice la migración con GTID habilitado.

Este comando podría parecerse al siguiente ejemplo:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob  \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --set-gtid-purged=on \
        --single-transaction \
        --routines \ 
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Además, debe configurar instancias de RDS para conservar los binlogs por más tiempo. Este comando podría parecerse al siguiente ejemplo:

    # Sets the retention period to one week.
    call mysql.rds_set_configuration('binlog retention hours', 168);

Reemplace [PROPERTIES_IN_BRACKETS] con los siguientes valores:

Propiedad Valor
[SOURCE_ADDR] La dirección IPv4 o el nombre de host del servidor de la base de datos de origen.
[SOURCE_PORT] El puerto para el servidor de la base de datos de origen.
[USERNAME] La cuenta de usuario de MySQL.
[DBS] Una lista separada por espacios de las bases de datos del servidor de bases de datos de origen que se incluirán en el volcado. Utilice el comando SHOW DATABASES MySQL para enumerar sus bases de datos.
[BUCKET_NAME] El depósito en Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket ).
[DUMP_FILENAME] El nombre de archivo del volcado, que termina con una extensión de archivo .gz (por ejemplo, source-database.sql.gz ).
,

Puede ejecutar la utilidad mysqldump directamente en su base de datos MySQL, utilizando las opciones que necesite. Sin embargo, si estás exportando para importar los datos a una base de datos de Cloud SQL, usa la utilidad mysqldump con las siguientes opciones:

  • --databases Especifica una lista explícita de bases de datos para exportar. Esta lista no debe contener las bases de datos del sistema ( sys , mysql , performance_schema e information_schema ).
  • --hex-blob Si su base de datos contiene campos binarios, debe usar este indicador para asegurarse de que sus campos binarios se importen correctamente.
  • --single-transaction Inicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto permite a mysqldump leer la base de datos en el estado actual, lo que genera un volcado de datos consistente.
  • --routines Para incluir procedimientos y funciones almacenados.
  • Cuando se utiliza mysqldump versión 8 o posterior para exportar versiones de bases de datos MySQL anteriores a la 8 :
    --column-statistics=0

    Esta marca elimina la tabla COLUMN_STATISTICS de la exportación de la base de datos para evitar la Unknown table 'COLUMN_STATISTICS' in information_schema (1109) . Para obtener más información, consulte Diagnosticar problemas .

También se recomienda utilizar las siguientes banderas:

  • --no-autocommit
  • --default-character-set=utf8mb4
  • --master-data

Desde una máquina con conectividad de red a su servidor MySQL, ejecute el siguiente comando:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --master-data=1  \
        --single-transaction \
        --routines \
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Si el origen de la migración es un servicio de base de datos relacional (RDS) para MySQL:

  • La propiedad master-data no es compatible.
  • Si su servidor de base de datos de origen admite GTID, utilice la propiedad --set-gtid-purged=on ; de lo contrario, no utilice esta propiedad.
  • Si está utilizando un volcado manual para migrar sus datos, realice la migración con GTID habilitado.

Este comando podría parecerse al siguiente ejemplo:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob  \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --set-gtid-purged=on \
        --single-transaction \
        --routines \ 
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Además, debe configurar instancias de RDS para conservar los binlogs por más tiempo. Este comando podría parecerse al siguiente ejemplo:

    # Sets the retention period to one week.
    call mysql.rds_set_configuration('binlog retention hours', 168);

Reemplace [PROPERTIES_IN_BRACKETS] con los siguientes valores:

Propiedad Valor
[SOURCE_ADDR] La dirección IPv4 o el nombre de host del servidor de la base de datos de origen.
[SOURCE_PORT] El puerto para el servidor de la base de datos de origen.
[USERNAME] La cuenta de usuario de MySQL.
[DBS] Una lista separada por espacios de las bases de datos del servidor de bases de datos de origen que se incluirán en el volcado. Utilice el comando SHOW DATABASES MySQL para enumerar sus bases de datos.
[BUCKET_NAME] El depósito en Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket ).
[DUMP_FILENAME] El nombre de archivo del volcado, que termina con una extensión de archivo .gz (por ejemplo, source-database.sql.gz ).
,

Puede ejecutar la utilidad mysqldump directamente en su base de datos MySQL, utilizando las opciones que necesite. Sin embargo, si estás exportando para importar los datos a una base de datos de Cloud SQL, usa la utilidad mysqldump con las siguientes opciones:

  • --databases Especifica una lista explícita de bases de datos para exportar. Esta lista no debe contener las bases de datos del sistema ( sys , mysql , performance_schema e information_schema ).
  • --hex-blob Si su base de datos contiene campos binarios, debe usar este indicador para asegurarse de que sus campos binarios se importen correctamente.
  • --single-transaction Inicia una transacción antes de ejecutarla. En lugar de bloquear toda la base de datos, esto permite a mysqldump leer la base de datos en el estado actual, lo que genera un volcado de datos consistente.
  • --routines Para incluir procedimientos y funciones almacenados.
  • Cuando se utiliza mysqldump versión 8 o posterior para exportar versiones de bases de datos MySQL anteriores a la 8 :
    --column-statistics=0

    Esta marca elimina la tabla COLUMN_STATISTICS de la exportación de la base de datos para evitar la Unknown table 'COLUMN_STATISTICS' in information_schema (1109) . Para obtener más información, consulte Diagnosticar problemas .

También se recomienda utilizar las siguientes banderas:

  • --no-autocommit
  • --default-character-set=utf8mb4
  • --master-data

Desde una máquina con conectividad de red a su servidor MySQL, ejecute el siguiente comando:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --master-data=1  \
        --single-transaction \
        --routines \
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Si el origen de la migración es un servicio de base de datos relacional (RDS) para MySQL:

  • La propiedad master-data no es compatible.
  • Si su servidor de base de datos de origen admite GTID, utilice la propiedad --set-gtid-purged=on ; de lo contrario, no utilice esta propiedad.
  • Si está utilizando un volcado manual para migrar sus datos, realice la migración con GTID habilitado.

Este comando podría parecerse al siguiente ejemplo:

    mysqldump \
        -h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
        --databases [DBS]  \
        --hex-blob  \
        --no-autocommit \
        --default-character-set=utf8mb4 \
        --set-gtid-purged=on \
        --single-transaction \
        --routines \ 
        | gzip \
        | gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz

Además, debe configurar instancias de RDS para conservar los binlogs por más tiempo. Este comando podría parecerse al siguiente ejemplo:

    # Sets the retention period to one week.
    call mysql.rds_set_configuration('binlog retention hours', 168);

Reemplace [PROPERTIES_IN_BRACKETS] con los siguientes valores:

Propiedad Valor
[SOURCE_ADDR] La dirección IPv4 o el nombre de host del servidor de la base de datos de origen.
[SOURCE_PORT] El puerto para el servidor de la base de datos de origen.
[USERNAME] La cuenta de usuario de MySQL.
[DBS] Una lista separada por espacios de las bases de datos del servidor de bases de datos de origen que se incluirán en el volcado. Utilice el comando SHOW DATABASES MySQL para enumerar sus bases de datos.
[BUCKET_NAME] El depósito en Cloud Storage que crea el usuario y que se usa para almacenar el archivo de volcado (por ejemplo, replica-bucket ).
[DUMP_FILENAME] El nombre de archivo del volcado, que termina con una extensión de archivo .gz (por ejemplo, source-database.sql.gz ).