2016-02-25 98 views
0

以下是用例:我們需要從客戶端服務器備份一些表,將其複製到我們的服務器,恢復它,然後使用ODBC運行一些查詢。進度數據庫:備份恢復和查詢單個表格

我設法通過使用probkup進行備份,prorest進行恢復,並設置proserve以使其可用於SQL查詢,從而爲整個數據庫執行此過程。

但是,有些數據庫很大(> 8GB),所以我們正在尋找一種解決方案來爲我們需要的表做備份。我沒有發現任何與probkup文件有關的問題。

回答

2

Progress只支持完整的數據庫備份。

要獲得您正在查找的效果,可以轉儲(導出)所需的表,然後將它們加載到空數據庫中。

「proutil dump」和「proutil load」是您要開始挖掘的地方。

細節將根據您要執行的操作以及您可用的資源和功能而有所不同。

另一種選擇是將有問題的表複製到部分數據庫。 Progress有一個名爲「pro2」的產品,可以幫助解決這個問題。它通常指向SQL目標,但您也可以將其指向Progress數據庫。

或者,如果你有編程技巧,你可以放在一起使用複製觸發器的解決方案(這就是PRO2確實被窩裏......)

+0

謝謝湯姆,這是一個好的開始。我檢查了'proutil''dump'的文檔,好像沒有多個表的選項。 (我需要約20)。最糟糕的情況我會製作一個腳本來循環我所有的表格並逐一備份它們。問題是,假設我有20個錶轉儲文件,我可以使用'load'選項來創建一個新的數據庫,然後執行查詢嗎? – David

+1

轉儲和加載是一個複雜的話題,需要在這個空間中進行全面討論;)但簡而言之:是的,proutil一次只能處理一個表格,但如果需要的話,您可以編寫多個同時轉儲的腳本;加載應該加載到一個預先構建的空數據庫中(我會將它保存在probkup文件中,並在每次重新加載時恢復空)。你*可以*並行加載,但是加載更快。加載之後以及運行任何查詢之前,您還需要執行索引重建。我留下了很多提示和技巧 - 在pugchallenge.org/downloads上尋找想法 –

1

probkup和prorest是塊級程序,不能通過表執行備份或恢復。

要做你所要求的,你需要從源數據庫的表中轉儲數據,然後將其加載到目標數據庫中。

0

如果你的目標僅僅是爲了保持數據庫的副本,你也可以嘗試增量備份。根據你的情況,這可能會加快一點。

其他選項包括各種形式的數據庫複製,它們允許您保留數據庫的實時或接近實時的副本。

  • OpenEdge複製。使用正確的許可證,您可以對複製目標執行僅查詢訪問,這對報告和分析非常有用。
  • 第三方複製產品。就目標DB而言,這些可以更靈活,並限制要複製的表。
  • 自制複製(通過複製和應用AI文件)。這不是非常複雜,但你必須考慮工作和維護系統的成本。有一些腳本可以讓你開始。

或者,正如湯姆說的,你可以通過觸發器複製。