On this page
clone
在本页面
该命令采用以下形式:
{ clone: <copyfromhost:port>, writeConcern: <document>, bypassDocumentValidation: <boolean> }
cloneCollection具有以下字段:
Field | Type | Description |
---|---|---|
hostname |
string | 要复制的数据库的主机名。 |
writeConcern |
document | 可选的。表示该操作的write concern的文档。省略使用默认的写关注。 |
bypassDocumentValidation |
boolean | 可选的。使clone在操作过程中绕过文档验证。这使您可以插入不符合验证要求的文档。 |
版本 3.2 中的新功能。
要使用clone命令,请在 目标服务器 上运行该命令,并指定要复制的源。运行命令的数据库确定要从源复制哪个数据库。
mongoShell 提供方法db.cloneDatabase()作为clone命令的包装器。
Behavior
Data
clone命令不会快照数据库。如果在克隆操作期间的任何时候有任何 Client 端更新您要复制的数据库,则结果数据库可能会不一致。
Locks
clone操作期间,目标数据库将定期锁定。换句话说,clone偶尔会屈服以允许完成数据库上的其他操作。
FeatureCompatibilityVersion
您无法在具有featureCompatibilityVersion (FCV) 3.6 的mongod实例与 MongoDB 版本 3.4 和更早的mongod实例之间复制数据。
For example:
Instance 1 | Instance 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 |
可以复制数据。 |
复制数据的操作包括:
Replica Sets
clone命令可以从replica set的辅助成员进行复制。
Example
以下操作将marketing
数据库从"db1.example.net:27017"
复制到您发出db.runCommand()的 mongod 实例。
use marketing
db.runCommand( { clone: "db1.example.net:27017" })