美文网首页
mongod拷贝服务器数据至本地

mongod拷贝服务器数据至本地

作者: 丶赤水断 | 来源:发表于2020-06-13 23:32 被阅读0次

    将服务器mongodb数据拷贝至本地下

    方法1

    首先创建一个shell文件

    #!/bin/sh
    
    # 服务器相关的配置  
    ipAddress=xx.xx.xx.xx   #  你的服务器ip地址
    mongoUser=mongo       #  服务器mongo user
    mongoIp=127.0.0.1        #   服务器连接的mongo ip
    mongodb=testdb            #   服务器db
    mongoPwd=“password”   #  服务器密码 
    mongoInstallPath= /usr/local/mongodb/bin   # 服务器上mongo安装的地址
    
    # 本地相关的配置
    bakPath=/tmp/mongo/test.dump   # 服务器上储存mongo备份文件的地址   需要保证文件夹存在
    localBakFilePath=/Users/xxx/data/test.dump 
    localBakFolderPath=/Users/xxx/data
    localmongoIp=127.0.0.1
    localMongodb=test
    
    # 连接服务器  
    ssh -tt root@$ipAddress -p 22 <<remotessh
      # 进入mongo安装的路径  
      cd $mongoInstallPath
      # 运行备份指令
      ./mongodump -h $mongoIp -d $mongodb -u $mongoUser -p $mongoPwd --gzip  —archive=$bakPath
      #  推出服务器   
      exit
    remotessh
    
    #  删除本地的缓存   多次调用时需要   
    rm $localBakFilePath -f
    
    #  从远端服务器copy过来
    scp root@$ipAddress:$bakPath $localBakFolderPath
    
    # 进入本地mongo安装路径  
    cd /usr/local/mongodb/bin
    
    #  恢复数据至mongo
    ./mongorestore -h $localmongoIp:27017 -d $localMongodb --gzip  —archive=$localBakFilePath
    

    方法2

    创建一个空文件夹

    mkdir /tmp/mongo/ -p

    连接mongo

    mongodump -h host -u smeeting -ppwd -d smeeting -o /tmp/mongo --authenticationDatabase smeeting

    压缩

    tar -zcvf /tmp/mongo/test.tar.gz /tmp/mongo

    将远端的gz copy 过来

    scp root@host:/tmp/mongo/test.tar.gz ~/data/db

    然后恢复数据

    进入本地mongo目录

    cd /usr/local/mongo

    连接数据库

    然后输入下面指令

    mongorestore -h 127.0.0.1:27017 -d $dbname ~/data/db

    相关文章

      网友评论

          本文标题:mongod拷贝服务器数据至本地

          本文链接:https://www.haomeiwen.com/subject/nadtxktx.html