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 mongodump y mongorestore
Actualización más reciente 2023-02-21 GMT+08:00

Migración de datos mediante mongodump y mongorestore

mongodump y mongorestore 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 usar las herramientas mongodump y mongorestore para migrar sus bases de datos MongoDB u otras bases de datos MongoDB en la nube a instancias DDS.

Precauciones

  • Las herramientas mongodump y mongorestore 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 administrador.
  • 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.
  • Si la copia de respaldo que utiliza la herramienta mongodump falla (por ejemplo, se informa de un error cuando el progreso de la copia de respaldo alcanza el 97%), se recomienda aumentar el espacio de almacenamiento de la VM y reservar algo de espacio redundante antes de realizar la copia de respaldo de nuevo.
  • El usuario rwuser solo puede operar tablas de base de datos de servicio. Se recomienda especificar bases de datos y tablas para importar y exportar solo datos de servicio. De lo contrario, el problema de permisos insuficientes puede ocurrir durante la importación y exportación completas.

Prerrequisitos

  1. Prepare un ECS o un dispositivo que pueda acceder a DDS.
    • Para conectarse a una instancia 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 en la instancia de base de datos. Para obtener más información sobre cómo vincular un EIP a un nodo, consulte "Unir un EIP" en el Tareas iniciales de 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?

    • Las herramientas mongodump y mongorestore son parte del paquete de instalación del cliente MongoDB.
    • La versión de cliente de MongoDB debe coincidir con la versión de instancia. De lo contrario, pueden producirse problemas de compatibilidad.

Exportación de datos

  1. Inicie sesión en el ECS o en el dispositivo que puede acceder a DDS.
  2. Haga una copia de respaldo de los datos de la base de datos de origen con la herramienta mongodump.

    En este ejemplo se utiliza una conexión SSL. Si selecciona una conexión sin cifrar, elimine --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates del siguiente comando.

    ./mongodump --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u <DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<Name of the backup file that contains the file path>

    Tabla 1 Descripción del parámetro

    Parámetro

    Descripción

    <DB_HOST>

    Dirección de la base de datos

    <DB_PORT>

    Puerto de base de datos

    <DB_USER>

    Nombre de usuario de base de datos

    <AUTH_DB>

    Base de datos que almacena información de <DB_USER>. Generalmente, el valor es admin.

    <FILE_PATH>

    Ruta de acceso para almacenar el certificado raíz

    <DB_NAME>

    Nombre de la base de datos que se va a migrar.

    <DB_COLLECTION>

    Recopilación en la base de datos que se va a migrar

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

    Enter password:

    Después de ejecutar el comando, el archivo especificado por archiving es el archivo de copia de respaldo final. El siguiente comando usa backup.tar.gz como ejemplo.

    ./mongodump --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz

    2019-03-04T18:42:10.687+0800    writing admin.system.users to
    2019-03-04T18:42:10.688+0800    done dumping admin.system.users (1 document)
    2019-03-04T18:42:10.688+0800    writing admin.system.roles to
    2019-03-04T18:42:10.690+0800    done dumping admin.system.roles (0 documents)
    2019-03-04T18:42:10.690+0800    writing admin.system.version to
    2019-03-04T18:42:10.691+0800    done dumping admin.system.version (2 documents)
    2019-03-04T18:42:10.691+0800    writing test.test_collection to
    2019-03-04T18:42:10.691+0800    writing admin.system.profile to
    2019-03-04T18:42:10.692+0800    done dumping admin.system.profile (4 documents)
    2019-03-04T18:42:10.695+0800    done dumping test.test_collection (198 documents)

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 -r <IDENTITY_DIR> <REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>

      Tabla 2 Descripción del parámetro

      Parámetro

      Descripción

      <IDENTITY_DIR>

      Directorio donde se encuentra la carpeta de copia de respaldo.

      <REMOTE_USER>

      Usuario de ECS OS en 1

      <REMOTE_ADDRESS>

      Dirección IP del ECS en 1

      <REMOTE_DIR>

      Directorio de los ECS a importar

    • En Windows, cargue el directorio de copia de respaldo en el ECS mediante una herramienta de transferencia de archivos.

  3. Importe los datos de copia de respaldo a DDS.

    En este ejemplo se utiliza una conexión SSL. Si utiliza una conexión sin cifrar, elimine--ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates del siguiente comando.

    ./mongorestore --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u<DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<Name of the backup file that contains the file path>

    Tabla 3 Descripción del parámetro

    Parámetro

    Descripción

    <DB_HOST>

    Dirección de base de datos DDS

    <DB_PORT>

    Puerto de base de datos

    <AUTH_DB>

    La base de datos que autentica DB_USER. Generalmente, el valor es admin.

    <DB_USER>

    Nombre de cuenta del administrador de la base de datos. El valor predeterminado es rwuser.

    <FILE_PATH>

    Ruta de acceso para almacenar el certificado raíz

    <DB_NAME>

    Nombre de la base de datos que se va a migrar.

    <DB_COLLECTION>

    Recopilación en la base de datos que se va a migrar

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

    Enter password:

    A continuación se presenta un ejemplo:

    ./mongorestore --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz

    2019-03-05T14:19:43.240+0800    preparing collections to restore from
    2019-03-05T14:19:43.243+0800    reading metadata for test.test_collection from dump/test/test_collection.metadata.json
    2019-03-05T14:19:43.263+0800    restoring test.test_collection from dump/test/test_collection.bson
    2019-03-05T14:19:43.271+0800    restoring indexes for collection test.test_collection from metadata
    2019-03-05T14:19:43.273+0800    finished restoring test.test_collection (198 documents)
    2019-03-05T14:19:43.273+0800    restoring users from dump/admin/system.users.bson
    2019-03-05T14:19:43.305+0800    roles file 'dump/admin/system.roles.bson' is empty; skipping roles restoration
    2019-03-05T14:19:43.305+0800    restoring roles from dump/admin/system.roles.bson
    2019-03-05T14:19:43.333+0800    done

Problemas relacionados

Cuando realiza una copia de respaldo de toda la instancia mediante mongodump y mongorestore, la verificación de permisos falla.

  • Causa

    El usuario rwuser tiene permisos limitados en las bases de datos de admin y config de la instancia. Como resultado, la verificación de permisos falla.

  • Solución

    Otorgar permisos en ciertas bases de datos y tablas al usuario.