Sybase

載入數據庫轉儲時出錯(跨平台)

  • September 5, 2017

在 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”。

在: http: //infocenter.sybase.com/help/index.jsp ?topic=/com.sybase.help.ase_15.0.commands/html/commands/commands64.htm

如前所述,sybase 推薦!

根據我的個人經驗,我知道載入語法是正確且有效的。昨天能夠將其他 BD 從同一源伺服器載入到 MyMachine。只有這個超過 10 GB 空間(+/- 2GB 壓縮…)的數據庫會導致問題…

來自 PHILL 的問題/評論:你確定你有同樣的錯誤嗎?文件名是否正確?ls -al /20120412_wfcv2_zdump 的輸出是什麼?您可能需要 chmod 777 /20120412_wfcv2_zdump 它 – Phil

  1. 是的,名字是正確的!

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)!

;-) 乾杯!

引用自:https://dba.stackexchange.com/questions/16418