mongodb备份与恢复
<p>转载:https://www.cnblogs.com/jiekzou/p/9109137.html</p><h2>系统环境</h2>
<p>服务器系统:Windows Server2012 R2</p>
<p>MongoDB:v3.4.4</p>
<p>可以通过命令:mongo -version 查看版本信息</p>
<p><img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530091408462-1446322568.png" alt=""></p>
<p>场景:备份数据库smp_maint_2,还原到新建的数据库smp_maint_2_restore中。</p>
<h2>MongoDB数据库备份</h2>
<p> 1、语法:<br> mongodump -h dbhost -d dbname -o dbdirectory<br> 参数说明:<br> -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017<br> -d: 需要备份的数据库实例,例如:test<br> -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。</p>
<p> -c: 需要恢复的集合<br> -f: 需要导出的字段(省略为所有字段)</p>
<p> -u:用户名</p>
<p> -d:用户密码</p>
<p> mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory<br> 2、实例:</p>
<p>先通过服务器上面安装的Mongodb服务器找到服务的所在路径:C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe</p>
<p><img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530091720016-685596442.png" alt=""></p>
<p>先在服务器上面创建文件目录:E:\data\home\momgodump</p>
<p>然后以管理员身份打开CMD,然后跳转到Mongodb所在路径,执行如下命令:</p>
<div class="cnblogs_code">
<pre>mongodump -h 192.168.1.18:27017 -d smp_maint_2 -o E:\data\home\momgodump</pre>
</div>
<p> 运行结果如下:</p>
<p><img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530090555873-199634392.png" alt=""></p>
<p>备份完成之后,我们再看下备份目录下面自动创建了一个和数据库名称一样的目录,目录下面有如图所示备份文件</p>
<p><img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530092132658-673243831.png" alt=""></p>
<h2>MongoDB数据库恢复</h2>
<p> <strong>单个collection恢复:</strong><br> mongoimport -d dbhost -c collectionname –type csv –headerline –file<br> -type: 指明要导入的文件格式<br> -headerline: 批明不导入第一行,因为第一行是列名<br> -file: 指明要导入的文件路径</p>
<p> 1、语法:<br> mongorestore -h dbhost -d dbname --dir dbdirectory<br> <br> 参数或名:<br> -h: MongoDB所在服务器地址<br> -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2<br> --dir: 备份数据所在位置,例如:/home/mongodump/itcast/<br> --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!<br> 2、实例:</p>
<p>新建mongodb数据库smp_maint_2_restore,然后执行如下命令:</p>
<div class="cnblogs_code">
<pre>mongorestore -h 192.168.1.18:27017 -d smp_maint_2_restore --dir E:\data\home\momgodump\smp_maint_2</pre>
</div>
<p> 运行结果如下所示:</p>
<p><img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530091107708-228057218.png" alt=""><br> <img src="https://images2018.cnblogs.com/blog/413851/201805/413851-20180530092358462-847845874.png" alt=""></p>
<div id="cnblogs_post_body" class="blogpost-body">
<p> 还原成功!</p>
<p>转载:https://blog.csdn.net/aafeiyang/article/details/88107884</p>
<p>1.先查看表中数据量:<br>db.score.find().count();2401<br>db.student.find().count() 2992</p>
<p>2.进入到Mongo DB的安装目录的此路径下:/home/ubuntu/softwares/mongodb/bin</p>
<p>3.执行备份命令:./mongodump -h 192.168.123.133 -d testBackUp -o /myApplication/mongoDBData<br> <br>3. 删除原来DB :use testBackUp ,db.dropDatabase();</p>
<p>4.停止mongoDB,修改数据存储目录(如果不是Root操作,请先创建该目录及Log文件,再授权)</p>
<p>dbpath=/myApplication/mongoDBData/mongoData<br>logpath=/myApplication/mongoDBData/mongoLog/mongodb.log<br>logappend = true<br>fork=true<br>bind_ip = 192.168.123.133<br>port=27017</p>
<p>5.启动mongoDB,注意要带配置文件 ,要不然会使用默认的,使用该命令:./mongod -f mongodb.conf<br> 生产环境执行后台启动,要不然Xshell一关闭,服务就停了:nohup sudo ./mongod -f /etc/mongod.conf >> /datadrive2/mongodbLog/output.log 2>&1 &<br> <br>6.执行还原命令:./mongorestore -h 192.168.123.133 -d newNameBackUp /myApplication/mongoDBData/testBackUp</p>
<p><br>PS:不要用kill -9 PID来杀死MondoDB进程,这样可能会导致MongoDB的数据损坏,使用以下命令停止:<br>> use admin;<br>switched to db admin<br>> db.shutdownServer();<br>server should be down...</p>
<p>以下为另一种起动及停止方式。<br>sudo service mongod start<br>sudo service mongod stop<br>其他更详细操作:https://www.jb51.net/article/40285.htm</p>
</div>
<div id="MySignature"> 恢复单个表:https://www.jianshu.com/p/26b504c0f26e</div>
<div>
<pre class="hljs shell"><code class="shell"><span class="hljs-meta">#<span class="bash">写法1
mongorestore --collection collection --db database filePath
<span class="hljs-meta">#<span class="bash">写法2(推荐写法)
mongorestore --nsInclude database.collections filePath</span></span></span></span></code></pre>
</div><br><br>
来源:https://www.cnblogs.com/ssjf/p/11188440.html
頁:
[1]