Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2025-08-07 GMT+08:00

Restauração do conjunto de réplicas shardsvr1

Preparação de diretórios

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

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

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

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

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

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

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

Procedimento

  1. Prepare o arquivo de configuração e o diretório de um único nó e inicie o processo no modo de nó único.

    1. O arquivo de configuração é o seguinte (restoreconfig/single_40306.yaml):
      net:
        bindIp: 127.0.0.1
        port: 40306
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd11/mongod.pid}
      storage:
        dbPath: /compile/cluster-restore/shd11/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/shd11/log/mongod.log}
    2. Copie o arquivo shardsvr1 descompactado para o diretório dbPath no nó único.

      cp -aR

      /compile/download/backups/cac1efc8e65e42ecad8953352321bfeein02_6cfa6167d4114d7c8cec5b47f9a78dc5no02/* /compile/cluster-restore/shd11/data/db/

    3. Comece o processo.

      ./mongod -f restoreconfig/single_40306.yaml

  2. Conecte-se ao nó único e execute o seguinte comando de configuração:

    comando de conexão: ./mongo --host 127.0.0.1 --port 40306

    1. Execute os seguintes comandos para modificar a configuração do conjunto de réplicas:

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

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

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

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

      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. Execute os seguintes comandos para limpar as contas internas:

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

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

    3. Execute os seguintes comandos para atualizar as informações do configsvr:

      Comando de conexão: ./mongo --host 127.0.0.1 --port 40306

      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. Execute o seguinte comando para parar o processo de nó único:

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

  3. Crie o conjunto de réplicas shardsvr1.

    1. Copie o arquivo dbPath do nó shardsvr1 para os diretórios dos outros dois nós shardsvr.

      cp -aR /compile/cluster-restore/shd11/data/db/ /compile/cluster-restore/shd12/data/db/

      cp -aR /compile/cluster-restore/shd11/data/db/ /compile/cluster-restore/shd13/data/db/

    2. Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40306.yaml) do nó shardsvr1-1.

      --- Para obter detalhes sobre o valor de replication.replSetName, consulte as informações de _id de partição em 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40306
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd11/mongod.pid}
      replication: {replSetName: shard_1}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd11/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/shd11/log/mongod.log}
    3. Comece o processo.

      ./mongod -f restoreconfig/shardsvr_40306.yaml

    4. Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40307.yaml) do nó shardsvr1-2.

      --- Para obter detalhes sobre o valor de replication.replSetName, consulte as informações de _id de partição em 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40307
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd12/mongod.pid}
      replication: {replSetName: shard_1}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd12/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/shd12/log/mongod.log}
    5. Comece o processo.

      ./mongod -f restoreconfig/shardsvr_40307.yaml

    6. Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40308.yaml) do nó shardsvr1-3.

      --- Para obter detalhes sobre o valor de replication.replSetName, consulte as informações de _id de partição em 2.c.

      net:
        bindIp: 127.0.0.1
        port: 40308
        unixDomainSocket: {enabled: false}
      processManagement: {fork: true, pidFilePath: /compile/cluster-restore/shd13/mongod.pid}
      replication: {replSetName: shard_1}
      sharding: {archiveMovedChunks: false, clusterRole: shardsvr}
      storage:
        dbPath: /compile/cluster-restore/shd13/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/shd13/log/mongod.log}
    7. Comece o processo.

      ./mongod -f restoreconfig/shardsvr_40308.yaml

  4. Aguarde até que o nó primário seja selecionado.

    ./mongo --host 127.0.0.1 --port 40306

    Execute o comando rs.status() para verificar se o nó primário existe.