載入數據庫轉儲時出錯(跨平台)
在 Sybase (15.0.3) 壓縮轉儲原始平台上的數據庫後 - Solaris Sparc 64 - 具有所有必需的步驟(甚至是靜默步驟),我試圖將它載入到我的 Sybase (15.7) Solaris x64 上(在vmware),
$$ equal page sizes on both systems !!! $$我得到了這個錯誤:
1> load database wfcv2 from "compress::1::/20120412_wfcv2_zdump" 2> go Backup Server session id is: 28. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 4.132.1.1: Attempting to open byte stream device: 'compress::1::/20120412_wfcv2_zdump::000' Backup Server: 4.177.2.1: The database page size of 2048 bytes obtained from ASE is different from the database page size of -1024 bytes read from the dump header. The LOAD session must exit. Backup Server: 1.14.2.2: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Backup Server: 6.32.2.3: compress::1::/20120412_wfcv2_zdump::000: volume not valid or not requested (server: , session id: 28.) Backup Server: 1.14.2.4: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Msg 8009, Level 16, State 1: Server 'MYSERVER', Line 1: Error encountered by Backup Server. Please refer to Backup Server messages for details.
建議?
來自 PHILL 的問題:您能否發布以下輸出:使用 headeronly 從“compress::1::/20120412_wfcv2_zdump”載入數據庫 wfcv2 並使用 listonly=full 從“compress::1::/20120412_wfcv2_zdump”載入數據庫 wfcv2 – Phil
1> load database wfcv2 from "compress::1::/20120412_wfcv2_zdump" with headeronly 2> go Backup Server session id is: 31. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 4.132.1.1: Attempting to open byte stream device: 'compress::1::/20120412_wfcv2_zdump::000' Backup Server: 4.177.2.1: The database page size of 2048 bytes obtained from ASE is different from the database page size of -1024 bytes read from the dump header. The LOAD session must exit. Backup Server: 1.14.2.2: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Msg 8009, Level 16, State 1: Server 'MYSERVER', Line 1: Error encountered by Backup Server. Please refer to Backup Server messages for details. 1> 2> 3> load database wfcv2 from "compress::1::/20120412_wfcv2_zdump" with listonly=full 4> go Backup Server session id is: 33. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 4.22.1.1: Option LISTONLY is not valid for device 'compress::1::/20120412_wfcv2_zdump::000'. Msg 8009, Level 16, State 1: Server 'MYSERVER', Line 3: Error encountered by Backup Server. Please refer to Backup Server messages for details. 1> 2> 3> Backup Server messages ------------------------------------------------------------------------------------------------------------------------- Apr 12 11:38:00 2012: Backup Server: 2.23.1.1: Connection from Server MYSERVER on Host MyMachine with HostProcid 3776. Apr 12 11:38:00 2012: Backup Server: 4.132.1.1: Attempting to open byte stream device: 'compress::1::/20120412_wfcv2_zdump::000' Apr 12 11:38:00 2012: Backup Server: 4.177.2.1: The database page size of 2048 bytes obtained from ASE is different from the database page size of -1024 bytes read from the dump header. The LOAD session must exit. Apr 12 11:38:00 2012: Backup Server: 1.14.2.2: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Apr 12 11:38:18 2012: Backup Server: 2.23.1.1: Connection from Server MYSERVER on Host MyMachine with HostProcid 3776. Apr 12 11:38:18 2012: Backup Server: 4.22.1.1: Option LISTONLY is not valid for device 'compress::1::/20120412_wfcv2_zdump::000'.
PHILL 的問題/評論:實際上,我認為這是您的語法。-1024 塊大小的東西是紅鯡魚。嘗試:從“compress::/20120412_wfcv2_zdump”載入數據庫 wfcv2 - 20120412_wfcv2_zdump 在哪個目錄?它真的在您盒子上的根 (/) 目錄中嗎?如果不是,請更改路徑。– 菲爾
1)我已經嘗試了你的建議並得到了同樣的錯誤!
2)因為我試圖載入轉儲的機器是我的測試機器(而且我在任何地方都沒有更多可用空間……),我正在使用/(根)位置放置轉儲文件以進行載入。是的,這不是正確的做法,但正如我所說的“沒有可用空間!”。
來自 PHILL 的問題/評論: LOAD 語法不正確。
您不應該在 LOAD DATABASE 命令中指定: 字元對之間的壓縮級別。
假設您的轉儲文件位於 /20120412_wfcv2_zdump 的本地文件系統上,您的載入命令應該是:
1> 從“compress::/20120412_wfcv2_zdump”載入數據庫 wfcv2 2> 去
Sybase 建議優先使用本機“compression = compress_level”選項,而不是舊的“compress::compression_level”選項。如果您使用轉儲數據庫的 native 選項,則在載入數據庫時不需要使用“compress::compression_level”。
如前所述,sybase 推薦!
根據我的個人經驗,我知道載入語法是正確且有效的。昨天能夠將其他 BD 從同一源伺服器載入到 MyMachine。只有這個超過 10 GB 空間(+/- 2GB 壓縮…)的數據庫會導致問題…
來自 PHILL 的問題/評論:你確定你有同樣的錯誤嗎?文件名是否正確?ls -al /20120412_wfcv2_zdump 的輸出是什麼?您可能需要 chmod 777 /20120412_wfcv2_zdump 它 – Phil
- 是的,名字是正確的!
2)這不是權限問題。我對所有事情都使用 root 使用者(是的,這不是正確的做法,但正如我所說,這是我的個人測試機器!)。
PHILL 的問題/評論:好的,我再次閱讀了手冊。載入格式肯定是從“compress::/20120412_wfcv2_zdump”載入數據庫 wfcv2 用於壓縮卷,而不是“compress::1::/ … - 請發布由此生成的錯誤的輸出,以便我看到(我知道你說你試過了,但我還是想看看)。文件甚至聲明不要將壓縮級別設置為“1”。最後一件事 - 你是否不小心以 ASCII 模式 ftp 文件? - Phil
好的 !來了!…而“您是否以 ASCII 格式 ftp 文件”的答案是否定的!不管怎麼說,還是要謝謝你 !
1> 2> 3> load database wfcv2 from "compress::/20120412_wfcv2_zdump" 4> go Backup Server session id is: 35. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 4.132.1.1: Attempting to open byte stream device: 'compress::/20120412_wfcv2_zdump::000' Backup Server: 4.177.2.1: The database page size of 2048 bytes obtained from ASE is different from the database page size of -1024 bytes read from the dump header. The LOAD session must exit. Backup Server: 1.14.2.2: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Backup Server: 6.32.2.3: compress::/20120412_wfcv2_zdump::000: volume not valid or not requested (server: , session id: 35.) Backup Server: 1.14.2.4: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit. Msg 8009, Level 16, State 1: Server 'MYMACHINE', Line 3: Error encountered by Backup Server. Please refer to Backup Server messages for details.
我相信所有這些問題的答案可以是最簡單的答案: - 數據損壞……!
以防萬一,我會再做一次轉儲,然後再次嘗試載入它!
菲爾,謝謝你的時間!;-)
好的 !讓我描述一下這個問題是如何解決的:
1)solaris 10 上的 vmware 工具問題肯定存在損壞問題。當網路介面具有高傳輸/負載操作時(範例:2 GB DB 的副本 ….),它剛剛停止工作,在操作的中間。為了讓介面再次工作,我不得不斷開並再次連接網路介面(在 vmware 介面中!)。基本上,我必須在 solaris 虛擬機上解除安裝 vmware 工具。有一個問題,可以實現的最高傳輸速率約為 300 Kb。基本上我可能需要幾個小時來執行一個 2 GB 數據庫的簡單 ftp 傳輸,但根本沒有任何損壞。如何證明/測試存在/不存在任何腐敗。我只是(在源機器上)將數據庫轉儲打包到一個 tar 文件中(是的,額外的 20kb),但是在下載完成後,在目標伺服器上,
2)在確定轉儲沒問題後,我得到了一個不同的錯誤:
Apr 17 14:24:20 2012: Backup Server: 4.188.1.1: Database wfcv2: 158936 kilobytes (1%) LOADED. Apr 17 14:24:47 2012: Backup Server: 4.188.1.1: Database wfcv2: 303212 kilobytes (2%) LOADED. Apr 17 14:25:16 2012: Backup Server: 4.188.1.1: Database wfcv2: 447104 kilobytes (3%) LOADED. Apr 17 14:25:39 2012: Backup Server: 4.124.2.1: Archive API error for device='compress::1::/data4/20120413_wfcv2_zdump::000': Vendor application name=Compress API, Library version=1, API routine=syb_read(), Message=syb_read: gzread() error=0, msg=Error 0 Apr 17 14:25:39 2012: Backup Server: 4.124.2.1: Archive API error for device='compress::1::/data4/20120413_wfcv2_zdump::000': Vendor application name=Compress API, Library version=1, API routine=syb_close(), Message=syb_close: gzclose() error=-3 msg=Input/output buffer is corrupt Apr 17 14:25:39 2012: Backup Server: 6.32.2.3: compress::1::/data4/20120413_wfcv2_zdump::000: volume not valid or not requested (server: , session id: 20.) Apr 17 14:25:39 2012: Backup Server: 1.14.2.4: Unrecoverable I/O or volume error. This DUMP or LOAD session must exit.
好的 !sybase 配置問題!
我不得不配置一些與載入操作相關的參數,例如:
大型 i/o 緩衝區的數量 -> 32 最大記憶體
還有一個 Solaris 問題!
我還不得不將作業系統共享記憶體調整為sybase引擎……!
我終於能夠載入數據庫(大小> 2.1 GB)!
;-) 乾杯!