将 OpenEdge v10 数据库恢复到 v11

Mar*_*son 4 progress-db database-restore openedge

我是 OpenEdge 数据库平台的新手,到目前为止我真的很挣扎。我有一位客户给了我他的数据库备份(单个.bak文件),该备份取自 OpenEdge v10。我只有一个 OpenEdge v11 数据库服务器。

我们不拥有 OpenEdge 或其他任何东西,因此据我所知,获得 v10 可能是不可能的。我们的客户只是希望我在数据库中查找一下,看看能找到什么,所以我不准备投入太多资金。

当我尝试进行恢复时,我得到:

C:\Progress\OpenEdge\bin>prorest.bat E:\Progress\ServicePro\ServicePro "E:\Progress\svcpro_l.bak"
OpenEdge Release 11.3 as of Wed Jul 17 16:46:26 EDT 2013
Start of extending target DB to needed size... (9432)
Version number mismatch, backup has 4246, database has 4269. (16691)
Restore failed. (1618)
!!! ERROR - Database restore utility FAILED !!! (8564)
Run Code Online (Sandbox Code Playgroud)

我已尽可能多地搜索并找到了这篇知识库文章,但它似乎不适用于恢复数据库,而是适用于恢复复制的数据库。

如何恢复从 v10 到 v11 的 Progress OpenEdge 数据库备份?

Tom*_*com 5

备份的问题在于,它们应该由创建它们的同一版本来恢复。也在相同的机器架构和操作系统上。您不能使用它们直接从一个版本移动到另一个版本或在平台之间移动。(尽管有时会发现一些灵活性,但它不受支持,并且在这种情况下不会为您提供帮助。)

听起来数据库一定不能太大。因此,请他们向您发送数据库的压缩副本。所有数据库。确保他们首先截断 bi 文件。在他们的盒子上:

proutil dbname -C truncate bi
Run Code Online (Sandbox Code Playgroud)

然后:

prostrct list dbname
Run Code Online (Sandbox Code Playgroud)

这将创建 dbname.st —— 该文件中包含 zip 存档中需要的每个文件的列表。确保您的客户得到所有这些。

解压它(如果使用相同的路径名,生活会更容易),然后运行:

proutil dbname -C conv1011
Run Code Online (Sandbox Code Playgroud)

现在您将拥有一个可供查看的版本 11 数据库。