線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1224
推到 Plurk!
推到 Facebook!

請問關於INTERBASE 資料庫 backup restore 問題

尚未結案
hules
一般會員


發表:2
回覆:0
積分:0
註冊:2004-04-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-12 14:05:42 IP:61.56.xxx.xxx 未訂閱
請教各位高手先進 小弟使用 IBConsole 替一個資料庫作BACKUP的動作(沒問題) 產生出一個*.GBK 但很不幸的 也不知為何 在作restore 的時候 到了某一個TABLE 及發生了錯誤 導致後面的TABLE 都沒被restore 回去 更糟的是 我restroe 的選項是 選擇 OVERWRITE 所以目前只剩 可能是沒問題的 *.GBK(因為backup沒出現錯誤) 請問有什麼方法能夠將 *.gbk 在有錯誤的情況下(可忽略不管) 強制restore 回去的方法嗎? 或是有什麼方法能夠救回原有的資料? 最終目的是在僅有 *.GBK 的情況下 能夠回覆原有的 GDB嗎? 或是有其他工具能做到嗎? 發表人 - hules 於 2004/08/12 14:08:26
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-12 14:42:08 IP:220.135.xxx.xxx 未訂閱
Hi hules 你好 不曉得是不是Restore Index的錯誤, 試著在Restore那邊的Deactivate Indecies設為True 試試, 這樣做Index將不會被建立. 在不行將Commit After Each Table 設為True, 能救多少資料就救多少 Good Luck 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-13 21:07:40 IP:61.71.xxx.xxx 未訂閱
引言: 請教各位高手先進 小弟使用 IBConsole 替一個資料庫作BACKUP的動作(沒問題) 產生出一個*.GBK 但很不幸的 也不知為何 在作restore 的時候 到了某一個TABLE 及發生了錯誤 導致後面的TABLE 都沒被restore 回去 更糟的是 我restroe 的選項是 選擇 OVERWRITE 所以目前只剩 可能是沒問題的 *.GBK(因為backup沒出現錯誤) 請問有什麼方法能夠將 *.gbk 在有錯誤的情況下(可忽略不管) 強制restore 回去的方法嗎? 或是有什麼方法能夠救回原有的資料? 最終目的是在僅有 *.GBK 的情況下 能夠回覆原有的 GDB嗎? 或是有其他工具能做到嗎? 發表人 - hules 於 2004/08/12 14:08:26
如果你有IBexpress 元件, 內有提供 IBbackup, IBrestore 兩個元件來做, 範例如下 IBX元件可到下面下載 IBX ??? FOR Delphi? (我目前用IBX5.04SP1 FOR D5) http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102 安裝後會出現一組 InterBase Admin 的元件盤, 其中就有 TIBBasckupService, TIBRestoreService
// 重整InterBase(先backup)
with IBBackupService1 do begin
     ServerName:= dComputerName;   // client端的電腦名稱
     Active:= True;
     try
        Verbose:= True;
        Options:= [NonTransportable, IgnoreLimbo];
        DatabaseName:= ibName;   // 原來的InterBase檔來源(含完整路徑)
        BackupFile.Clear;
        BackupFile.Add(bakFile); // 給一個備份目的檔 bakFile(含完整路徑)
        ServiceStart;
        while not Eof do GetNextLine;
     finally
        Active:= False;
     end;
end;    //回存
with IBRestoreService1 do begin
     ServerName:= dComputerName;
     Active:= True;
     try
        Verbose:= True;
        Options:= [Replace, UseAllSpace];
        PageBuffers:= 3000;
        PageSize:= 4096;
        DatabaseName.Text:= rstFile;   // 欲回存的檔案(含完整路徑)
        BackupFile.Text:= bakFile;  // 之前的備份檔
        ServiceStart;
        while not Eof do GetNextLine;
     finally
        Active:= False;
     end;
end;
建議回存檔案時, 請不要回存到原來的InterBase檔, 最好採用 回存到其他地方, 在回存成功時再用copyfile丟回去 試試看, 可以減少 20-35%的大小! 發表人 - P.D. 於 2004/08/13 21:09:06
系統時間:2024-07-08 13:05:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!