在mongodb中copydb和clone命令之间的区别是什么

时间:2017-11-24 10:36:12

标签: mongodb

我无法理解为什么mongodb有两个命令copydb和clone。 谁能告诉我这些差异呢?

1 个答案:

答案 0 :(得分:1)

到目前为止,我知道copydb和克隆之间的区别。也许可以拥有更好,更丰富的信息

<强> COPYDB:

  
      
  1. 目标mongod实例的admin数据库中运行copydb。这意味着你想在哪个实例中复制   来源DB。
  2.   
  3. copydb创建目标数据库中的目标数据库。
  4.   
  5. 如果数据库存在但没有集合,则会将所有集合从源DB复制到目标数据库。
  6.   
  7. 如果目标数据库中存在任何集合,则copydb将返回错误,并且不会从源数据库中复制任何剩余集合。
  8.   
  9. copydb 在其操作期间未锁定目标服务器,因此副本偶尔会yield允许其他服务器   要完成的操作。
  10.   
  11. 目标数据库名称可以与源数据库不同。如源数据库模拟器目标可以模拟器备份
  12.   
  13. 它可以从副本中复制主要和/或非主要数据库。
  14.   
  15. 请勿使用copydb复制包含分片集合的数据库。
  16.   

克隆:

  
      
  1. 您必须在目标服务器上运行clone。
  2.   
  3. 您无法根据需要设置目标数据库名称,这意味着克隆会复制远程实例上的数据库,其名称与   当前的数据库。
  4.   
  5. 无法在同一实例中运行,因为如果要在同一实例或服务器中运行,则无法提供不同的名称   会收到错误。
  6.   
  7. clone可以从副本集的非主成员进行复制。
  8.   
  9. 在克隆操作期间,目标数据库将定期锁定。换句话说,克隆偶尔会屈服于   允许数据库上的其他操作完成。
  10.   

因此,我们可以看到copydbclone的差异很小,但copydb会为您提供更大的灵活性,例如可以设置todbslaveOk来复制从初级和中学。有关更多信息,请访问copydbclone