命令 - EXPORT
导出当前数据库到文件。OrientDB使用基于JSONExport Format。默认,用GZIP算法压缩文件。
使用IMPORT
命令,允许你在不同版本的OrientDB之间迁移数据,不会丢失数据。
如果你收到一个关于数据库版本的错误,还是产生这个数据库的OrientDB的版本导出数据库。
牢记,导出一个数据库只是浏览而不会锁住。尽管这意味着导出的时候可以并发执行其他操作,但是不可能创建一个命令执行时的时间点的副本。这种情况下,你可以创建一个快照,使用命令BACKUP
。
你可以从一个导出的文件恢复数据库,使用命令IMPORT
。
注意: 尽快导出的格式是JSON,但对字段的顺序有约束。编辑导出的文件或者调整缩进都会导致导入时出错。
语法
默认,命令导出整个数据库。使用选项可以设置导出那部分。
EXPORT DATABASE <output-file>
[-excludeAll]
[-includeClass=<class-name>*]
[-excludeClass=<class-name>*]
[-includeCluster=<cluster-name>*]
[-excludeCluster=<cluster-name>*]
[-includeInfo=<true|false>]
[-includeClusterDefinitions=<true|false>]
[-includeSchema=<true|false>]
[-includeSecurity=<true|false>]
[-includeRecords=<true|false>]
[-includeIndexDefinitions=<true|false>]
[-includeManualIndexes=<true|false>]
[-compressionLevel=<0-9>]
[-compressionBuffer=<bufferSize>]
<output-file>
定义输出文件的路径。-excludeAll
设置导出的时候排除所有的内容,只导出通过命令选项包含的内容-includeClass
导出时包含指定的类,以空格分隔。-excludeClass
导出时排除指定的类,以空格分隔。-includeCluster
导出时包含指定的簇,以空格分隔。-excludeCluster
导出时排除指定的簇,以空格分隔。-includeInfo
定义是否导出数据库信息。-includeClusterDefinitions
定义是否导出簇的定义。-includeSchmea
定义是否导出数据库的模式信息。-includeSecurity
定义是否导出数据库的安全参数。-includeRecords
定义是否导出记录内容。-includeIndexDefinitions
定义是否导出索引的定义。-includeManualIndexes
定义是否导出人为设定的索引内容。-compressionLevel
定义导出时的压缩级别,0
(不压缩)到9
(最大压缩)。默认是1
。(版本1.7.6引入)-compressionBuffer
定义压缩时使用的缓存大小(字节)。默认16kb. (版本1.7.6引入)
例子
导出当前数据库,包含所有内容:
orientdb>
EXPORT DATABASE C:\temp\petshop.export
Exporting current database to: C:\temp\petshop.export... Exporting database info...OK Exporting dictionary...OK Exporting schema...OK Exporting clusters... - Exporting cluster 'metadata' (records=11) -> ...........OK - Exporting cluster 'index' (records=0) -> OK - Exporting cluster 'default' (records=779) -> OK - Exporting cluster 'csv' (records=1000) -> OK - Exporting cluster 'binary' (records=1001) -> OK - Exporting cluster 'person' (records=7) -> OK - Exporting cluster 'animal' (records=5) -> OK - Exporting cluster 'animalrace' (records=0) -> OK - Exporting cluster 'animaltype' (records=1) -> OK - Exporting cluster 'orderitem' (records=0) -> OK - Exporting cluster 'order' (records=0) -> OK - Exporting cluster 'city' (records=3) -> OK Export of database completed.导出当前数据库,只导出函数:
orientdb>
EXPORT DATABASE functions.gz -includeClass=OFunction -includeInfo=FALSE -includeClusterDefinitions=FALSE -includeSchema=FALSE -includeIndexDefinitions=FALSE -includeManualIndexes=FALSE
上面的例子可以简化为,排除所有,只包含你需要的特征。例如,导出当前数据库,只导出模式:
orientdb>
EXPORT DATABASE schema.gz -excludeALL -includeSchmea=TRUE
导出API
除了命令行,可以通过Java和其他运行在JVM的语法触发导出,使用类 ODatabaseExport。
例如:
ODatabaseDocumentTx db = new ODatabaseDocumentTx("plocal:/temp/mydb");
db.open("admin", "admin");
try{
OCommandOutputListener listener = new OCommandOutputListener() {
@Override
public void onMessage(String iText) {
System.out.print(iText);
}
};
ODatabaseExport export = new ODatabaseExport(db, "/temp/export", listener);
export.exportDatabase();
export.close();
} finally {
db.close();
}
更多备份和恢复,导入和导出,参考下面命令:
导出格式参考:
- Export File Format
ODatabaseExport
Java Class