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

Restauración del conjunto de réplicas de shardsvr2

Preparación de directorios

rm -rf /compile/cluster-restore/shd2*

mkdir -p /compile/cluster-restore/shd21/data/db

mkdir -p /compile/cluster-restore/shd21/log

mkdir -p /compile/cluster-restore/shd22/data/db

mkdir -p /compile/cluster-restore/shd22/log

mkdir -p /compile/cluster-restore/shd23/data/db

mkdir -p /compile/cluster-restore/shd23/log

Procedimiento

  1. Prepare el archivo de configuración y el directorio de un solo nodo e inicie el proceso en modo de un solo nodo.

    1. El archivo de configuración es el siguiente (restoreconfig/single_40309.yaml):
      net:
        bindIp: 127.0.0.1
        port: 40309
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd21/mongod.pid}
      storage:
        dbPath: /compile/cluster-restore/shd21/data/db/
        directoryPerDB: true
        engine: wiredTiger
        wiredTiger:
          collectionConfig: {blockCompressor: snappy}
          engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
          indexConfig: {prefixCompression: true}
      systemLog: {destination: file, logAppend: true, logRotate: reopen, path: /compile/cluster-restore/shd21/log/mongod.log}
    1. Copie el archivo shardsvr2 descomprimido en el directorio dbPath del nodo único.

      cp -aR

      /compile/download/backups/cac1efc8e65e42ecad8953352321bfeein02_92b196d2401041a7af869a2a3cab7079no02/* /compile/cluster-restore/shd21/data/db/

    2. Inicie el proceso.

      ./mongod -f restoreconfig/single_40309.yaml

  2. Conéctese al nodo único y ejecute el siguiente comando de configuración:

    Connection command: ./mongo --host 127.0.0.1 --port 40309

    1. Ejecute los siguientes comandos para modificar la configuración del conjunto de réplicas:

      var cf=db.getSiblingDB('local').system.replset.findOne();

      cf['members'][0]['host']='127.0.0.1:40309';

      cf['members'][1]['host']='127.0.0.1:40310';

      cf['members'][2]['host']='127.0.0.1:40311';

      cf['members'][0]['hidden']=false;

      cf['members'][1]['hidden']=false;

      cf['members'][2]['hidden']=false;

      cf['members'][0]['priority']=1;

      cf['members'][1]['priority']=1;

      cf['members'][2]['priority']=1;

      db.getSiblingDB('local').system.replset.remove({});

      db.getSiblingDB('local').system.replset.insert(cf)

    2. Ejecute los siguientes comandos para borrar las cuentas integradas:

      db.getSiblingDB('admin').dropAllUsers();

      db.getSiblingDB('admin').dropAllRoles();

    3. Ejecute los siguientes comandos para actualizar la información configsvr:

      var vs = db.getSiblingDB('admin').system.version.find();

      while (vs.hasNext()) {

      var curr = vs.next();

      if (curr.hasOwnProperty('configsvrConnectionString')) {

      db.getSiblingDB('admin').system.version.update({'_id' : curr._id}, {$set: {'configsvrConnectionString': 'config/127.0.0.1:40303,127.0.0.1:40304,127.0.0.1:40305'}});

      }

      }

    4. Ejecute el siguiente comando para detener el proceso de un solo nodo:

      db.getSiblingDB('admin').shutdownServer();

  3. Cree el conjunto de réplicas shardsvr2.

    1. Copie el archivo dbPath del nodo shardsvr2 en los directorios de los otros dos nodos shardsvr.

      cp -aR /compile/cluster-restore/shd21/data/db/ /compile/cluster-restore/shd22/data/db/

      cp -aR /compile/cluster-restore/shd21/data/db/ /compile/cluster-restore/shd23/data/db/

    2. Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40309.yaml) del nodo shardsvr2-1.

      --- Para obtener detalles sobre el valor de replication.replSetName, vea la información del shard _id en 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40309
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd21/mongod.pid}
      replication: {replSetName: shard_2}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd21/data/db/
        directoryPerDB: true
        engine: wiredTiger
        wiredTiger:
          collectionConfig: {blockCompressor: snappy}
          engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
          indexConfig: {prefixCompression: true}
      systemLog: {destination: file, logAppend: true, logRotate: reopen, path: /compile/cluster-restore/shd21/log/mongod.log}
    3. Inicie el proceso.

      ./mongod -f restoreconfig/shardsvr_40309.yaml

    4. Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40310.yaml) del nodo shardsvr2-2.

      --- Para obtener detalles sobre el valor de replication.replSetName, vea la información del shard _id en 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40310
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd22/mongod.pid}
      replication: {replSetName: shard_2}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd22/data/db/
        directoryPerDB: true
        engine: wiredTiger
        wiredTiger:
          collectionConfig: {blockCompressor: snappy}
          engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
          indexConfig: {prefixCompression: true}
      systemLog: {destination: file, logAppend: true, logRotate: reopen, path: /compile/cluster-restore/shd22/log/mongod.log}
    5. Inicie el proceso.

      ./mongod -f restoreconfig/shardsvr_40310.yaml

    6. Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40311.yaml) del nodo shardsvr2-2.

      --- Para obtener detalles sobre el valor de replication.replSetName, vea la información del shard _id en 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40311
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd23/mongod.pid}
      replication: {replSetName: shard_2}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd23/data/db/
        directoryPerDB: true
        engine: wiredTiger
        wiredTiger:
          collectionConfig: {blockCompressor: snappy}
          engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
          indexConfig: {prefixCompression: true}
      systemLog: {destination: file, logAppend: true, logRotate: reopen, path: /compile/cluster-restore/shd23/log/mongod.log}
    7. Inicie el proceso.

      ./mongod -f restoreconfig/shardsvr_40311.yaml

  4. Espere hasta que se seleccione el nodo principal.

    ./mongo --host 127.0.0.1 --port 40309

    Ejecute el comando rs.status() para comprobar si existe el nodo primario.