db.cloneDatabase()

在本页面

Definition

  • db. cloneDatabase(*“主机名” *)
    • 将远程数据库复制到当前数据库。该命令假定远程数据库的名称与当前数据库的名称相同。
ParameterTypeDescription
hostnamestring要复制的数据库的主机名。

此方法为clone命令提供了包装。

Behavior

Data

db.cloneDatabase()方法不会快照数据库。如果在克隆操作期间的任何时候有任何 Client 端更新您要复制的数据库,则结果数据库可能会不一致。

Locks

clone操作期间,目标数据库将定期锁定。换句话说,db.cloneDatabase()偶尔会屈服以允许完成数据库上的其他操作。

FeatureCompatibilityVersion

您无法在具有featureCompatibilityVersion (FCV) 3.6 的mongod实例与 MongoDB 版本 3.4 和更早的mongod实例之间复制数据。

For example:

Instance 1Instance 2
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.6 的 3.6 版mongod可以复制数据。
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.4 的 3.6 版mongod可以复制数据。
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.4 的 3.4 版mongod无法复制数据。实例 2 必须是 MongoDB 3.6 版
具有 FCV 3.4 的 3.6 版mongod具有 FCV 3.4 的 3.4 版mongod可以复制数据。
具有 FCV 3.4 的 3.6 版mongod版本 3.2 mongod可以复制数据。

复制数据的操作包括:

Example

要在名为hostname的主机上克隆名为importdb的数据库,请发出以下命令:

use importdb
db.cloneDatabase("hostname")

隐式创建了新数据库,因此当前主机不需要具有名为importdb的数据库即可成功执行此命令。

See also