職場では、mysqlデータベースの夜間ダンプを作成します。日々、データの90〜95%近くが重複しており、時間が経つにつれて増加することを推測します。(この時点で、いくつかはおそらく99%です)
これらのダンプでは、1行が1つのmysql INSERTステートメントであるため、唯一の違いは行全体と、ファイル内での順序です。それらをソートした場合、ファイルごとの実際の違いは非常に小さいでしょう。
私は探していましたが、ダンプの出力をソートする方法を見つけていません。sort
ただし、コマンドを介してパイプできます。次に、同一行の長い長いブロックがあります。
だから私は差分のみを保存する方法を考えています。マスターダンプから始めて、毎晩それと比較することができます。しかし、差分は毎晩大きくなります。または、ローリングdiffを作成することもできますが、これは個々に非常に小さくなりますが、毎晩シリーズ全体のマスターdiffをまとめる必要がある場合、計算に時間がかかるようです。
これは可能ですか?どのツールで?
編集 mysqlバックアップを行う方法を尋ねていません。現時点ではmysqlを忘れてください。ニシンです。私が知りたいのは、一連のファイルから一連のローリングdiffを作成する方法です。毎晩、ファイル(たまたまmysqldumpファイル)を取得します。これは、前のファイルと99%類似しています。はい、すべてをgzipします。しかし、そもそもすべての冗長性を持つことは冗長です。私が本当に必要なのは、前の夜との違いだけです...これは前の夜とわずか1%違います...などです。したがって、私が望んでいるのは、一連の差分を作成する方法です。そのため、毎晩1%だけを保存する必要があります。