migration - 将 RMS 迁移到 RDB

标签 migration data-migration openvms

我们正在着手将遗留 OpenVMS RMS 文件迁移到关系数据库(MS SQL 2012 和 Oracle 10g 均可用)。 我想知道是否有:

  • 检索索引文件模式的工具
  • 解析索引文件的工具
  • 处理自定义 RMS 数据格式(分区小数等)的工具 作为一个包/API/库 也许我应该改变方法?

最佳答案

有多种工具可用,主要是通过 ODBC 供应商提供的(我为其中一家工作:Attunity)。

1 >> 检索索引文件架构的工具

请澄清。仅查找文件中的记录/列布局和索引或文件之间的关系。

1a) 当前使用的文件如何? Cobol、Basic、Fortran 程序?数据检索? 他们将使用一些数据定义方法,因此您需要一个可以利用它的工具。 Connx 和 Attunity Connect 可以“导入”CDD 定义、BASIC - MAP 文件、Cobol Copybooks。变体通常也包括在内。我写了很多 (perl/awk) 脚本来将特殊定义转换为 XML。

1b ) Analyze/RMS,或者调用RMS XAB的程序可以获得可用的索引信息。 Atunity connect 将知道如何将这些映射到 1a) 中的字段

1c ) OpenVMS 上的(索引)文件之间没有正式的、存储的关系。这就是程序逻辑中的全部内容。然而,一些适度智能的 Perl/Awk/DCL 脚本通常可以通过查看文件名和数据类型匹配来生成可能的外键/主键表。

我们在谈论多少文件/布局/千兆字节?

2 >> 解析索引文件的工具

请澄清一下?一旦结构已知(问题 1),解析是通过使用该结构读取来完成的,对吗?您永远不想了解索引文件的内部结构。只需告诉 RMS 获取记录即可。

3 >> 将自定义 RMS 数据格式(分区小数等)作为 bundle /API/库处理的工具

再次,请澄清。一旦结构已知,只需使用“正确”工具使用该结构进行阅读,它肯定会遵守详细的数据定义。

(I know it is quite simple to write one yourself, just thought there would be something in the industry)

著名的遗言...“非常简单”。整个公司已经建立并蓬勃发展,只是为了一般情况。我承认对于特定情况,它可能相对简单,但“细节决定成败”。

在 Attunity Connect 案例中,我们有一个 UDT(用户定义数据类型)来处理“奇数”案例,通常涉及 DATES。整数日期、字符串日期、自 xxx 以来作为单位的日期都是开箱即用的,但例如有些日期有 -1 表示“某个高日期”,需要一些帮助才能存储在数据库中。

所有数据库都有一些批量加载工具(BCP、SQL$LOADER)。 只要您能够提供符合这些期望的数据(表格、逗号分隔、引号或不引号、转义或不转义),您就应该处于良好状态。

EGH 工具 Vselect 可能是一种方便且高性能的方法,可以批量读取索引文件、过滤和格式化一些文件并为 DB 加载程序输出顺序文件。它可以比 RMS 更快地读取 RMS 索引文件! (虽然它有自己的元数据语言!)

Attunity 提供完全访问和复制服务。 它们包括一个 CDC(更改数据捕获),不仅可以加载数据,还可以使数据近乎实时地保持最新状态。这对于“进化”与“革命”很有用。 查看 Attunity“复制”。有了数据字典后,只需指向所需的表(包括、排除过滤器),指向目标数据库并单击即可复制。当然,有(全局或每个表)转换的选项(例如 AREA-CODE+EXHANGE+NUMBER 到单个电话号码,或添加修改日期列)。

这将是一次大的转换转换,还是希望迁移数据并让旧系统存活数天、数月、数年,并一直保持数据密切同步?

希望这对一些人有所帮助, Hein van den Heuvel。

关于migration - 将 RMS 迁移到 RDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063623/

相关文章:

ruby-on-rails - 什么会导致迁移除了保留正确的版本外什么都不做?

php - Laravel 迁移 :rollback adding and deleting table columns

iphone - 核心数据模型更改后如何从备份恢复 SQLite 数据库(轻量级迁移)

c# - 具有现有数据库 View 的 Entity Framework 代码优先

django - Django 中的数据迁移

c# - 如何为 SQLite 创建身份服务器数据库?

mysql - 如何将表从 SQL Server 复制到 MySQL?

c - LIS、OBJ、EXE文件之间有什么关系?

c - 字符串、获取和执行

Java BufferedReader openvms