165 lines
No EOL
9 KiB
HTML
165 lines
No EOL
9 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="tool" content="leanote-desktop-app">
|
||
<title>mongodb 数据库操作--备份 还原 导出 导入</title>
|
||
<style>
|
||
|
||
*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
|
||
|
||
body {
|
||
margin: 0;
|
||
}
|
||
|
||
/*公用文字样式*/
|
||
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
|
||
.note-container{
|
||
width:850px;
|
||
margin:auto;
|
||
padding: 10px 20px;
|
||
box-shadow: 1px 1px 10px #eee;
|
||
}
|
||
#title {
|
||
margin: 0;
|
||
}
|
||
table {
|
||
margin-bottom: 16px;
|
||
border-collapse: collapse;
|
||
}
|
||
table th, table td {
|
||
padding: 6px 13px;
|
||
border: 1px solid #ddd;
|
||
}
|
||
table th {
|
||
font-weight: bold;
|
||
}
|
||
|
||
table tr {
|
||
background-color: none;
|
||
border-top: 1px solid #ccc;
|
||
}
|
||
table tr:nth-child(2n) {
|
||
background-color: rgb(247, 247, 249);
|
||
}
|
||
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
|
||
border: 1px solid #ddd;
|
||
border-collapse: collapse;
|
||
padding: 6px 13px;
|
||
}
|
||
blockquote {
|
||
border-left-width:10px;
|
||
background-color:rgba(128,128,128,0.05);
|
||
border-top-right-radius:5px;
|
||
border-bottom-right-radius:5px;
|
||
padding:15px 20px;
|
||
border-left:5px solid rgba(128,128,128,0.075);
|
||
}
|
||
blockquote p {
|
||
margin-bottom:1.1em;
|
||
font-size:1em;
|
||
line-height:1.45
|
||
}
|
||
blockquote ul:last-child,blockquote ol:last-child {
|
||
margin-bottom:0
|
||
}
|
||
pre {
|
||
padding: 18px;
|
||
background-color: #f7f7f9;
|
||
border: 1px solid #e1e1e8;
|
||
border-radius: 3px;
|
||
display: block;
|
||
}
|
||
code {
|
||
padding: 2px 4px;
|
||
font-size: 90%;
|
||
color: #c7254e;
|
||
white-space: nowrap;
|
||
background-color: #f9f2f4;
|
||
border-radius: 4px;
|
||
}
|
||
.footnote {
|
||
vertical-align: top;
|
||
position: relative;
|
||
top: -0.5em;
|
||
font-size: .8em;
|
||
}
|
||
|
||
hr {
|
||
margin:2em 0
|
||
}
|
||
img {
|
||
max-width:100%
|
||
}
|
||
pre {
|
||
word-break:break-word
|
||
}
|
||
p,pre,pre.prettyprint,blockquote {
|
||
margin:0 0 1.1em
|
||
}
|
||
hr {
|
||
margin:2em 0
|
||
}
|
||
img {
|
||
max-width:100%
|
||
}
|
||
.sequence-diagram,.flow-chart {
|
||
text-align:center;
|
||
margin-bottom:1.1em
|
||
}
|
||
.sequence-diagram text,.flow-chart text {
|
||
font-size:15px !important;
|
||
font-family:"Source Sans Pro",sans-serif !important
|
||
}
|
||
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
|
||
fill:#f6f6f6
|
||
}
|
||
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
|
||
stroke:#3f3f3f
|
||
}
|
||
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
|
||
stroke:none
|
||
}
|
||
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
|
||
fill:#3f3f3f
|
||
}
|
||
ul,ol {
|
||
margin-bottom:1.1em
|
||
}
|
||
ul ul,ol ul,ul ol,ol ol {
|
||
margin-bottom:1.1em
|
||
}
|
||
kbd {
|
||
padding:.1em .6em;
|
||
border:1px solid rgba(63,63,63,0.25);
|
||
-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
|
||
box-shadow:0 1px 0 rgba(63,63,63,0.25);
|
||
font-size:.7em;
|
||
font-family:sans-serif;
|
||
background-color:#fff;
|
||
color:#333;
|
||
border-radius:3px;
|
||
display:inline-block;
|
||
margin:0 .1em;
|
||
white-space:nowrap
|
||
}
|
||
.toc ul {
|
||
list-style-type:none;
|
||
margin-bottom:15px
|
||
}
|
||
</style>
|
||
<!-- 该css供自定义样式 -->
|
||
<link href="../leanote-html.css" rel="stylesheet">
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div class="note-container">
|
||
<h1 class="title" id="leanote-title">mongodb 数据库操作--备份 还原 导出 导入</h1>
|
||
<div class="content-html" id="leanote-content"><div>一,mongodump备份数据库</div><div>mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径</div><div>如果没有用户谁,可以去掉-u和-p。</div><div>如果导出本机的数据库,可以去掉-h。</div><div>如果是默认端口,可以去掉--port。</div><div>如果想导出所有数据库,可以去掉-d。</div><div><br></div><div><br></div><div>导出所有数据库</div><div>[root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/</div><div>connected to: 127.0.0.1</div><div>Tue Dec 3 06:15:55.448 all dbs</div><div>Tue Dec 3 06:15:55.449 DATABASE: test to /home/zhangy/mongodb/test</div><div>Tue Dec 3 06:15:55.449 test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson</div><div>Tue Dec 3 06:15:55.450 1 objects</div><div>Tue Dec 3 06:15:55.450 test.posts to /home/zhangy/mongodb/test/posts.bson</div><div>Tue Dec 3 06:15:55.480 0 objects</div><div> </div><div>。。。。。。。。。。。。。。省略。。。。。。。。。。。。。</div><div><br></div><div><br></div><div>导出指定数据库</div><div>[root@localhost mongodb]# mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/</div><div>connected to: 192.168.1.108</div><div>Tue Dec 3 06:11:41.618 DATABASE: tank to /home/zhangy/mongodb/tank</div><div>Tue Dec 3 06:11:41.623 tank.system.indexes to /home/zhangy/mongodb/tank/system.indexes.bson</div><div>Tue Dec 3 06:11:41.623 2 objects</div><div>Tue Dec 3 06:11:41.623 tank.contact to /home/zhangy/mongodb/tank/contact.bson</div><div>Tue Dec 3 06:11:41.669 2 objects</div><div>Tue Dec 3 06:11:41.670 Metadata for tank.contact to /home/zhangy/mongodb/tank/contact.metadata.json</div><div>Tue Dec 3 06:11:41.670 tank.users to /home/zhangy/mongodb/tank/users.bson</div><div>Tue Dec 3 06:11:41.685 2 objects</div><div>Tue Dec 3 06:11:41.685 Metadata for tank.users to /home/zhangy/mongodb/tank/users.metadata.json</div><div><br></div><div>三,mongorestore还原数据库</div><div><br></div><div>mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径</div><div>--drop的意思是,先删除所有的记录,然后恢复。</div><div><br></div><div><br></div><div>恢复所有数据库到mongodb中</div><div>[root@localhost mongodb]# mongorestore /home/zhangy/mongodb/ #这里的路径是所有库的备份路径</div><div><br></div><div>还原指定的数据库</div><div>[root@localhost mongodb]# mongorestore -d tank /home/zhangy/mongodb/tank/ #tank这个数据库的备份路径</div><div> </div><div>[root@localhost mongodb]# mongorestore -d tank_new /home/zhangy/mongodb/tank/ #将tank还有tank_new数据库中</div><div><br></div><div>这二个命令,可以实现数据库的备份与还原,文件格式是json和bson的。无法指写到表备份或者还原。</div><div><br></div><div>四,mongoexport导出表,或者表中部分字段</div><div><br></div><div>mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名</div><div><br></div><div>上面的参数好理解,重点说一下:</div><div>-f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段</div><div>-q 可以根查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据</div><div>--csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点</div><div><br></div><div>导出整张表</div><div>[root@localhost mongodb]# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat</div><div><br></div><div>导出表中部分字段</div><div>[root@localhost mongodb]# mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv</div><div><br></div><div>根据条件敢出数据</div><div>[root@localhost mongodb]# mongoexport -d tank -c users -q '{uid:{$gt:1}}' -o tank/users.json</div><div><br></div><div>五,mongoimport导入表,或者表中部分字段</div><div>1.1,还原整表导出的非csv文件</div><div>mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名 </div><div>重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据</div><div>1.2,还原部分字段的导出文件</div><div>mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名 </div><div>--upsertFields根--upsert一样</div><div>1.3,还原导出的csv文件</div><div>mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名 </div><div>上面三种情况,还可以有其他排列组合的。</div><div><br></div><div>还原导出的表数据</div><div>[root@localhost mongodb]# mongoimport -d tank -c users --upsert tank/users.dat</div><div><br></div><div>部分字段的表数据导入</div><div>[root@localhost mongodb]# mongoimport -d tank -c users --upsertFields uid,name,sex tank/users.dat </div><div><br></div><div>还原csv文件</div><div>[root@localhost mongodb]# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv</div><div>总体感觉,mongodb的备份与还原,还是挺强大的,虽然有点麻烦。</div></div>
|
||
</div>
|
||
|
||
<!-- 该js供其它处理 -->
|
||
<script src="../leanote-html.js"></script>
|
||
</body>
|
||
</html> |