从 Progress-4gl 数据库获取修复体大小

Getting restoration size from a Progress-4gl database

如何确定已恢复的数据库在完全恢复后将消耗多少磁盘存储空间 space?这样做的目的是确保在 尝试恢复数据库之前有足够的存储空间 space

你必须做一些数学运算,但你可以使用 prorest 的 -list 参数。

prorest -list <restoredb> <backupfile>

您将获得每个区域的列表及其大小和每个块的记录。

Area Name: Schema Area
       Size: 12345, Records/Block: 32, Area Number: 6, Cluster Size: 1

将大小除以每个块的记录数,然后将其乘以块大小。对每个区域都这样做,将它们加起来,这应该是您的数据库大小。

文档中有一个很好的示例。我会把它拉到这里:

Table 108. 示例 PROREST -list 输出

OpenEdge Release 10.2B1P as of Wed Oct 21 19:01:48 EDT 2009
Area Name: Schema Area
       Size: 11264, Records/Block: 32, Area Number: 6, Cluster Size: 1
Area Name: Info Area
       Size: 1024, Records/Block: 32, Area Number: 7, Cluster Size: 1
Area Name: Customer/Order Area
       Size: 6656, Records/Block: 32, Area Number: 8, Cluster Size: 8
Area Name: Primary Index Area
       Size: 112, Records/Block: 1, Area Number: 9, Cluster Size: 8
Area Name: Customer Index Area
       Size: 256, Records/Block: 1, Area Number: 10, Cluster Size: 64
Area Name: Order Index Area
       Size: 8192, Records/Block: 32, Area Number: 11, Cluster Size: 64
Area Name: Encryption Policy Area
       Size: 20448, Records/Block: 32, Area Number: 12, Cluster Size: 64
Area Name: Audit Area
       Size: 4608, Records/Block: 32, Area Number: 20, Cluster Size: 8
Area Name: Audit Index
       Size: 8704, Records/Block: 32, Area Number: 22, Cluster Size: 8

使用 PROREST -list 的输出计算每个恢复区域的大小如下:

area-size = (Size / records-per-block) * database-block-size

例如恢复后的schema区域大小为:

area-size = (Size / records-per-block) * database-block-size
1,441,792 = (11264 / 32) * 4096

1441792 将以字节为单位,因此将其除以 1024(或 1024 * 1024)以得到千字节(或兆字节)等。

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dmadm%2Fprorest-utility.html%23