CData Sync V26.4 Updates:CDC エンジンのディスク容量保護を強化

カバー画像

CData Sync の CDC エンジンを使う CDC ジョブには、DB2、DB2 for i、Informix、MySQL、Oracle、PostgreSQL などがあります。これらをデータソースとする CDC ジョブでは、CDC エンジンが変更イベントをいったんディスク上のステージングフォルダに書き出します。ジョブの実行時には、そこから同期先へ反映します。そのため、ステージングフォルダがあるディスクの空き容量は、CDC エンジンを安定して動かすための前提条件になります。

これまで、ディスクが書き込みの途中で満杯になると、CDC エンジンのステージファイルが壊れることがありました。壊れると、CDC エンジンのリセットやジョブを再作成してレプリケーションをやり直す必要がありました。

CData Sync V26.4 では、ステージファイルのサイズではなくディスク全体の実際の空き容量を監視します。ディスクが満杯になる前に CDC エンジンを停止することで、破損のリスクを下げます。空き容量が戻れば、自動で再開し差分レプリケーションを継続できます。本記事では、この機能の動作と設定方法、運用上の注意点を紹介します。

これまでの課題

V26.3 までは、ステージファイルのサイズだけを stagemaxsize(既定 10 GB)の設定値と比べて、CDC エンジンを停止するかどうかを判断していました。ステージファイルが上限に達すると CDC エンジンは停止し、上限の 3 分の 1 が解放されると自動で再開します。ただし、この方式には次の問題がありました。

  • ディスク全体の空き容量を見ていない。ログや他のジョブが同じディスクを使っていると、stagemaxsize に達する前にディスクが満杯になる場合がある。

  • ディスクが書き込みの途中で満杯になると、ステージファイルが壊れる場合がある。(Unterminated string のようなエラーが出てジョブが失敗する。)

  • ステージファイルが壊れると、CDC エンジンのリセットなどで全件レプリケーションが必要になる場合がある。

V26.4 の改善内容

2 つのディスクを監視する

V26.4 では、CData Sync 本体がディスクの空き容量を監視します。監視するのは、次の 2 つのディスクです。

  • CDC エンジンのステージングフォルダがあるディスク

  • アプリケーションデータのディスク

多くの場合、この 2 つは同じディスク上にあります。ステージファイルのサイズではなくディスク全体の空き容量を見るため、ログや他のジョブ、外部アプリケーション起因でディスクが埋まる場合も保護の対象になります。

停止する条件

次のどちらかを満たすと、CDC エンジンを停止します。

  • 空き容量が、最小空き容量(既定 10 GiB)以下になった。

  • ディスクの使用率が、一時停止のしきい値(既定 95%)に達した。

2 つの条件のうち、先に成立したほうで停止します。ディスクが約 200 GiB 未満なら最小空き容量の条件が、それ以上なら使用率の条件が先に成立します。ステージングフォルダにアクセスできない場合や空き容量を取得できない場合は、空き容量を確認できないまま書き込みを続けると破損のおそれがあるため、同様に停止します。

停止すると、次のように動作します。

  • スケジュールされたすべてのジョブが停止する。

  • CDC エンジンの状態に「Stopped By Insufficient Disk Space」と表示される。

  • ジョブのページに、ディスク容量が不足していることを知らせるメッセージが表示される。

  • 停止中に CDC エンジンの開始、再起動、リセット、更新を試みると、「CDC を開始できません」というメッセージで拒否される。

自動で再開する条件

CData Sync は、通常時は 5 秒ごと、停止中は 30 秒ごとに空き容量を確認します。2 つのディスクの空き容量が、いずれもしきい値より 10% 以上多くなると、CDC エンジンが自動で再開しますし、再開後は停止した位置から処理が続きます。

従来と V26.4 の比較

項目

従来(V26.3 まで)

V26.4

監視対象

ステージファイルのサイズ

ステージングフォルダとアプリケーションデータの 2 つのディスクの空き容量

判定基準

stagemaxsize(既定 10 GB)

最小空き容量(既定 10 GiB)とディスク使用率(既定 95%)のうち、先に成立したほう

停止時の状態表示

Stopped By Limit

Stopped By Insufficient Disk Space

再開の条件

ステージファイルの上限の 3 分の 1 が解放されると自動で再開

空き容量がしきい値より 10% 以上多くなると自動で再開

ステージファイルの破損

CDC エンジンのリセット(またはジョブの再作成)と全件レプリケーションが必要になる場合がある

ディスク満杯による破損のリスクは下がる。破損した場合の復旧は、従来と同様に CDC エンジンのリセットが必要になる場合がある

なお、上記の判定基準の仕様変更のため、stagemaxsize は V26.4 で非推奨になりました。

設定方法

既定値のままでも保護は有効です。環境に合わせて調整したい場合は、次の 2 つを設定します。

しきい値(使用率)を変更する

使用率のしきい値は、「システム設定」の「アラート」にある「システムヘルスアラート」で設定します。「ディスクの使用状況の一時停止のしきい値」に、停止させたい使用率を % で入力します。既定は 95 です。

この値を 0 または 100 にすると、ディスク容量の保護が完全に無効になります。無効にすると、ディスクが満杯になったときにステージファイルが破損するおそれがあるため推奨しません。

最小空き容量を変更する

最小空き容量は、「システム設定」の「高度な設定」にある「追加設定」の「その他の設定」に、次の形式で記述します。

suspenddiskfreespacegb=15

この例では、空き容量が 15 GiB 以下になると停止します。指定できるのは正の整数だけです。

運用上の注意

小さいディスクでの停止タイミング

ディスクが約 200 GiB 未満の場合、最小空き容量(10 GiB)の条件が使用率 95% より先に成立します。使用率が 95% になる前に、空き容量が 10 GiB 以下になるためです。たとえば 100 GiB のディスクでは、空き容量が 10 GiB になった時点、つまり使用率が 90% の時点で停止します。スケジュールされたジョブと CDC エンジンは早く停止するおそれがあるため、アップグレードの際は事前にディスクの容量と現在の空き容量を確認してください。

stagemaxsize の扱い

stagemaxsize を設定していた環境でも、V26.4 ではその値は判定に使われません。ステージファイルのサイズで止めたい運用をしていた場合は、ディスクの空き容量を基準にした運用へ切り替えてください。

まとめ

CData Sync V26.4 では、CDC エンジンのディスク容量保護が、ステージファイルのサイズだけを見る方式から、2 つのディスクの空き容量を見る方式に変わりました。ディスクが満杯になる前に CDC エンジンが停止し、空き容量が戻ると自動で再開します。ステージファイルの破損や、それに伴う全件レプリケーションを防ぎやすくなります。

ぜひ CData Sync V26.4 をお試しいただき、CDC エンジンの安定運用にお役立てください。CData Sync の 30 日間無償トライアルはこちらからダウンロードいただけます。

また、使っていて気になった点やご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。