Restauração do conjunto de réplicas shardsvr2
Preparação de diretórios
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
Procedimento
- Prepare o arquivo de configuração e o diretório de um único nó e inicie o processo no modo de nó único.
- O arquivo de configuração é o seguinte (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}
- O arquivo de configuração é o seguinte (restoreconfig/single_40309.yaml):
- Conecte-se ao nó único e execute o seguinte comando de configuração:
comando de conexão: ./mongo --host 127.0.0.1 --port 40309
- 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: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)
- Execute os seguintes comandos para limpar as contas internas:
db.getSiblingDB('admin').dropAllUsers();
db.getSiblingDB('admin').dropAllRoles();
- Execute os seguintes comandos para atualizar as informações do 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'}});
}
}
- Execute o seguinte comando para parar o processo de nó único:
- Execute os seguintes comandos para modificar a configuração do conjunto de réplicas:
- Crie o conjunto de réplicas shardsvr2.
- Copie o arquivo dbPath do nó shardsvr2 para os diretórios dos outros dois nós 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/
- Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40309.yaml) do nó shardsvr2-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: 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}
- Start the process.
- Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40310.yaml) do nó shardsvr2-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: 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}
- Comece o processo.
- Adicione o atributo de configuração do conjunto de réplicas ao arquivo de configuração (restoreconfig/shardsvr_40311.yaml) do nó shardsvr2-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: 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}
- Comece o processo.
- Copie o arquivo dbPath do nó shardsvr2 para os diretórios dos outros dois nós shardsvr.
- Aguarde até que o nó primário seja selecionado.
./mongo --host 127.0.0.1 --port 40309
Execute o comando rs.status() para verificar se o nó primário existe.