mongodb数据迁移和恢复

data目录覆盖

       把原来的data目录覆盖到最新的data目录,启动shard的时候就出现异常

        

        

尝试方案1

         mongod --repair --dbpath 数据目录

        ./mongod  --repair  --dbpath /opt/mongodb/data/

       ./mongod -f /opt/mongodb/shard1.conf

        

       shard启动还是异常退出

终极解决方案2

         以单进程启动shard服务

         1.使用数据目录启动一个独立的mongod ./mongod --dbpath /data/db

         2.转储 ./mongodump --host=localhost --port=27017 --out=/tmp/dumps/1

          

      3.从转储中恢复数据 ./mongorestore --host=localhost --port=27017 /tmp/dumps/1
         . /mongorestore --host=localhost --port=27017 /tmp/dumps/1

         

     4.启动一个空数据目录的shard服务,然后重新配置shard主从信息

        ./mongod -f /opt/mongodb/shard1.conf

        config_shard={_id:'shard1',members:[{_id:0,host:'192.168.19.232:27017'}]};
        rs.initiate(config_shard);

        

    5.恢复数据

        ./mongorestore --host=localhost --port=27017 /tmp/dumps/1

        

   6.配置mongos路由

           ./mongos -f /opt/mongodb/mongos/mongos.conf

          db.runCommand({addshard:"shard1/192.168.19.232:27017",name:"shard1"});

           

          

   7.shard查询恢复数据

          

   8.monogs查询数据

        显示异常信息

          

        1.查看mongos和config的日志信息

           

        2.停止所有的config进程和mongos进程 把config服务中的data目录,data目录中包含一些脏数据.需要全部删除

           

        3.重启config和mongos

        重新初始化config和mongos的分片信息

config主从初始化

  ./mongod -f /opt/mongodb/config/config.conf

  config_cfgreplset={_id:'cfgreplset',configsvr:true,members:[{_id:0,host:'192.168.19.232:20000'},{_id:1,host:'192.168.19.232:20001'},{_id:2,host:'192.168.19.232:20002'}]}

  rs.initiate(config_shard)

  rs.reconfig(config_shard,{ "force": true });

shard主从初始化

  ./mongod -f /opt/mongodb/shard1.conf

  config_shard={_id:'shard1',members:[{_id:0,host:'192.168.19.232:27017'}]};

   rs.initiate(config_shard)

   rs.reconfig(config_shard,{ "force": true });

mongos添加分片路由

    ./mongos -f /opt/mongodb/mongos/mongos.conf

   db.runCommand({addshard:"shard1/192.168.19.232:27017",name:"shard1"});

   mongod --repair --dbpath 数据目录

  使用数据目录启动一个独立的mongod ./mongod --dbpath /data/db

  转储 ./mongodump --host=localhost --port=27017 --out=/tmp/dumps/1

  从转储中恢复数据 ./mongorestore --host=localhost --port=27017 /tmp/dumps/1

 ./mongorestore --host=localhost --port=27017 /tmp/dumps/1

 

         

 

         

 单shard异常退出

         shard进程接收到退出信号,自动进行了退出

          

         添加一个shard进程做为从shard

          

          

          

shard1.conf

port=28017
pidfilepath=/opt/mongodb/data/shard1.pid
dbpath=/opt/mongodb/data/
logpath=/opt/mongodb/log/shard1.log
logappend=true
replSet=shard1
oplogSize=100
shardsvr=true
storageEngine=wiredTiger
directoryperdb=false
bind_ip=0.0.0.0


vi mongos.conf 

port=37017
logpath=/opt/mongodb/mongos/logs/mongos.log
logappend=true
fork=true
maxConns=1000
configdb=cfgreplset/192.168.19.252:20000,192.168.19.252:20001,192.168.19.252:20002
bind_ip=0.0.0.0
View Code

 

posted @ 2023-02-23 10:30  不懂123  阅读(177)  评论(0编辑  收藏  举报