![SCO Openserver 6上整个DB的数据提取](https://linux22.com/image/29228/SCO%20Openserver%206%E4%B8%8A%E6%95%B4%E4%B8%AADB%E7%9A%84%E6%95%B0%E6%8D%AE%E6%8F%90%E5%8F%96.png)
首先,如果这个问题看起来像是一堵文字墙,我深表歉意,我想不出一种格式化它的方法。
我有一台机器上有有价值的数据(大约 1995 年),该机器运行 UNIX (SCO OpenServer 6),上面存储了一个未知的数据库。
通常通过许可证已过期并且开发人员不再进行交易的软件包来访问数据。
该软件包通过telnet连接到机器来检索数据和修改数据(由于许可证更改,telnet连接不再起作用)。
我可以通过网络上的 ODBC 驱动程序 (SeaODBC.dll) 访问机器,这就是我计划提取数据的方式,但到目前为止,我在短短 24 小时内检索了 300,000 行,我估计总共会有大约总共 50,000,000 行,所以按照目前的速度需要 6 个月!
我尝试过 UNIX 界面,我能找到的唯一大文件位于单个字符文件夹的巨大矩阵中(例如 A>G>data、A>H>data 等)。
我需要一种更快的方法通过 ODBC 从机器中提取数据,或者需要一种将机器上本地的整个数据库提取到外部驱动器/网络驱动器或其他外部源的方法。
有谁知道如何找出机器上安装的数据库系统?希望它是一个标准,我将能够找到一种方法将所有内容导出到格式良好的文件中!
答案1
一些需要尝试的事情(排名不分先后):
file(1)
也许能够识别这些文件- 任何奇怪的、未安装的磁盘分区都可能是原始设备
- 翻查一下
/etc/init.d
(或者它用来启动服务的任何系统),数据库可能是以某种方式从那里启动的。 strings(1)
应用于可执行文件通常有助于识别标注、版本字符串等- 如果许可证已过期,您可以尝试将日期设置回来...
- 也许通过谷歌搜索软件包的供应商可以找到他们最喜欢的数据库的一些提示
- 只需将整个磁盘复制到其他地方,然后在功能更强大的机器上进行分析即可
- 我使用 SCO 系统长的以前,那是一种巨大的痛苦。但当时它有一个基本的包管理系统,并且使用它安装了第三方包。也许你可以说服它告诉它安装了什么。
答案2
我终于解决了这个问题,使用另一个工具(不是通过 MS Access 或 MS Excel)运行查询速度大大加快,最终使用 DaFT(数据库钓鱼工具)来处理SELECT INTO
文本文件。在几个小时内处理了全部 5000 万行。
看来我使用的 dll 驱动程序不能与任何 MS 产品配合良好。