diffを使用したダンプの増分バックアップの作成に関する記事を1つ読んだ後、これはなんらかのナンセンスであることがわかりました。
思考が点滅-なぜgitでベースダンプを埋めないのですか? 結局、必要なコミットにロールバックし、実験のためにリポジトリをクローンして、このシステムのすべての楽しみを楽しむことができるでしょう。 =)
すぐに決定-私はすべてをFreeBSDで行いました。 したがって、Linuxではファイルをファイルする必要があります。
さあ、始めましょう! 最初にgitを配置します(システムにない場合)!
ポートを更新した後、 cd / usr / ports / devel / git && make install cleanと書き込みます
Gitが配信されました。 データベースのバックアップがあるフォルダーの場所を選択し、フォルダーmkdir / backup / bases / testを作成します
次に、 cd / backup / bases / tes tを実行し、git initコマンドでリポジトリを初期化します
データベースをダンプし、リポジトリにファイルを追加し、バックアップ日付でコミットを作成するスクリプトを作成しました
#!/usr/local/bin/bash
backupurl=”/backup/bases/test”
for i in `/usr/local/bin/mysql -e “use test;show tables;” -uUSER -pPASS|tr -d “|”|grep -v “Tables_in_”`;do /usr/local/bin/mysqldump –quick –skip-extended-insert –dump-date=false –compact=true -uUSER -pPASS test $i >$backupurl/$i.sql;done
/usr/local/bin/mysqldump -uUSER -pPASS –no-data test > $backupurl/structure.sql #
cd $backupurl
/usr/local/bin/git add . #
sleep 2
/usr/local/bin/git commit -am “backup `date +%d.%m.%y.%H.%M`” #
このスクリプトをファイルに封印し、実行可能にして、冠を飾ります。
次に、いくつかのバックアップを行った後、データベースのバックアップがあるフォルダーに移動してgitログを書き込みます 。バックアップの履歴が表示されます。
最後に:
- gitドキュメントを読む
- コマンドcd / backup / bases / test && git gcをクラウンに入れます(ベースのボリュームに依存します...個人的に私は毎日それをしなければなりません)-これはリポジトリを深刻に圧縮します
- ロールバックの場合、リポジトリを傾けてgit reset HEADでロールバックすることをお勧めします^^
- –skip-extended-insertオプションはMANDATORYです。 gitとのベンチャー全体を無効にする拡張挿入を禁止します