我无法理解为什么mongodb有两个命令copydb和clone。 谁能告诉我这些差异呢?
答案 0 :(得分:1)
到目前为止,我知道copydb和克隆之间的区别。也许可以拥有更好,更丰富的信息
<强> COPYDB:强>
- 目标mongod实例的admin数据库中运行
copydb
。这意味着你想在哪个实例中复制 来源DB。copydb
创建目标数据库中的目标数据库。- 如果数据库存在但没有集合,则会将所有集合从源DB复制到目标数据库。
- 如果目标数据库中存在任何集合,则copydb将返回错误,并且不会从源数据库中复制任何剩余集合。
copydb
在其操作期间未锁定目标服务器,因此副本偶尔会yield
允许其他服务器 要完成的操作。- 目标数据库名称可以与源数据库不同。如源数据库模拟器目标可以模拟器备份。
- 它可以从副本中复制主要和/或非主要数据库。
- 请勿使用
醇>copydb
复制包含分片集合的数据库。
克隆:
- 您必须在目标服务器上运行clone。
- 您无法根据需要设置目标数据库名称,这意味着克隆会复制远程实例上的数据库,其名称与 当前的数据库。
- 无法在同一实例中运行,因为如果要在同一实例或服务器中运行,则无法提供不同的名称 会收到错误。
- clone可以从副本集的非主成员进行复制。
- 在克隆操作期间,目标数据库将定期锁定。换句话说,克隆偶尔会屈服于 允许数据库上的其他操作完成。
醇>
因此,我们可以看到copydb
和clone
的差异很小,但copydb
会为您提供更大的灵活性,例如可以设置todb
和slaveOk
来复制从初级和中学。有关更多信息,请访问copydb和clone