我在数据库中有大量数据,需要将该数据传输到另一个服务器。我使用SerializeJSON将数据写入文件,对于较小数量的数据可以正常工作,但现在出现内存不足错误。数据库服务器不在同一个网络中。他们无法互相看到,所以我想将数据传输到文件中。将数据从一个数据库传输到另一个数据库
有关如何使用文件和ColdFusion将数据从一个数据库传输到另一个数据库的想法?
我在数据库中有大量数据,需要将该数据传输到另一个服务器。我使用SerializeJSON将数据写入文件,对于较小数量的数据可以正常工作,但现在出现内存不足错误。数据库服务器不在同一个网络中。他们无法互相看到,所以我想将数据传输到文件中。将数据从一个数据库传输到另一个数据库
有关如何使用文件和ColdFusion将数据从一个数据库传输到另一个数据库的想法?
你的问题给人的印象是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分析器。
感谢您的帮助。我现在正在使用fileWriteLine写一个.csv文件。在我的情况下真正的杀手是
看看Jailer。它是一个基于Java的GUI应用程序,允许您选择数据库的特定表并根据某些标准导出数据。它工作得很好,而且使用起来很方便。
如果你有SQL Server Management Studio,为什么不创建一个完整的备份文件,将所有的数据,然后在新的数据库上运行还原。那应该还原所有的模式,表格和数据。
hth, larry
是什么样的数据库呢? – 2011-05-30 09:37:10
它是一个包含90个表的mssql数据库 – birdy1980 2011-05-30 09:38:04
为什么不简单地导出MYSQL数据并将它们导回到目标数据库? – 2011-05-30 09:40:03