我在數據庫中有大量數據,需要將該數據傳輸到另一個服務器。我使用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