web-dev-qa-db-ja.com

ソースとターゲットの両方のmysqlが同じバージョンである限り、/ mysql / dataフォルダーをコピーしてバックアップを作成しても問題ありませんか?

MyISAMデータベースしかない場合は、バージョンに関係なく、データフォルダをコピーして貼り付けるだけでバックアップと復元が可能ですか?

しかし、INNODBデータベースがあり、ソースバージョンとターゲットバージョンが同一であると確信している場合、このコピーアンドペースト方法は可能ですか?

これを実行する人はこれまでコマンドラインを使用したことがないため、バックアップを実行するコマンドを入力しない方がよいでしょう。

4
bobo

コマンドラインを常に回避しなければならない場合、月に到達することはありませんでした。別の宇宙飛行士を取得するか、一生懸命訓練してください。

本番環境でのライブデータベースについて話している場合、値は流動的である可能性があるため、一連のファイルをコピーするだけでは、どのデータベースタイプでもデータベースのバックアップを実行することは信頼できません。

次の方法で、システムテーブルを含むmysqlデータベース全体の安全なバックアップを取得できます。

mysqldump --all-databases > mysqlbackup.sql

バックアップはファイルmysqlbackup.sqlにあります-これはテープ、DVDなどにバックアップできます。

復元はこれとは逆で、バックアップファイルをmysqlクライアントにリダイレクトします。

mysql < mysqlbackup.sql

これらのコマンドのどちらでも、管理者権限を持つユーザー名には-uが必要で、パスワードを指定するには-pが必要です。

12
labradort

どうしてもコピーアンドペーストを使用する必要がある場合は、両端でMySQLサービスを停止する必要があります。同じ構成で、すべてのログファイルとデータフォルダーをコピーする必要があります。

しかし、すでに指摘されているように、それは悪い方法です。スクリプトを作成し、それを実行する必要がある人にどのコマンドを入力するかを伝えるのは大したことではありません。その人がマシンにログオンできるほど賢いと仮定すると、1つのコマンドを問題なく実行できると思います。

もう1つのオプションは、マスタースレーブレプリカを作成し、ユーザーが何もしなくても最新の状態に保つことです。もちろん、システムが正常に機能していることを確認するためにシステムを監視する必要がありますが、とにかくそれを行う必要があります。

2
John Gardeniers

ファイルをコピーして貼り付けることはお勧めしません。その人が技術的でない場合、mysqlデーモンが適切に停止されていることをどのように確認しますか?

これが技術者以外のユーザー向けである場合は、mysqldumpを呼び出して適切にバックアップを作成するスクリプトを作成するために時間をかける必要があります。

0
Zoredache

レプリケーションスレーブを優れたバックアップソリューションと見なしてはなりません。たとえば、データベースが削除された場所で何かが発生した場合、または他の有害なSQLがマスターで実行された場合はどうなりますか?これらのステートメントはスレーブに複製されて同じアクションを実行するだけなので、イベントが発生する前のポイントにロールバックすることはできません。

Labradortのアドバイスに従い、少なくともmysqldumpを使用してください。

0
Dan R