10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册

7.2デタベスバックアップ方法

このセクションでは,バックアップを作成する場合の一般的な方法をまとめています。

MySQL Enterprise Backupによるホットバックアップの作成

MySQL企业版のお客様はMySQL企业备份製品を使用して,物理バックアップを実行できます。この製品には,増分および圧縮バックアップの機能が含まれます。物理データベースファイルのバックアップは、リストアが, mysqldumpコマンドなどの論理技法よりはるかに高速になります。InnoDBテ,ブルはホットバックアップメカニズムを使用してコピ,されます。(理想的にはInnoDBテ,ブルでデ,タの大部分を表しているべきです.)ほかのストレ,ジエンジンのテ,ブルは,ウォ,ムバックアップメカニズムを使用してコピ,されます。MySQL企业Backup 製品の概要については、セクション25.2“MySQL企业备份”を参照してください。

Mysqldumpまたはmysqlhotcopyによるバックアップの作成

, mysqldumpプログラムとmysqlhotcopyスクリプトでバックアップを作成できます。, mysqldumpはあらゆる種類のテ,ブルをバックアップできるため,より汎用的です。mysqlhotcopyは一部のストレ,ジエンジンでのみ機能します。(セクション7.4 "バックアップへのmysqldumpの使用"およびセクション4.6.10 "mysqlhotcopy-デタベスバックアッププログラム”を参照してください。)

InnoDBテ,ブルの場合,, mysqldump——单独的事务オプションを使用して,テ,ブルをロックしないオンラ,ンバックアップを実行できます。セクション7.3.1“バックアップポリシ,の確立”を参照してください。

テブルファルのコピによるバックアップの作成

独自のファイルを使用して,各テーブルを表すストレージエンジンの場合,テーブルはそれらのファイルをコピーしてバックアップできます。たとえば,MyISAMテブルはファルとして格納されるため,ファル(* .frm*。MYD,および*。MYIファル)をコピして,簡単にバックアップを行うことができます。一貫したバックアップを取得するには,サーバーを停止するか,関連するテーブルをロックしてフラッシュします。

刷新表tbl_list带读锁;

読み取りロックのみが必要です。これにより,データベースディレクトリ内のファイルのコピー中に,ほかのクライアントが引き続きテーブルをクエリーすることができます。バックアップを開始する前に,すべてのアクティブインデックスページがディスクに書き込まれるようにするため,フラッシュが必要です。セクション13.3.5 "锁定表および解锁表構文"およびセクション13.7.6.3 " flush構文"を参照してください。

サーバーが何も更新していないかぎり,すべてのテーブルファイルをコピーすることによって,バイナリバックアップを簡単に作成することもできます。mysqlhotcopyスクリプトはこの方法を使用します。(ただし、テーブルファイルコピー方法は、データベースにInnoDBテ,ブルが含まれている場合,機能しません。InnoDBでは必ずしもデ,タベ,スディレクトリにテ,ブルの内容を格納しないため,mysqlhotcopyInnoDBテ,ブルで機能しません。さらに,サ,バ,がアクティブにデ,タを更新していない場合,InnoDBは変更されたデータをまだメモリー内にキャッシュしており,ディスクにフラッシュしていないことがあります)。

区切りテキストファ@ @ルバックアップの作成

テ,ブルのデ,タを含むテキストファ,Select * into outfile 'file_name“从tbl_nameを使用できます。このファルはクラアントホストではなく,MySQLサバホスト上に作成されます。このステートメントの場合,ファイルの上書きを許可すると,セキュリティーリスクになるため,出力ファイルがすでに存在していてはなりません。セクション13.2.9 " select構文"を参照してください。この方法はあらゆる種類のデータファイルに機能しますが,テーブルデータのみ保存し,テーブル構造は保存しません。

テキストデタファル(バックアップされたテブルの.;创建表ステトメントを含むファルに加えて)を作成する別の方法は,, mysqldump——选项卡オプションを使用することです。セクション7.4.3 " mysqldumpによる区切りテキストフォ,マットでのデ,タのダンプ"を参照してください。

区切りテキストデタファルをリロドするには,加载数据文件またはmysqlimportを使用します。

バ@ @ナリログを有効にすることによる増分バックアップの作成

MySQLは増分バックアップをサポトします。——log-binオプションでサ、バ、を起動し、バ、ナリロギングを有効にする必要があります。セクション5.2.4 "バナリログ"を参照してください。バイナリログファイルは,バックアップを実行した時点のあとに行われたデータベースへの変更のレプリケートする必要がある情報を提供します。増分バックアップ(最後の完全バックアップまたは増分バックアップ以降に発生したすべての変更を含む)を作成しようとするときは,刷新日志を使用して,バナリログをロテションしてください。これが完了したら,最後の完全または増分バックアップの瞬間から最後の1つ前の範囲のすべてのバイナリログをバックアップの場所にコピーする必要があります。これらのバ电子邮箱ナリログは増分バックアップで,リストア時に,セクション7.5 "バ▪▪ナリログを使用したポ▪▪ント▪▪ンタ▪▪ム(増分)リカバリ"に説明するように,それらを適用します。次回に完全バックアップを行うときも,刷新日志, mysqldump——flush-logs,またはmysqlhotcopy——flushlogを使用してバナリログをロテションしてください。セクション4.5.4 ", mysqldump-デタベスバックアッププログラム”およびセクション4.6.10 "mysqlhotcopy-デタベスバックアッププログラム”を参照してください。

レプリケ,ションスレ,ブを使用したバックアップの作成

バックアップの作成中に,マスターサーバーにパフォーマンスの問題がある場合,役に立つ可能性のある1つの戦略は,マスターではなくスレーブでレプリケーションをセットアップし,バックアップを実行することです。セクション17.3.1“バックアップ用にレプリケ,ションを使用する”を参照してください。

スレーブレプリケーションサーバーをバックアップする場合,選択したバックアップ方法に関係なく,スレーブのデータベースをバックアップする際に,そのマスター情報とリレーログ情報のリポジトリをバックアップしてください(セクション17.2.2 "レプリケ,ションリレ,およびステ,タスログ"を参照してください)。これらの情報ファイルは,スレーブのデータをリストアしたあとに,レプリケーションを再開するために常に必要です。スレ,ブが加载数据文件ステ,トメントをレプリケ,トする場合,スレ,ブがこのために使用するディレクトリ内に存在するSQL_LOAD - *ファ@ @ルもバックアップしてください。スレ,ブは,中断した加载数据文件操作のレプリケションを再開するためにこれらのファルを必要とします。このディレクトリの場所は——slave-load-tmpdirオプションの値です。そのオプションでサ,バ,を起動しなかった場合,ディレクトリの場所はtmpdirシステム変数の値になります。

破損したテ,ブルのリカバリ

破損したMyISAMテ,ブルをリストアする必要がある場合,まず修理表またはmyisamchk - rを使用して,それらのリカバリを試みます。それは,すべてのケ,スの99.9%で機能するはずです。myisamchkが失敗した場合は,セクション7.6“MyISAMテブルの保守とクラッシュリカバリ”を参照してください。

ファ@ @ルシステムスナップショットを使用したバックアップの作成

Veritasファaapl . exeルシステムを使用している場合,次のようにバックアップを作成できます。

  1. クラ电子邮箱アントプログラムから,用读锁刷新表を実行します。

  2. 別のシェルから,挂载VXFS快照を実行します。

  3. 最初のクラ电子邮箱アントから,打开表を実行します。

  4. スナップショットからファ▪▪ルをコピ▪▪します。

  5. スナップショットをアンマウントします。

同様のスナップショット機能は,lvmやZFSなどのほかのファescルシステムでも利用できます。