将另一个关系数据库插入 OpenDS

Posted

技术标签:

【中文标题】将另一个关系数据库插入 OpenDS【英文标题】:Plugging another relational DB to OpenDS 【发布时间】:2012-08-22 06:14:49 【问题描述】:

目前我正在开发一个带有 opends 的项目。我必须在 OpenDS 中上传超过 200k 的条目。但不幸的是,当文件限制超过 10k - 15k 时,它会随机失败。

当我用谷歌搜索该特定错误(警报 ID 9896233:与后端 ID userRoot 对应的 JE 数据库环境已损坏。重新启动目录服务器以重新打开环境)时,似乎 openDS 后端数据库 [BerklyDB] 在添加时并不那么可靠大量的条目。我如何将新的商业或开源可靠关系数据库 [Oracle/H2] 插入到 openDS。任何配置?还是我必须更改 openDS 代码?

【问题讨论】:

【参考方案1】:

首先您应该知道,Oracle 已经停止了 OpenDS 项目,现在它完全停止了。像 OpenDJ 项目一样开源继续开发:http://opendj.forgerock.org。

这样说,我相信你的环境有问题。当我还在开发 OpenDS 时,我们的基本压力测试是针对 1000 万用户导入和运行非常高的负载。 200K 条目并不是一个庞大的数字。我在笔记本电脑上的日常 OpenDJ 测试是使用 100K 到 1M 条目完成的。我们有客户在使用 OpenDJ 进行生产,有超过 2000 万个条目,每 6 个月增长 40%!

Berkeley DB 已被证明是非常可扩展且可靠的。 您可能想要检查的事情:您机器上的单个进程可以打开的最大文件数是多少? Linux 默认为 1024,使用 OpenDS 或 OpenDJ 可能很容易达到此限制。您使用的是本地文件系统吗? Berkeley DB 在 NFS 或其他 NAS 等联网 FS 上不受支持。

最后,检查日志/错误文件和您的系统日志。其中一个可能会收到一条包含问题根本原因的消息(很可能是日志/错误)。

亲切的问候,

卢多维奇·普瓦图

ForgeRock - OpenDJ 产品经理

【讨论】:

非常感谢您宝贵的快速响应。我会在今天白天尝试使用 OpenDJ 并让你知道状态。 再次感谢。在“server.out”日志中发现了以下异常。 捕获异常:com.sleepycat.je.log.DbChecksumException: (JE 3.3.82) 位置 0xb37/0x18529a 预期 230608380 得到 3064670493 com.sleepycat.je.log.DbChecksumException: (JE 3.3.82) 位置 0xb37/0x18529a 预期 230608380 在 com.sleepycat.je.log.ChecksumValidator.validate(ChecksumValidator.java:96) 处得到 3064670493 .. 退出 捕获异常:由于先前的异常,环境无效:com.sleepycat.je.log.DbChecksumException:(JE 3.3.82)位置 0xb37/0x18529a 预期 230608380 得到3064670493 由于先前的异常,环境无效:com.sleepycat.je.log.DbChecksumException: (JE 3.3.82) 位置 0xb37/0x18529a 预期 230608380 在 com.sleepycat.je.log.ChecksumValidator.validate(ChecksumValidator.java:96) 获得 3064670493 ) ... 退出

以上是关于将另一个关系数据库插入 OpenDS的主要内容,如果未能解决你的问题,请参考以下文章

核心数据多对多关系导致获取的结果控制器崩溃

核心数据:插入具有关系的数据时遇到问题

将一个对象插入多个关系 - IOS核心数据

核心数据关系,如何从关系中插入和检索数据

从弹出按钮插入 Cocoa 核心数据项目关系

具有现有关系奇怪问题的核心数据插入[重复]