升级
OrientDB使用语义版本系统, 版本后遵循格式MAJOR.MINOR.PATCH, 三部分的含义分别是:
- MAJOR 版本意味着兼容的API变化
- MINOR 版本意味着向后兼容的功能
- PATCH 版本意味着向后兼容的bug修复
所以,在PATCH版本之间,肯定能保证兼容性(例如1.7.0 -> 1.7.8)。在MINOR和MAJOR版本之间,需要导出然后重新导入数据库。要了解你的升级是否必须使用导出和导入数据库的方式进行,查看下面"Database"的列:
兼容性矩阵
FROM | TO | Guide | Blueprints | Database | Binary Protocol | HTTP Protocol | |||
---|---|---|---|---|---|---|---|---|---|
2.0.x | 2.1.x | Release 2.1.x | Final v2.6.0 | Automatic | 30 | 10 | |||
1.7.x | 2.0.x | Migration-from-1.7.x-to-2.0.x | Final v2.6.0 | Automatic | 25 | 10 | |||
1.6.x | 1.7.x | Migration-from-1.6.x-to-1.7.x | Final v2.5.0 | Automatic | 20, 21 | 10 | |||
1.5.x | 1.6.x | Migration-from-1.5.x-to-1.6.x | Changed v2.5.x | Automatic | 18, 19 | 10 | |||
1.4.x | 1.5.x | Migration-from-1.4.x-to-1.5.x | Changed v2.4.x | Automatic | 16, 17 | 10 | |||
1.3.x | 1.4.x | Migration-from-1.3.x-to-1.4.x | Changed v2.3.x | Automatic | 14, 15 | n.a. | |||
1.2.x | 1.3.x | n.a. | Changed v2.2.x | OK | OK | OK | Need export & Re-import | 12, 13 | n.a. |
参考:
- 二进制网络协议: Network Binary Protocol
- HTTP网络协议: OrientDB REST
从LOCAL存储引擎迁移到PLOCAL
从OrientDB 1.5.x版本开始,引入了一个全新的存储引擎:PLCOAL(分页 LOCAL)。 它像LOCAL一样持久化,但是存储信息的方式不同。下面是它和LOCAL的主要区别:
- 记录被存储在簇文件汇总,而LOCAL被簇和数据段分割
- 比LOCAL更加耐用,以为采用的是append-on-write(追加写入)模式
- 写的时候采用更少争夺锁,意味着更高的并发
- 不使用内存映射技术(Memory Mapping techniques (MMap)),所以行为是“可预期的”。
从LOCAL存储迁移到新的PLOCAL, 需要先导出数据库,然后使用PLOCAL存储引擎重新导入。使用如下步骤:
1) 打开命令行脚本
2) 导出数据库,例如导出到目录/temp/db:
$ bin/console.sh (or bin/console.bat under Windows)
orientdb> CONNECT DATABASE local:/temp/db admin admin
orientdb> EXPORT DATABASE /temp/db.json.gzip
orientdb> DISCONNECT
3) 创建一个新的数据库使用"plocal"引擎:
a) 在一个本地存储引擎:
orientdb> CREATE DATABASE plocal:/temp/newdb admin admin plocal graph
b) 在远程服务器: (使用服务器的身份认证访问):
orientdb> CREATE DATABASE remote:localhost/newdb root password plocal graph
4) 现在导入旧的数据库:
orientdb> IMPORT DATABASE /temp/db.json.gzip -preserveClusterIDs=true
orientdb> QUIT
5) 如果在同一个JVM访问,记着改变URL中的"local:"为"plocal:"
迁移图到RidBag
1.7版本后,RidBag是存储图的邻接关系的默认集合。尽管老版本的数据库使用MVRB树完全兼容,但是你可以更新你的数据库到更新的格式。
可以通过命令窗口或者ORidBagMigration类完成迁移。
使用命令窗口
- Connect to database
CONNECT plocal:databases/GratefulDeadConcerts
- Run
upgrade graph
command
使用API
- Create OGraphMigration instance. Pass database connection to constructor.
- Invoke method execute()