mongo复制数据库和集合

1. 复制数据库

1.1 db.copyDatabase(fromdb,todb,fromhost,username,password,mechanism)

后面四个选项可选:

  • fromhost: 源db的主机地址,如果在同一个mongod实例内可以省略;
  • username: 如果开启了验证模式,需要源DB主机上的MongoDB实例的用户名;
  • password: 同上,需要对应用户的密码;
  • mechanism: fromhost验证username和password的机制,有:MONGODB-CR、SCRAM-SHA-1两种。

1.2 db.runCommand()

{ copydb: 1,

  fromhost: <hostname>,

  fromdb:   <database>,

  todb:     <database>,

  slaveOk:  <bool>,

  username: <username>,

  nonce:    <nonce>,

  key:      <key>

}

fromhost: 可选,见1.1;

slaveOK: 可选,设置为true,允许从secondary复制数据,此时fromehost必须被设置;

username: 可选,见1.1;

nonce: 远程服务器上产生的一次性共享密钥;

key: 对password的hash值

2. 复制Collection

2.1 runCommand

db.runCommand({

  cloneCollection: <namespace>

  fromhost:         <hostname>

  query:               <filter>

});

db.runCommand({cloneCollection:"testdb.testcol", fromhost:"192.168.1.12:27017", query:{"age":{"gt":2}}});

2.2 db.cloneCollection

db.cloneCollection(from, collection, query)

参考:

https://docs.mongodb.com/manual/reference/method/db.copyDatabase/#db.copyDatabase

https://docs.mongodb.com/manual/reference/command/copydb/

https://docs.mongodb.com/manual/reference/command/cloneCollection/

https://docs.mongodb.com/manual/reference/method/db.cloneCollection/#db.cloneCollection

https://docs.mongodb.com/manual/reference/command/clone/

时间: 2024-12-28 22:43:38

mongo复制数据库和集合的相关文章

MongoDB在不同主机间复制数据库和集合的教程_MongoDB

1. db.cloneCollection()db.cloneCollection(from, collection, query) 在不同的mongodb实例间复制数据,db.cloneCollection是cloneCollection数据库命令的一个外在体现. function (from, collection, query) { assert( isString(from) && from.length ); assert( isString(collection) &&

使用rman复制数据库

数据|数据库 -------------------------------------------- 实验环境:windows + oracle 10.1.0.2.0 原数据库:ning[归档模式]  复制数据库:test Author:NinGoo    2005-3-27 -------------------------------------------   在同一台server上使用rman的Duplicate Database创建复制数据库.   1.    创建新的instanc

oracle中如何通过RMAN复制数据库

通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库.这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆). ORACLE在数据库拷贝和数据库克隆之间惟一不同的是拷贝的数据库不能更改名称.使用RMAN的复制数据库特性,可以从RMAN备份创建一个新的数据库,并为这个副本数据库保留已有的数据库名称或者赋予新的名称. RMAN术语和命令: A. 辅助数据库(Auxiliary database):RMAN将目标数据库复制到该数据库实例.要创建该数据库的参数文件

Oracle中使用RMAN 异机复制数据库

RMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上 实验平台: REDHAT linux 4.7 + oracle 10g 目标库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1 ORACLE_SID:orcl IP: 192.168.1.20 辅助库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME:

复制数据库表中两个字段数据的SQL语句

复制数据库表中两个字段数据的SQL语句 今天为表新添加一个字段,但又想与表中的另一个字段值相同,由于数据过多想通过sql语句实现,经测试下面的这句话确实很好用.   复制代码 代码如下: update jb51_temp set B=A jb51_temp 代表表明 A是有数值的字段,B是新添加的字段 ,记住空值表放到前面,如果set a=b,那么你的数值都为空了,就麻烦了,建议操作前备份数据库. 如何将一个字段里的值复制添加到另一个字段中 比如,有二个字段A和B,A字段是值是"我",

sql server 2008 复制数据库时报包创建错误,求高人指点!

问题描述 sql server 2008 复制数据库时报包创建错误,求高人指点! 使用sql server企业管理器里的复制功能,想把在远程服务器上的DMS数据库给复制到本地的数据库,在进行到包创建的时候报错:错误消息是: No description found (复制数据库向导) 程序位置: 在 Microsoft.SqlServer.Dts.Runtime.Application.FolderExistsOnSqlServer(String strFolderName String str

sqlserver 复制表 复制数据库存储过程的方法_MsSql

在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲.数据库中的存储过程.函数.表结构.主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样.经过一段时间的摸索,找到的一个比较简单的解决方案是:  (1)在复制数据库之前,先备份该数据库到文件.  (2)依据备份文件创建新的数据库,并Restore即可.  备份数据库可用如下Sql语句:  string.Format("backup database {0} to disk = '{1}';&q

《数据库基础及实践技术——SQL Server 2008》一3.7 复制数据库

3.7 复制数据库 将数据库从一台服务器移动(复制)到另一台服务器有多种方法,3.6节介绍过的分离和附加数据库是一种方法,本节介绍的复制数据库是另一种方法,还有一种方法是使用备份和恢复数据库(在第13章介绍)技术.SQL Server 2008提供了复制数据库向导,利用该向导可以很方便地将数据库从一台服务器复制到另一台服务器,也可以将数据库复制到同一台服务器上.而且可以将SQL Server 2000或SQL Server 2005数据库复制到SQL Server 2008版本的实例上,从而实现

Oracle 11gR2 使用RMAN Duplicate复制数据库

Oracle 11gR2 使用RMAN Duplicate复制数据库  作者:吴伟龙 PrudentWoo QQ:286507175    前言:     上周刚做完一个项目,用户要求RAC的数据库能够自动备份到另外一个单节点上,单节点能够正常拿起来就能用.当时跟他们讨论的是用ADG来做,但通过描述后,用户觉得如果要人工干预的话太麻烦,它不想做任何的人工干预,实现数据自动到这台单机上来,那只是一台备用的数据库,没事的时候可以登录上去看看历史的数据情况.        这个时候我提出了11g的RM