我有一个db.zip
存档(包含.cpm,.pcl,.irs,.sbt,.wal,...文件)我想恢复
create database plocal:mydb admin admin
restore database /path/to/db.zip
Restoring database database /path/to/db.zip...
- Uncompressing file $FILE1_IN_ARCHIVE [...snip...]
- [...snip...]
Database restored in 0.19 seconds
对我来说,似乎恢复成功了。但是,无论我使用下一个命令(例如select * from V
),我都会收到以下错误:
Error: com.orientechnologies.orient.core.exception.ODatabaseException: Database 'mydb' is closed
我做错了吗?为什么数据库关闭?我怎么能打开它?
答案 0 :(得分:2)
我按照这些步骤尝试了使用OrientDB版本2.1.11的情况(之前我使用新名称mydb.zip
创建了数据库的备份副本)。
创建新数据库:
create database plocal:/path/to/db/newDB admin admin
Creating database [plocal:/path/to/db/newDB] using the storage type [plocal]...
Database created successfully.
恢复mydb.zip
:
restore database C:/path/to/db/mydb.zip
Restoring database database C:/path/to/db/mydb.zip...
...
Database restored in 0,29 seconds
从V
中选择所有顶点(我得到相同的例外):
orientdb {db=newDB}> select * from V
Error: com.orientechnologies.orient.core.exception.ODatabaseException: Database 'newDB'
is closed
这个(您的)问题似乎与此issue有关,其中解释了在plocal
模式下使用另一个正在运行的OrientDB实例访问数据库会产生冲突。
如果您关闭打开的OrientDB实例并尝试以plocal
模式连接到数据库,您将能够访问数据库。
关闭正在运行的OrientDB实例并以plocal
模式重新连接:
orientdb> connect plocal:/path/to/db/newDB admin admin
Connecting to database [plocal:/path/to/db/newDB] with user 'admin'...OK
再次从V
选择所有顶点:
orientdb {db=newDB}> select * from V
----+-----+-------+------+--------
# |@RID |@CLASS |name |category
----+-----+-------+------+--------
0 |#12:0|Station|First |#13:0
1 |#12:1|Station|Second|#13:1
2 |#12:2|Station|Third |#13:2
----+-----+-------+------+--------
无论如何,我还尝试使用新的 OrientDB 2.2.0 beta ,并且在此版本中,此行为不会发生:
Restoring database 'database C:/path/to/db/mydb.zip' from full backup...
...
Database restored in 0,75 seconds
orientdb {db=newDB}> select * from V
----+-----+-------+------+--------
# |@RID |@CLASS |name |category
----+-----+-------+------+--------
0 |#12:0|Station|First |#13:0
1 |#12:1|Station|Second|#13:1
2 |#12:2|Station|Third |#13:2
----+-----+-------+------+--------
希望有所帮助