Chinaunix首页 | 论坛 | 博客
  • 博客访问: 653028
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1961
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-04 21:54
文章分类

全部博文(220)

文章存档

2018年(1)

2015年(140)

2014年(79)

我的朋友

分类: NOSQL

2015-01-05 21:12:39

复制数据库

MongoDB有一个命令可以在不同的服务器之间拷贝数据库。

// 从一个服务器复制一个完整的数据库到以一个服务器。忽略  
//是在同一服务器之间进行数据库复制
// 这个命令必须运行于复制目标的服务器上。
db.copyDatabase(, , );
// 如果复制源服务器需要验证,命令如下
db.copyDatabase(, , , ,
 );
// 命令的语法格式如下:
db.runCommand( { copydb : 1, fromdb : ..., todb : ..., fromhost : ... } );
// 源服务器需要认证,命令如下
n = db.runCommand( { copydbgetnonce : 1, fromhost: ... } );
db.runCommand( { copydb : 1, fromhost: ..., fromdb: ..., todb: ...,
 username: ..., nonce: n.nonce, key:  } );
// 从另一个服务器克隆当前选择的数据库
var fromhost = ...; 
print("about to get a copy of database " + db + " from " + fromhost); 
db.cloneDatabase(fromhost);
// 命令的语法:
db.runCommand( { clone : fromhost } );
Notes
  • copyDatabase 源服务器也可能是 slave/secondary。
  • copyDatabase 不是原子性的操作: 如果在复制的过程中,源服务器数据库修改了,
  • 目标服务器接收的document和更新的源服务器会有所不同。
  • 这个命令必须运行于目标服务器。
  • 这个命令不会给源服务器或者目标服务器加锁。两个服务器都允许进行读写操作。


http://xiayuanfeng.iteye.com/blog/983861
阅读(2421) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~