SAP*とDDICどっちが必要?

インフラ寄りのSAPのこととか

SAP ASE(SYBASE)のDBバックアップの圧縮率(compression option)

ASEのバックアップの圧縮レベル(compress level)で9と101どっちが圧縮率が高いか実験してみました。

compression = <compress_level>

0 ~ 9、100、または 101 の数字です。1 桁の圧縮レベルでは、0 は圧縮なし、9 は圧縮の最高レベルです。圧縮レベル 100 および 101 は、より高速で効率的な圧縮モードです。100 はより高速の圧縮、101 はより効率的な圧縮を行います。<compress_level> を指定しない場合、ダンプは圧縮されません。

具体的には圧縮に使うアルゴリズムの違いで0~9はZlib(LZW.26)、100,101はFastLZ(LZO)だそうです。

SOLMAN7.2のJAVA ASのDB(DBファイルサイズ:10,240MB)で圧縮率を比較した結果は下表のとおり。

compress level data size(KB) backup size(KB) rate(%)

process time(hh:mm:ss)

9 5995082 4,704,634 78% 0:14:21
100 5994298 5,133,600 86% 0:04:10
101 5994234 5,012,184 84% 0:04:20

まぁ、予想通り。

compress level=9でバックアップファイルを分割した場合の処理時間を比べてみる

stripe data size(KB) backup size(KB) rate(%) process time
1 5,995,082 4,704,634 78% 0:14:21
5 5,995,782 4,697,762 78% 0:03:18

速い!

当然、CPUとI/Oリソースとの兼ね合いを考慮に入れる必要あり。

今回使ったコマンド

データベース[ISA]のデータベースバックアップを作成する。
分割数は4、圧縮レベルは9

dump database ISA to "/backup/work/ISA_1.bak"
 at ISA_BS stripe on "/backup/work/ISA_2.bak" 
 at ISA_BS stripe on "/backup/work/ISA_3.bak"
 at ISA_BS stripe on "/backup/work/ISA_4.bak"
 at ISA_BS with compression=9

[追記]

データサイズ125GB弱のSOLMAN ABAP DBを圧縮レベル9で圧縮したバックアップファイルは47GB弱となりました。(当然マシンパワーに依存しますが)分割数5で1時間半くらいかかります。圧縮レベル100で55GB弱でした。