7

取ることは可能ですか?Google で調べたところ、記事はほとんど見つかりませんでしたが、ドイツ語やその他の言語でよくわかりませんでした。

[ローカルホストで] Mercurial を使用して、サーバーからローカルホストへの mysql バックアップを取得できれば素晴らしいことです。おそらくリモートMysql接続などで、これを行う方法を知っていますか? 出来ますか?

ありがとう!!よろしく...

4

2 に答える 2

5

定期的なバックアップをバージョン管理リポジトリに保存する場合は、次の3つの手順があります。

  1. データベーススナップショットを保存するMercurialリポジトリをセットアップします。

    mkdir db-backup
    hg init db-backup
    
  2. データベースをファイル形式で取得します。最も簡単な方法は、を使用することmysqldumpです。生のデータベーステーブルファイルをバックアップするだけでは、一貫性のない状態になっている可能性があるため、機能しません。

    cd db-backup
    mysqldump -u username -p -h dbhost databasename > databasename.sql
    
  3. データベースダンプをバージョン管理リポジトリにコミットします。この場合はMercurialです。

    hg commit -A -m "committing database snapshot as at `date`"
    

最後の2つのステップは、おそらく自動化する必要があるものです。

于 2010-02-24T12:21:06.760 に答える
2

これは、多くのレベルで無意味で危険な演習になると思います。しかし、VCS システムがどのように機能するかを考えると、現在のバージョンと以前の (またはベンチマーク) バージョンとの差分を作成し、以前のリビジョンに戻すと (VCS) はファイルをディレクトリに書き出します。最初の例で、これをデータベースで行い、次に diff を行った場合、何が表示されるでしょうか? データベース内のデータから得られるビューは DBMS によってフィルター処理されるため、生ファイルを比較しても意味がありません。2 番目の例では、作業中のデータベースにリビジョンを復元した場合、破棄されたデータベース以外はあまり得られないと思います。また、ビュー、ストアド プロシージャ、トリガーなどはどうなりますか?

私がこのようなことを考えたのは、データベース構造のみをダンプし、データはなく、VCS をダンプして、どのような構造変更が行われたかを比較できるようにすることだけでした。しかし、チーム内のコミュニケーションを強化することで、この問題は解決しました。

データベースを処理する方法は、一連の復元プログラムと手順、およびバックアップがすべて機能していることを確認するためのテスト体制を忘れずに、適切な一連のバックアップ プログラムと手順を使用することです。

于 2010-02-24T12:31:58.113 に答える