Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 20.9Mb
PDF (A4) - 21.0Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  mysqlhotcopy — データベースバックアッププログラム

4.6.10 mysqlhotcopy — データベースバックアッププログラム

注記

このユーティリティーは MySQL 5.6.20 で非推奨で、MySQL 5.7 で削除されます。

mysqlhotcopy はもともと Tim Bunce によって書かれ、提供された Perl スクリプトです。FLUSH TABLESLOCK TABLES、および cp または scp を使用してデータベースのバックアップを作成します。データベースまたは単一のテーブルのバックアップを作成するための高速な方法ですが、データベースディレクトリが置かれているのと同じマシンでしか実行できません。mysqlhotcopyMyISAM テーブルおよびARCHIVE テーブルのみに機能します。Unix で実行されます。

mysqlhotcopy を使用するには、バックアップを行うテーブルのファイルへの読み取りアクセス、これらのテーブルの SELECT 権限、RELOAD 権限 (FLUSH TABLES を実行できるように)、および LOCK TABLES 権限 (テーブルをロックできるように) を持っていなければなりません。

shell> mysqlhotcopy db_name [/path/to/new_directory]
shell> mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

指定されたデータベース内で正規表現と一致するテーブルをバックアップします。

shell> mysqlhotcopy db_name./regex/

テーブル名の正規表現は、チルダ (~) をプリフィクスとして使用することで否定できます。

shell> mysqlhotcopy db_name./~regex/

mysqlhotcopy は次のオプションをサポートします。これらはコマンド行またはオプションファイルの [mysqlhotcopy] グループおよび [client] グループで指定できます。MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.6「オプションファイルの使用」を参照してください。

表 4.17 mysqlhotcopy のオプション

オプション名 説明
--addtodest ターゲットディレクトリの名前変更をせず (存在する場合)、単にファイルを追加
--allowold ターゲットが存在する場合中止せず、_old サフィクスを追加することで名前変更
--checkpoint チェックポイントエントリを挿入
--chroot mysqld が動作する chroot ジェイルのベースディレクトリ
--debug デバッグのログを書き込み
--dryrun アクションを実行せずにレポート
--flushlog すべてのテーブルがロックされたあとにログをフラッシュ
--help ヘルプメッセージを表示して終了
--host 指定されたホスト上で MySQL サーバーに接続
--keepold 終了後に以前の (名前変更された) ターゲットを消去しない
--method ファイルをコピーする方法
--noindices フルインデックスファイルをバックアップに含めない
--old_server FLUSH TABLES tbl_list WITH READ LOCK をサポートしないサーバーに接続しない
--password サーバーに接続する際に使用するパスワード
--port 接続に使用する TCP/IP ポート番号
--quiet エラー発生時以外サイレント
--regexp 与えられた正規表現と一致する名前を持つデータベースをすべてコピー
--resetmaster テーブルをすべてロックしたあとにバイナリログをリセット
--resetslave テーブルをすべてロックしたあとに master.info ファイルをリセット
--socket ローカルホストへの接続で、使用する Unix ソケットファイル
--tmpdir 一時ディレクトリ
--user サーバーへの接続時に使用する MySQL ユーザー名

  • --help, -?

    ヘルプメッセージを表示して終了します。

  • --addtodest

    ターゲットディレクトリの名前変更をせず (存在する場合)、単にファイルを追加します。

  • --allowold

    ターゲットが存在する場合、中止せず _old サフィクスを追加することで名前変更します。

  • --checkpoint=db_name.tbl_name

    指定されたデータベース db_name とテーブル tbl_name にチェックポイントエントリを挿入します。

  • --chroot=path

    mysqld が稼働している chroot jail のベースディレクトリ。path 値は mysqld に与えられる --chroot オプションと一致するようにしてください。

  • --debug

    デバッグ出力を有効化します。

  • --dryrun, -n

    アクションを実行せずにレポートします。

  • --flushlog

    すべてのテーブルがロックされたあとにログをフラッシュします。

  • --host=host_name, -h host_name

    ローカルサーバーへの TCP/IP 接続を行うために使用するローカルホストのホスト名。デフォルトでは、Unix ソケットファイルを使用して localhost に接続します。

  • --keepold

    終了後に以前の (名前変更された) ターゲットを削除しません。

  • --method=command

    ファイルのコピー方法 (cp または scp)。デフォルトは cp です。

  • --noindices

    MyISAM テーブルのフルインデックスファイルをバックアップに含めません。これによりバックアップを小さく、高速にできます。リロードされたテーブルのインデックスはあとで myisamchk -rq を使用して再構築できます。

  • --password=password, -ppassword

    サーバーに接続する際に使用するパスワードです。ほかの MySQL プログラムとは異なり、このオプションではパスワード値はオプションではありません。

    コマンド行でパスワードを指定することはセキュアでないとみなすべきです。セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。オプションファイルを使用すれば、コマンド行でパスワードを指定することを回避できます。

  • --port=port_num, -P port_num

    ローカルサーバーへの接続時に使用する TCP/IP ポート番号。

  • --old_server

    MySQL 5.6 では、mysqlhotcopyFLUSH TABLES tbl_list WITH READ LOCK を使用してテーブルのフラッシュおよびロックを実行します。サーバーが、このステートメントが導入された 5.5.3 より古い場合は、--old_server オプションを使用します。

  • --quiet, -q

    エラー発生時以外サイレントにします。

  • --record_log_pos=db_name.tbl_name

    指定されたデータベース db_name およびテーブル tbl_name に、マスターとスレーブのステータスを記録します。

  • --regexp=expr

    与えられた正規表現と一致する名前を持つデータベースをすべてコピーします。

  • --resetmaster

    テーブルをすべてロックしたあとにバイナリログをリセットします。

  • --resetslave

    テーブルをすべてロックしたあとに、マスター情報リポジトリファイルまたはテーブルをリセットします。

  • --socket=path, -S path

    localhost への接続に使用される Unix ソケットファイル。

  • --suffix=str

    コピーされたデータベースの名前に使用するサフィクス。

  • --tmpdir=path

    一時ディレクトリ。デフォルトは /tmp です。

  • --user=user_name, -u user_name

    サーバーへの接続時に使用する MySQL ユーザー名。

--checkpoint オプションおよび --record_log_pos オプションに必要なテーブルの構造に関する情報を含めて、追加の mysqlhotcopy ドキュメントに関しては、perldoc を使用してください。

shell> perldoc mysqlhotcopy