Database I';I’我试图在一个巨大的二进制加载后重建Progress数据库上的索引,得到了这个错误

Database I';I’我试图在一个巨大的二进制加载后重建Progress数据库上的索引,得到了这个错误,database,openedge,progress-db,Database,Openedge,Progress Db,刚刚使用批处理脚本通过二进制加载将655个表导入650gb硬盘上新创建的数据库 Idxbuild正在使用线程运行,最大线程数为1。(13942) TMB值为8,TM值为8,SG值为48,填充系数为100。(16141) 位于C:\Progress\OpenEdge\bin的临时排序文件将使用可用的磁盘空间 总工程师。(11443) 系统错误:无法在区域架构区域内扩展数据库。(8897) 我在文档中找不到任何解决方案 汤姆·巴斯科姆——我知道你知道解决这个问题的办法 谢谢社区 从知识库: 当数据库

刚刚使用批处理脚本通过二进制加载将655个表导入650gb硬盘上新创建的数据库

Idxbuild正在使用线程运行,最大线程数为1。(13942) TMB值为8,TM值为8,SG值为48,填充系数为100。(16141) 位于C:\Progress\OpenEdge\bin的临时排序文件将使用可用的磁盘空间 总工程师。(11443) 系统错误:无法在区域架构区域内扩展数据库。(8897)

我在文档中找不到任何解决方案

汤姆·巴斯科姆——我知道你知道解决这个问题的办法

谢谢社区

从知识库:

当数据库存储区域为以下任一区域时,会出现这种情况:

a、 )完全由固定长度的扩展数据块组成,最后一个扩展数据块已 变满,b.)可变长度范围需要超过 2Gig文件大小限制,以适应写入和较大的文件,但没有 已启用,或c.)当用户点击中定义的ulimit时 他们的.profile(UNIX)或磁盘配额限制(Windows)

在上述任何一种情况下,进程运行都会中止并恢复 必须运行


此外:

必须使数据库的更多扩展数据块可用。这个 必须使用prostrct实用程序添加额外空间。在未来 一个区域内最后一个范围的高水位线可以监测到 这一事件的预警。完成此操作后,重新启动数据库 并允许进行碰撞恢复

参考书面文件参考 ProgressManuals:数据库管理指南和参考-章节 9“维护数据库结构”


另外,为什么要将临时空间指向progress bin目录进行排序?将其指向一个空的临时目录


在排序和处理空间问题时,使用临时目录(-T)启动参数来标识由PROUTIL实用程序创建的临时文件或将其重定向到指定目录。

什么版本的进度

正如蒂姆所说,这是一个非常奇怪的地方,你的临时文件。那是怎么发生的?我猜您的工作目录是%DLC%\bin

您正在扩展模式区域?为什么?您是否忘记将所有数据、索引和LOB移动到类型2存储

通过从结构文件中删除所有区域信息,可以将所有内容都放在架构区域中

您可能也没有创建具有多个扩展数据块的结构文件,等等?因此,只有一个初始范围

您似乎还没有启用大文件。这意味着一旦数据量达到2GB,它就无法增长

因此,快速简便的解决方案可能是:

proutil dbName -C enablelargefiles

注意:这是一种设置数据库的糟糕方法——不要在实际系统中这样做。但是,据我所知,您只是想一次性加载这些数据,以便将其导出为CSV数据。

感谢您的指点——我有《数据库管理指南》,它对我很有帮助。我不确定何时、为何或如何指示我的系统创建临时文件@C:\Progress\OpenEdge\bin。。我该怎么改变呢?如果你愿意花点钱,汤姆或我都可以提供所需的服务来加载数据,然后再将数据转储出来。蒂姆——非常感谢你的帮助。如果我们在这方面需要任何进一步的帮助,我会联系您进行咨询。我能够将所有的表转换成CSV——阅读下面的注释。我从10.1b版数据库创建了二进制转储文件。我还能够获得.df文件。我必须创建5个不同的.df文件,因为表太多了。我不是在扩展模式区域,我只是在二进制加载所有内容后重建索引。我是这样做的——我无法获得-dumplist,因为我最初使用的10.1b的专有副本中没有实际的dump实用程序。所以我找到了一个批处理脚本,它为每个表创建了一个.bd文件。我从Progress软件那里得到了一个10.1b开发者席位的报价,这超出了我们的预算。我们愿意花500美元买这个座位,但他们报了2500美元。所以我决定将这些二进制转储加载到评估版本11.0中。请记住,我在这里的唯一目的是将数据转换为文本。因此,当我试图将.df文件导入我新创建的11版数据库时,它发出了吠声,因为我没有任何相同的区域(许多)因此,我使用notepad++删除了对.df中区域的数千个引用,并且所有表都是使用数据库管理实用程序创建的。然后,我能够使用一些正则表达式创建一个批处理脚本,该正则表达式使用proutil-C load命令包装了655.bd文件目录中的每个路径。脚本成功导入了655个表中的每个表。前几天,当我测试这个时,我能够导入一个表,重建该表的索引,并将数据导出到文本。现在我已经有了所有655个表——它在索引重建中失败了——说它无法扩展数据库。现在我们有了一些上下文,回答起来就容易多了;)在许可证方面——这听起来像是一个成熟的开发许可证。出于您的目的,“查询”许可证可能已经足够了。或“4gl编译器”许可证。