Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Document Database Service/ Guía del usuario/ Migrar datos/ Migración de datos mediante mongoexport y mongoimport
Actualización más reciente 2023-02-21 GMT+08:00

Migración de datos mediante mongoexport y mongoimport

mongoexport y mongoimport son herramientas de copia de respaldo y restauración proporcionadas por el cliente MongoDB. Puede instalar un cliente MongoDB en el dispositivo local o ECS y utilizar las herramientas mongoexport y mongoimport para migrar sus bases de datos MongoDB locales u otras bases de datos MongoDB en la nube a instancias DDS.

Antes de migrar datos de una base de datos MongoDB a DDS, transfiera datos al archivo a.json usando la herramienta mongoexport. Esta sección describe cómo importar los datos de los archivos JSON a DDS utilizando la herramienta mongoimport en el ECS o desde otros dispositivos que pueden acceder a DDS.

Precauciones

  • Las herramientas mongoexport y mongoimport solo admiten la migración completa. Para garantizar la coherencia de los datos, detenga los servicios en la base de datos de origen y deje de escribir datos en la base de datos de origen antes de la migración.
  • Se recomienda que realice la migración durante las horas fuera de pico para evitar afectar a los servicios.
  • No se pueden migrar las bases de datos del sistema local y del admin.
  • Asegúrese de que no se ha creado ningún conjunto de servicios en el admin de bases de datos del sistema y local en la base de datos de origen. Si ya hay un conjunto de servicios, migrarlos fuera de las bases de datos del sistema admin y local antes de la migración.
  • Antes de importar datos, asegúrese de que los índices necesarios estén presentes en la base de datos de origen. Elimine los índices innecesarios y cree los índices necesarios antes de la migración.
  • Si elige migrar un clúster con fragmentos, debe crear un conjunto de fragmentos en la base de datos de destino y configurar el sharding. Además, los índices deben crearse antes de la migración.

Prerrequisitos

  1. Un ECS o un dispositivo que puede acceder a DDS está listo para su uso.
    • Para conectarse a una instancia de base de datos DDS a través de una red privada desde un ECS, cree e inicie sesión en el ECS. Para obtener más información, consulte Comprar un ECS e iniciar sesión en un ECS
    • Para enlazar un EIP a una instancia de base de datos:
      1. Enlaza un EIP a un nodo de la instancia. Para obtener más información sobre cómo vincular un EIP a un nodo, consulte "Unir un EIP" en Tareas iniciales con Document Database Service.
      2. Asegúrese de que su dispositivo local pueda acceder al EIP que se ha vinculado a la instancia de base de datos.
  2. Se ha instalado una herramienta de migración en el ECS preparado.

    Para obtener más información sobre cómo instalar la herramienta de migración, consulte ¿Cómo puedo instalar un cliente MongoDB?

    El cliente MongoDB proporciona las herramientas mongoexport y mongoimport.

Exportación de datos

  1. Inicie sesión en el ECS o en el dispositivo que puede acceder a DDS.
  2. Utilice la herramienta mongoexport para transferir datos de la base de datos de origen al archivo a.json.

    La conexión SSL se utiliza como ejemplo. Si selecciona una conexión común, elimine ----ssl --sslAllowInvalidCertificates del siguiente comando.

    ./mongoexport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --out <DB_PATH>

    • DB_ADDRESS es la dirección de la base de datos.
    • DB_PORT es el puerto de la base de datos.
    • AUTH_DB es la base de datos para almacenar información DB_USER. Generalmente, este valor es admin.
    • DB_USER es el usuario de la base de datos.
    • DB_NAME es el nombre de la base de datos desde la que se exportarán los datos.
    • DB_COLLECTION es la recopilación de la base de datos desde la que se exportarán los datos.
    • DB_PATH es la ruta donde se encuentra el archivo.json.

    Introduzca la contraseña del administrador de la base de datos cuando se le solicite:

    Enter password:

    Lo siguiente es un ejemplo. Después de ejecutar el comando, se generará el archivo exportfile.json:

    ./mongoexport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --out /tmp/mongodb/export/exportfile.json

  3. Ver los resultados

    Si se muestra información similar a la siguiente, los datos se han exportado correctamente. x es el número de registros de datos exportados.

    exported x records

  4. Comprima el archivo exportado.json.

    gzip exportfile.json

    La compresión del archivo ayuda a reducir el tiempo necesario para transmitir los datos. El archivo comprimido es exportfile.json.gz.

Importar datos

  1. Inicie sesión en el ECS o en el dispositivo que utilizará para acceder a DDS.
  2. Cargue los datos que se van a importar al ECS o al dispositivo.

    Seleccione un método de carga basado en el sistema operativo que está utilizando.

    • En Linux, por ejemplo, puede usar el protocolo de copia segura (SCP):

      scp <IDENTITY_FILE> <REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>

      • IDENTITY_FILE es el directorio donde se encuentra el archivo exportfile.json.gz. El permiso de acceso al archivo es 600.
      • REMOTE_USER es el usuario del sistema operativo ECS.
      • REMOTE_ADDRESS es la dirección ECS.
      • REMOTE_DIR es el directorio del ECS al que se carga el archivo exportfile.json.gz.
    • En Windows, cargue exportfile.json.gz al ECS mediante herramientas de transferencia de archivos.

  3. Descomprima el paquete.

    gzip -d exportfile.json.gz

  4. Importe el archivo JSON a la base de datos DDS.

    La conexión SSL se utiliza como ejemplo. Si selecciona una conexión común, elimine --ssl --sslAllowInvalidCertificates del siguiente comando.

    ./mongoimport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --file <DB_PATH>

    • DB_ADDRESS indica la dirección IP de la instancia de base de datos.
    • DB_PORT indica el puerto de la base de datos.
    • AUTH_DB indica la base de datos que autentica DB_USER. Generalmente, este valor es admin.
    • DB_USER indica el nombre de cuenta del administrador de la base de datos.
    • DB_NAME indica el nombre de la base de datos a la que se importarán los datos.
    • DB_COLLECTION indica la recopilación de la base de datos a la que se importarán los datos.
    • DB_PATH indica la ruta donde se encuentra el archivo.json.

    Introduzca la contraseña del administrador de la base de datos cuando se le solicite:

    Enter password:

    A continuación se presenta un ejemplo:

    ./mongoimport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --file /tmp/mongodb/export/exportfile.json

  5. Ver los resultados.

    Si se muestra información similar a la siguiente, los datos se han importado correctamente. x es el número de registros de datos importados.

    imported x records