Restauración del conjunto de réplicas de shardsvr1
Preparación de directorios
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
Procedimiento
- Prepare el archivo de configuración y el directorio de un solo nodo e inicie el proceso en modo de un solo nodo.
- El archivo de configuración es el siguiente (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}
- Copie el archivo shardsvr1 descomprimido en el directorio dbPath del nodo único.
cp -aR
/compile/download/backups/cac1efc8e65e42ecad8953352321bfeein02_6cfa6167d4114d7c8cec5b47f9a78dc5no02/* /compile/cluster-restore/shd11/data/db/
- Inicie el proceso.
- El archivo de configuración es el siguiente (restoreconfig/single_40306.yaml):
- Conéctese al nodo único y ejecute el siguiente comando de configuración:
Comando de conexión: ./mongo --host 127.0.0.1 --port 40306
- 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: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)
- Ejecute los siguientes comandos para borrar las cuentas integradas:
db.getSiblingDB('admin').dropAllUsers();
db.getSiblingDB('admin').dropAllRoles();
- Ejecute los siguientes comandos para actualizar la información configsvr:
Comando de conexión: ./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'}});
}
}
- Ejecute el siguiente comando para detener el proceso de un solo nodo:
- Ejecute los siguientes comandos para modificar la configuración del conjunto de réplicas:
- Cree el conjunto de réplicas shardsvr1.
- Copie el archivo dbPath del nodo shardsvr1 en los directorios de los otros dos nodos 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/
- Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40306.yaml) del nodo shardsvr1-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: 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}
- Inicie el proceso.
- Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40307.yaml) del nodo shardsvr1-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: 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}
- Inicie el proceso.
- Agregue el atributo de configuración del conjunto de réplicas al archivo de configuración (restoreconfig/shardsvr_40308.yaml) del nodo shardsvr1-3.
--- 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: 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}
- Inicie el proceso.
- Copie el archivo dbPath del nodo shardsvr1 en los directorios de los otros dos nodos shardsvr.
- Espere hasta que se seleccione el nodo principal.
./mongo --host 127.0.0.1 --port 40306
Ejecute el comando rs.status() para comprobar si existe el nodo primario.