首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从一个数据库传输到另一个数据库

将数据从一个数据库传输到另一个数据库
EN

Stack Overflow用户
提问于 2011-05-30 17:33:59
回答 4查看 1.3K关注 0票数 1

我在数据库中有大量数据,需要将这些数据传输到另一台服务器。我正在使用SerializeJSON将数据写入文件,这对于较小的数据量很有效,但现在我遇到了内存不足的错误。数据库服务器不在同一网络中。它们可以“看到”彼此,所以这就是为什么我要在文件中传输数据的原因。

关于如何使用文件和ColdFusion将数据从一个数据库传输到另一个数据库,有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-31 06:50:58

您的问题给人的印象是OOM正在写出数据。可能是通过尝试写入整个记录集。相反,您可能需要编写一个遍历数据页的算法- SQL Server's ROW_NUMBER(ORDER BY x, y, z)是实现此目的的正确方法。然后,您可以写出几个文件,或者使用fileWrite(fileObj, data)创建一个大文件-后者您可能需要使用除JSON之外的其他格式,比如CSV。

现在,如果问题出在数据插入上,请使用there is a bug with ColdFusion and looping over SQL statements。基本上,在重复循环时,您需要将<cfquery>INSERT...</cfquery>放入<cfthread/>中。

最后,如果您在从文件读取数据时遇到问题,则需要进行缓冲读取。在这种情况下,如果使用XML,则需要使用CSV作为序列化格式,或者使用SAX XML解析器,但我不知道有以缓冲方式读取的JSON解析器。

票数 1
EN

Stack Overflow用户

发布于 2011-05-30 20:13:59

我解决这个问题的方法是切断应用服务器(ColdFusion),并尝试使用DTS启动进程。其思想是将每个表中的特定数据库行导出为单个导出,然后将其导入到另一个数据库中。

因此,请查看您的模式,找出需要查询的表,并为每个表编写这些查询。根据新数据库中的主键,您可能需要修改导入语句以避免插入主键,而是让数据库来处理-并且您将需要调整引用此(更改后的)主键的任何其他导入。

这是一项棘手的工作,我认为最好是使用DTS等数据库工具手动完成。

我希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2011-05-30 17:59:57

看看Jailer吧。它是一个基于Java的GUI应用程序,允许您选择数据库的特定表并根据某些条件导出数据。它工作得很好,而且很容易使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6174528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档