OrientDB恢复 - >数据库已关闭

时间:2016-03-09 21:23:00

标签: orientdb

我有一个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

我做错了吗?为什么数据库关闭?我怎么能打开它?

1 个答案:

答案 0 :(得分:2)

我按照这些步骤尝试了使用OrientDB版本2.1.11的情况(之前我使用新名称mydb.zip创建了数据库的备份副本)。

  1. 创建新数据库:

    create database plocal:/path/to/db/newDB admin admin
    
    Creating database [plocal:/path/to/db/newDB] using the storage type [plocal]...
    
    Database created successfully.
    
  2. 恢复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
    
  3. V中选择所有顶点(我得到相同的例外):

    orientdb {db=newDB}> select * from V
    
    Error: com.orientechnologies.orient.core.exception.ODatabaseException: Database 'newDB'
           is closed
    
  4. 这个(您的)问题似乎与此issue有关,其中解释了在plocal模式下使用另一个正在运行的OrientDB实例访问数据库会产生冲突。 如果您关闭打开的OrientDB实例并尝试以plocal模式连接到数据库,您将能够访问数据库。

    1. 关闭正在运行的OrientDB实例并以plocal模式重新连接:

      orientdb> connect plocal:/path/to/db/newDB admin admin
      
      Connecting to database [plocal:/path/to/db/newDB] with user 'admin'...OK
      
    2. 再次从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
      ----+-----+-------+------+--------
      
    3. 无论如何,我还尝试使用新的 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
          ----+-----+-------+------+--------
      

      希望有所帮助