0

毎日更新される Sqlite データベースがいくつかあります。そのため、クラッシュが発生した場合に備えて、復元できるように毎日バックアップする必要があります。ただし、データベース全体を毎日バックアップするのはコストがかかるため、増分バックアップ (2 つの異なる日付の間の情報のみをバックアップ) を行うことを考えています。

現在、私のデータベース更新プロセスは Perl で行われているので、疑問に思っています: スクリプトを使用して Perl/Matlab/Java で増分データベース バックアップ/リカバリを実行する方法を知っている人はいますか?

ありがとうございました!

敬具、喬。

4

1 に答える 1

0
  1. テーブルの各行が変更されたときのタイムスタンプを保存します (change_timestamp列と呼びます)。

  2. 行を削除しないでください。代わりに、「D」の削除済みステータスでマークしてください。このようにして、最後のバックアップ以降に削除された行を把握するために頭を悩ませる必要はありません。

  3. 「バックアップ時間」テーブルを用意する

  4. バックアップを実行すると:

    • 現在の実行時間を「バックアップ時間」テーブルに保存します

    • 「バックアップ時間」テーブルから最後の 2 行を取得します (2 行未満の場合は、フル バックアップを実行します)。

    • change_timestamp最後の 2 つのバックアップ タイムスタンプの間にあるメイン テーブルの行をバックアップします。

監査テーブルを適切に使用することで、1/2 を実行できますが、少し難しくなります。

于 2012-05-29T16:32:01.217 に答える