無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 7 クライアントプログラムとユーティリティ プログラム :: 7.12 mysqldump ? データベースバックアッププログラム
« 7.11 mysqlcheck ? テーブル メンテナンスと修復プログラム

7.13 mysqlhotcopy ? データベースバックアッププログラム »
Section Navigation      [Toggle]
  • 7 クライアントプログラムとユーティリティ プログラム
  • 7.1 クライアントプログラムとユーティリティ プログラムの概要
  • 7.2 my_print_defaults ? オプション ファイルから オプションを表示する
  • 7.3 myisam_ftdump ? フル テキスト インデックス情報を表示する
  • 7.4 myisamchk ? MyISAM テーブル メンテナンス ユーティリティ
  • 7.5 myisamlog ? Display MyISAM Log File Contents
  • 7.6 myisampack ? 圧縮された、読み取り専用MyISAM テーブルを作成する。
  • 7.7 mysql ? MySQL コマンド ライン ツール
  • 7.8 mysqlaccess ? アクセス権限をチェックするクライアント
  • 7.9 mysqladmin ? MySQL サーバの管理を行うクライアント
  • 7.10 mysqlbinlog ? バイナリログファイルを処理するためのユーティリティ
  • 7.11 mysqlcheck ? テーブル メンテナンスと修復プログラム
  • 7.12 mysqldump ? データベースバックアッププログラム
  • 7.13 mysqlhotcopy ? データベースバックアッププログラム
  • 7.14 mysqlimport ? データインポートプログラム
  • 7.15 mysqlshow ? データベース、テーブル、カラム情報を表示します。
  • 7.16 mysqlslap ? クライアント負荷エミュレーション
  • 7.17 mysql_zap ? パターンとマッチする処理を消去します。
  • 7.18 perror ? エラーコードの説明
  • 7.19 replace ? 文字列置き換えユーティリティ

7.12. mysqldump ? データベースバックアッププログラム

mysqldumpクライアントは元はIgor Romanenkoによって書かれたバックアッププログラムです。バックアップや他のSQLサーバ(MySQLサーバに限りません)への転送のためにデータベースやデータベースのコレクションのダンプに役立ちます。ダンプには一般に、テーブルの作成やそこでのデータ配置、の片方または両方のSQLステートメントが含まれています。また、mysqldumpはCSVや他の区切り文字のテキスト、あるいはXMLフォーマットでファイルを生成させるために利用することもできます。

もしあなたがサーバのバックアップをしていて、かつテーブルがすべてMyISAMテーブルの場合、代わりにmysqlhotcopyの使用をお勧めします。これは、バックアップやリストアのスピードが速くなるからです。項7.13. 「mysqlhotcopy ? データベースバックアッププログラム」 を参照してください。

mysqldumpを起動する主な方法は3つあります。

shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] --databases db_name1 [db_name2 db_name3...]
shell> mysqldump [options] --all-databases

db_nameの後ろにテーブル名を指定しない場合、もしくは--databases、--all-databasesオプションを使用した場合、データベース全体がダンプされます。

使用中のバージョンのmysqldumpがサポートするオプションのリストを取得するには、mysqldump --helpを実行してください。

mysqldumpの中には他オプションをグループ化した略記法となっているものがあります。--optや--compactはこれに分類されるものです。例えば、--optを使用することは--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charsetを指定したのと同じことです。MySQL 5.1以降、--optが表すオプションは全てデフォルトで有効化されています。これは、--optがデフォルトで有効なためです。

グループオプションの効果を逆転させる場合、オプションの--skip-xxx の形式(--skip-opt や--skip-compactなど)を使用してください。グループオプションに続いて特定の機能を有効化・無効化するオプションをつけることで、グループオプションの効果の一部だけを選択することが可能です。以下に例を示します。

  • いくつかの機能を除いて --optの効果を選択したい場合、除きたい各機能に対して--skipオプションを選択してください。例えば、メモリバッファと拡張インサートを無効化するには、--opt --skip-extended-insert --skip-quickを使用してください。(MySQL 5.1では、--skip-extended-insert --skip-quickで十分です。これは--optがデフォルトで有効になっているためです。)

  • インデックス無効化とテーブルロック機能を生かして 他の--optの機能を無効化したい場合、--skip-opt --disable-keys --lock-tablesを使用してください。

グループオプションの一部を選択して効果を有効化・無効化する場合、オプションは前から後ろへの順で処理されるため、記述する順番が重要になります。例えば、--disable-keys --lock-tables --skip-optは意図している効果を生みません。単一では--skip-optと同じになります。

mysqldumpはテーブル内容を一行ずつ取得してダンプするか、テーブルから全ての内容を取得しダンプする前にメモリでバッファすることができます。大きなテーブルをダンプしている場合、メモリへのバッファが問題になる場合があります。一行ずつテーブルをダンプする場合、--quickオプションを使用してください(もしくは--optを指定すれば--quickが含まれています)。--opt (故に--quickも) はMySQL 5.1以降デフォルトで有効化されています。メモリバッファを有効化するには、--skip-quickを使用してください。

最新のmysqldumpを使用してダンプしたものを非常に古いMySQLサーバに再ロードしたい場合、--optまたは--extended-insertオプションの使用は避けてください。代わりに--skip-optを使用してください。

mysqldumpは次のオプションをサポートします。

  • --help, -?

    ヘルプ メッセージを表示し、閉じます。

  • --add-drop-database

    DROP DATABASEステートメントをCREATE DATABASEステートメントの前に追加します。

  • --add-drop-table

    DROP TABLEステートメントをCREATE TABLEステートメントの前に追加します。

  • --add-locks

    LOCK TABLESとUNLOCK TABLESステートメントで各テーブルダンプを囲みます。ダンプファイルを再ロードする際のインサートの速度が向上します。項6.2.16. 「INSERTステートメントの速度」 を参照してください。

  • --all-databases, -A

    すべてのデータベース内のすべてのテーブルをダンプします。これは--databasesオプションを使用してコマンドラインですべてのデータベース名を指定するのと同じです。

  • --all-tablespaces, -Y

    テーブルダンプに、NDB Clusterテーブルに使用されるテーブルスペース作成に必要なSQLステートメントを追加します。でなければ、この情報はmysqldumpの出力には含まれていません。このオプションは、現在MySQLクラスタテーブルに対してのみ有効です。

    このオプションはMySQL 5.1.6.で加されました。

  • --allow-keywords

    キーワードであるカラム名の作成を許容します。これは各カラム名のプリフィクスにテーブル名を用いることで可能になります。

  • --character-sets-dir=path

    キャラクタ セットがインストールされるディレクトリです。項4.10.1. 「データおよびソート用キャラクタ セット」 を参照してください。

  • --comments, -i

    プログラムバージョン、サーババージョンやホストといった追加情報をダンプファイルに書き込みます。このオプションはデフォルトで有効となっています。追加情報を抑制するには、--skip-commentsを使用してください。

  • --compact

    verbose生成を少なくします。このオプションはコメントを抑制し、--skip-add-drop-table、--no-set-names、--skip-disable-keys、そして--skip-add-locksオプションを有効化します。

  • --compatible=name

    古いMySQLサーバや他のデータベースシステムと互換性のある出力を生成します。nameの値はansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options、あるいはno_field_optionsとなります。複数の値を使用する場合カンマで離してください。これらの値はサーバSQLモードの設定用の対応しているオプションと同じ意味を持っています。項4.2.6. 「SQL モード」 を参照してください。

    このオプションは他のサーバとの互換性を保証するものではありません。現在提供されている、ダンプ出力の互換性を挙げるためのSQLモード値を有効化するだけです。例えば、--compatible=oracleはデータタイプをOracleタイプにマップしたり、Oracleコメント構文を使用したりしません。

  • --complete-insert, -c

    カラム名を含んだ、完全なINSERTステートメントを使用します。

  • --compress, -C

    双方が圧縮をサポートしている場合、クライアント・サーバ間で行きかう情報を全て圧縮します。

  • --create-options

    MySQL独特のオプションをCREATE TABLEステートメントに含みます。

  • --databases, -B

    複数のデータベースをダンプします。通常、mysqldumpはコマンドライン上の最初のアーギュメント名とそれに続く名をテーブル名として認識します。このオプションを使用するうことで、名前のついたアーギュメントを全てデータベース名として認識します。CREATE DATABASEやUSEステートメントは新しいデータベースの前の出力に含まれています。

  • --debug[=debug_options], -# [debug_options]

    デバッグのログを書き込みます。debug_options文字列は大抵'd:t:o,file_name'になります。.'d:t:o,/tmp/mysqladmin.trace'がデフォルトになります。

  • --default-character-set=charset_name

    charset_nameをデフォルトキャラクタセットとして使用します。項4.10.1. 「データおよびソート用キャラクタ セット」を参照してください。文字列が特定されていない場合、mysqldumpはutf8を使用します。

  • --delayed-insert

    INSERTステートメントよりもINSERT DELAYEDステートメントを書き出します。

  • --delete-master-logs

    マスタ複製サーバで、ダンプを実行後バイナリログを消去します。このオプションは自動的に--master-dataを有効化します。

  • --disable-keys, -K

    各テーブルごとに、INSERTステートメントを/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;と/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;ステートメントで囲んでください。行が全て挿入された後にインデックスが作成されるため、ダンプファイルのロードが早くなります。このオプションはMyISAMテーブルに対してのみ効果的です。

  • --events, -E

    ダンプされたデータベースからイベントをダンプします。このオプションはMySQL 5.1.8.で追加されました。

  • --extended-insert, -e

    複数のVALUESリストを含む、複数行INSERT構文を使用してください。これにより、ダンプファイルサイズを小さくし、ファイルが再ロードされる際の挿入スピードがあがります。

  • --fields-terminated-by=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=...

    これらのオプションは-Tオプションと共に使用され、LOAD DATA INFILEに対応する節と同じ意味があります。項12.2.5. 「LOAD DATA INFILE 構文」 を参照してください。

  • --first-slave, -x

    Deprecated.現在は--lock-all-tablesと名づけられています。

  • --flush-logs, -F

    ダンプを始める前にMySQLサーバログファイルをフラッシュします。このオプションはRELOAD権限を要求します。このオプションを--all-databases (あるいは-A) オプションと併用した場合、ログはダンプされたデータベースごとにフラッシュされます。例外は、--lock-all-tablesまたは--master-dataを使用しているときです。この場合、ログは全てのテーブルがロックされた瞬間に一度だけフラッシュされます。ログのフラッシュとダンプを同時に行いたい場合、--flush-logsを--lock-all-tablesや--master-dataと併用してください。

  • --flush-privileges

    mysqlデータベースのダンプ後、.FLUSH PRIVILEGESステートメントを発行してください。このオプションはダンプにmysqlデータベースが含まれている場合と、正しいリストアのためにmysqlデータベース内に含まれているデータに依存するデータベースが含まれている場合に使用するべきです。このオプションはMySQL 5.1.12.で追加されました。

  • --force, -f

    テーブルダンプの最中にSQLエラーが発生しても続行します。

    このオプションの使用例を挙げると、mysqldumpに無効となったビューに遭遇しても続けて実行させることです。これは、定義が消去されたテーブルを参照するものだからです。--forceなしでは、mysqldumpはエラーメッセージを発し閉じます。--forceを使用した場合、mysqldumpエラーメッセージをプリントしますが、ダンプ出力のビュー定義を含むSQLコメントを書き出し、実行を続けます。

  • --host=host_name, -h host_name

    与えられたホスト上でMySQLサーバからデータをダンプします。デフォルト設定では、localhostがホストになります。

  • --hex-blob

    16進変換表記法を使用しているバイナリカラムをダンプします(例えば、'abc'は0x616263となります)。影響を受けるデータタイプはBINARY、VARBINARY、BLOB、そしてBITになります。

  • --ignore-table=db_name.tbl_name

    データベースとテーブル名の両方を使用して特定されなければいけないテーブルをダンプしないでください。複数テーブルを無視するには、このオプションを複数回使用してください。

  • --insert-ignore

    INSERTステートメントをIGNOREオプションで書いてください。

  • --lines-terminated-by=...

    これらのオプションは-Tオプションと共に使用され、LOAD DATA INFILEに対応する節と同じ意味があります。項12.2.5. 「LOAD DATA INFILE 構文」 を参照してください。

  • --lock-all-tables, -x

    データベース内のテーブルを全てロックします。これは全ダンプの期間、グローバルリードロックを取得することで達成されます。このオプションは自動的に--single-transactionと--lock-tablesをオフにします。

  • --lock-tables, -l

    ダンプする前に全てのテーブルをロックします。テーブルはREAD LOCALでロックされ、これによりMyISAMテーブルの場合同時インサートが許容されます。InnoDBといったトランザクションテーブルには、--single-transactionはテーブルをロックする必要が無いため、はるかにいいオプションです。

    複数データベースをダンプする際は、--lock-tablesは各データベースのテーブルを個別にロックします。よって、このオプションはダンプファイル内のテーブルがデータベース間で矛盾していないことを保証するわけではありません。異なるデータベース内のテーブルは完全に異なるステートでダンプされることがあります。

  • --master-data[=value]

    出力にバイナリログファイル名とポジションを書きます。このオプションはRELOAD権限を要求し、バイナリログが有効化されていなければいけません。オプション値が1と等価の場合、ポジションとファイル名はダンプ出力に書き出され、CHANGE MASTERステートメントのフォームを取ります。ダンプがマスタサーバから行われ、それを利用してスレーブサーバをセットアップする場合、CHANGE MASTERステートメントはスレーブを、マスタのバイナリログ内の正しいポジションからスタートするようにします。オプション値が2と等価の場合、CHANGE MASTERステートメントはSQLコメントとして書かれます。(値が省かれていた場合のデフォルトアクションになります。)

    --master-dataオプションは自動的に--lock-tablesをオフにします。--single-transactionも指定されていなければ、--lock-all-tablesをオンにもします(この場合、global read lockがダンプの最初に短い間、取得されています)。--single-transactionの説明も参照してください。どの場合でも、ログに対するアクションは全てダンプと同時に発生します。

  • --no-autocommit

    各ダンプされたテーブルごとにINSERTステートメントをSET AUTOCOMMIT=0とCOMMIT ステートメントで囲みます。

  • --no-create-db, -n

    このオプションは--databasesや--all-databasesオプションが提供されていた場合出力に含まれるCREATE DATABASEステートメントを抑制します。

  • --no-create-info, -t

    各ダンプされたテーブルを再作成するCREATE TABLEステートメントを書かないでください。

  • --no-data, -d

    テーブル行情報を書かないでください(つまりテーブル内容をダンプしないでください)。これはテーブルのCREATE TABLEステートメントのみをダンプしたい場合に非常に便利です。

  • --opt

    このオプションはショートハンドです。--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charsetを特定することと同じことです。速いダンプオプレーションを提供し、MySQLサーバにすばやく再ロードできるダンプファイルを生成します。

    --optオプションはデフォルトで有効化されています。無効化するには--skip-optを使用してください。--optによって影響されるオプションの部分の一部を有効化・無効化する情報に関しては、このセクションの始めのディスカッションを参照してください。

  • --order-by-primary

    各テーブルの行をプライマリキーか、存在する場合、最初のユニークインデックスでソートします。これは、InnoDBテーブルにロードするMyISAMテーブルをダンプしているときに便利ですが、ダンプに要する時間がかなり伸びます。

  • --password[=password], -p[password]

    サーバに接続する際使用するパスワードです。ショートオプションフォーム(-p)を使用した場合、オプションとパスワードの間にスペースを置くことはできません。コマンドライン上で--password あるいは-pに続くオプションからpassword値を取り除いた場合、パスワード値を求められます。

    コマンドライン上でのパスワードの特定は安全ではありません。項4.8.6. 「パスワードのセキュリティ」 を参照してください。

  • --port=port_num, -P port_num

    コネクションに使用するTCP/IPポート番号です。

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    使用するべき接続プロトコルです。

  • --quick, -q

    このオプションは大きなテーブルのダンプに便利です。これにより、mysqldumpは全結果セットを取得、メモリ内でバッファ後表示といった一連の作業を一気にこなさず、サーバから1行ずつ結果を取得します。

  • --quote-names, -Q

    ‘`’文字でデータベース、テーブル、そしてカラム名をクオートします。ANSI_QUOTESSQLモードが有効化されている場合、名前は‘"’キャラクタでクオートされます。このオプションはデフォルトで有効となっています。--skip-quote-namesで無効化することもできますが、このオプションは--compatibleのような--quote-namesを有効化するオプションの後に与えられるべきです。

  • --replace

    INSERTステートメントよりもREPLACEステートメントを書き出します。MySQL 5.1.3.より提供されています。

  • --result-file=file, -r file

    提供されているファイルに出力を導きます。このオプションはWindows上で‘\n’ニューライン文字が‘\r\n’carriage return/newlineシーケンスに変換されるのを阻止するために使用します。ダンプ生成中にエラーが発生しても、結果ファイルは作成され、内容は上書きされます。以前の内容は失われます。

  • --routines, -R

    記憶されたルーチンを(関数とプロシージャ) ダンプされたデータベースからダンプします。.このオプションの使用はmysql.procテーブルのためのSELECT権限を要求します。--routinesを使用して生成された出力はルーチンの再作成のため、CREATE PROCEDUREとCREATE FUNCTIONステートメントを含んでいます。ただし、これらのステートメントはルーチン作成や改良タイムスタンプといった属性を含んでいません。つまりルーチンが再ロードされたとき、再ロードに要した時間と等価のタイムスタンプで作成されます。

    ルーチンを元のタイムスタンプ属性で再作成しなければいけない場合、--routinesを使用しないでください。代わりに、mysqlデータベースの正しい権限を持っているMySQLアカウントを使用してmysql.procテーブルの内容を直接ダンプ、再ロードしてください。

    このオプションはMySQL 5.1.2.で追加されました。これ以前では、記憶されたルーチンはダンプされませんでした。ルーチンDEFINER値はMySQL 5.1.8.までダンプされませんでした。つまり、5.1.8,以前でルーチンが再ロードされた場合、再ロードユーザにセットされたデファイナで作成されます。元のデファイナでルーチンを再作成しなければいけない場合、mysql.procテーブルの内容を、以前説明したとおりに、直接ダンプしロードしてください。

  • --set-charset

    出力にSET NAMES default_character_setを追加してください。このオプションはデフォルトで有効となっています。SET NAMESステートメントを抑制するには、--skip-set-charsetを使用してください。

  • --single-transaction

    このオプションはサーバからデータをダンプする前にBEGIN SQLステートメントを発行します。InnoDBといったトランザクションテーブルに対してのみ便利です。なぜなら、アプリケーションをブロックせずに、BEGINが発行された当時のデータベースの状態をダンプするからです。

    このオプションを使用しているときは、一定の状態でダンプされるのはInnoDBテーブルのみだということを留意してください。例えば、このオプションを使用中にダンプされたMyISAMやMEMORYテーブルは状態が変化する可能性があります。

    このオプションはMySQLクラスタテーブルではサポートされていません。NDBClusterストレージエンジンがREAD_COMMITTEDtransaction isolation levelのみをサポートするため、結果が一定である保証がありません。代わりに必ずNDBバックアップを使用し、リストアしてください。

    --single-transactionオプションと--lock-tablesは互いに関連していません。これは、LOCK TABLESが待機中のトランザクションを必然的にコミットさせるからです。

    大きなテーブルをダンプするには、このオプションを--quickと併用してください。

  • --skip-opt

    --optオプションの詳細を参照してください。

  • --socket=path, -S path

    localhostの接続用に使用する、ユニックスではソケットファイル、Windowsでは使用する名づけられたパイプ。

  • --skip-comments

    --commentsオプションの詳細を参照してください。

  • --ssl*

    --sslで始まるオプションは、SSLを介してサーバに接続し、SSL キーや証明の場所を明示するか否かを指定します。項4.8.7.3. 「SSL コマンド オプション」 を参照してください。

  • --tab=path, -T path

    タブによって分けられたデータファイルを生成します。各ダンプされたテーブルごとに、mysqldumpはテーブルを作成するCREATE TABLEステートメントを含むtbl_name.sqlファイルと、そのデータを含むtbl_name.txtファイルを作成します。オプション値はファイルを書き込むディレクトリです。

    デフォルトで、.txtデータファイルはカラム値と、各行の最後で新しいラインの間にタブキャラクタを使用してフォーマットされます。このフォーマットは明示的に--fields-xxxと--lines-terminated-byオプションを使用することで特定することができます。

    注:このオプションはmysqldumpがmysqldサーバと同一のマシンで作動している場合のみ使用されるべきです。FILE権限を保持しており、サーバはユーザの指定してアファイルをディレクトリ内に書き込む権限を与えられていなければいけません。

  • --tables

    --databasesあるいは-Bオプションをオーバーライドしてください。mysqldumpはオプションに続く名前アーギュメントをテーブル名として認識しています。

  • --triggers

    ダンプされたテーブルごとにトリガをダンプします。このオプションはデフォルトで有効化されています。--skip-triggersを使用して無効化してください。

  • --tz-utc

    ダンプファイルにSET TIME_ZONE='+00:00'を追加してください。これにより、TIMESTAMPカラムは異なるタイムゾーンにあるサーバ間でダンプ・再ロードされます。このオプションなしでは、TIMESTAMPカラムはソースとデスティネーションサーバのタイムゾーンにダンプ・再ロードされ、値が変わる場合があります。--tz-utcはサマータイムによる時間の変更に対してもプロテクトします。--tz-utcはデフォルトで有効化されています。無効化するには、--skip-tz-utcを使用してください。このオプションはMySQL 5.1.2.で追加されました。

  • --user=user_name, -u user_name

    サーバに接続する際使用するMySQLユーザ名です。

  • --verbose, -v

    Verbose モードプログラムの動作についてさらに情報をプリントアウトする。

  • --version, -V

    バージョン情報を表示し、閉じます。

  • --where='where_condition', -w 'where_condition'

    あるWHERE状態に選択された行のみダンプします。ユーザのコマンドインタープリタにとって特別なキャラクタ、もしくはスペースを含んでいる場合、状態の周りをクオートで囲まなければいけません。

    例:

    --where="user='jimf'"
    -w"userid>1"
    -w"userid<1"
    
  • --xml, -X

    ダンプ出力と、well-formed XMLも書き出します。

    NULL, 'NULL', and Empty Values:column_nameと名づけられたカラム、NULL値、空の文字列、文字値'NULL'はこのオプションによって生成された出力では以下の様に差別化します。

    値: XML Representation:
    NULL (unknown value) <field name="column_name" xsi:nil="true" />
    '' (empty string) <field name="column_name"></field>
    'NULL' (string value) <field name="column_name">NULL</field>

    MySQL 5.1.12に始まり、--xmlオプションを使用しているときのmysqlクライアントもこれらのルールを守ります。(詳しくは項7.7.1. 「mysql オプション」をご確認ください。)

--var_name=value 構文を使用することで以下の構文をセットすることができます。

  • max_allowed_packet

    クライアント・サーバ通信のバッファの最大サイズ最大は1GBです。

  • net_buffer_length

    クライアント・サーバ通信のバッファの初期サイズ複数・行・挿入ステートメントを作成する際(--extended-insertや--optオプションを使用するとき)、mysqldump はnet_buffer_length長さの新しい行を作成します。この変数を増やした場合、MySQLサーバ内のnet_buffer_length変数も最低同じ大きさでなければいけません。

--set-variable=var_name=value or -O var_name=value構文を使用することで、変数をセットすることも可能です。構文は反対語となっています。.

mysqldumpの最も一般的な用途は、データベース全体のバックアップの作成です。

shell> mysqldump db_name > backup-file.sql

ダンプファイルをサーバに戻し読みすることが可能です。

shell> mysql db_name < backup-file.sql

また、次のようにもできます。

shell> mysql -e "source /path-to-backup/backup-file.sql" db_name

mysqldumpは1つのMySQLサーバからデータをコピーすることでデータベースのpopulatingに便利です。

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

1つのコマンドで複数のデータベースをダンプすることが可能です。

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

全てのデータベースをダンプするには、--all-databasesオプションを使用してください。

shell> mysqldump --all-databases > all_databases.sql

InnoDBテーブルに関して、mysqldumpはオンラインバックアップの作成方法を提供しています。

shell> mysqldump --all-databases --single-transaction > all_databases.sql

このバックアップはグローバルリードロックをダンプの最初に、全テーブルで取得することだけが必要です(FLUSH TABLES WITH READ LOCKを使用して)。このロックが取得されれば、バイナリログの座標は読まれ、ロックが開放されます。FLUSHステートメントが発行されている際、1つの長い更新ステートメントが作動している場合にのみ、MySQLサーバはその長いステートメントが終了するまでストールすれば、ダンプがロックフリーとなります。MySQLサーバが受ける更新ステートメントが短い場合(実行時間を指す)、更新の数が多くても最初のロック期間はさほど気にならないはずです。

point-in-timeリカバリは、(もしくは「roll-forward」ーこれは古いバックアップをリストア、そのバックアップが行われてから発生した変更を再生する場合)、バイナリログを回転する、もしくはダンプが対応しているバイナリログの座標だけでも知っているとと便利な場合があります(項4.11.4. 「バイナリ ログ」を参照して下さい)。

shell> mysqldump --all-databases --master-data=2 > all_databases.sql

または

shell> mysqldump --all-databases --flush-logs --master-data=2
              > all_databases.sql

--master-dataと--single-transactionオプションは同時に使用することができ、テーブルがInnoDBストレージエンジンを使用して記憶されている場合、point in timeリカバリに合うオンラインバックアップを作成する便利な方法を提供しています。

バックアップ作成の追加情報に関しては、項4.9.1. 「データベースのバックアップ」と項4.9.2. 「バックアップとリカバリ手法の例示」を参照してください。

ビューのバックアップの際問題が発生した場合、ビューに対する制限を含むセクションを参照してください。権限が不足している事によって失敗した場合の、ビューバックアップ解決策を記しています。項D.4. 「ビューの規制」 を参照してください。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.