A.1 MySQL企业备份の制限

  • MySQL 5.6以降のグルInnoDB重做ログのフラッシュ操作の頻度が変わるため,InnoDBテブルからのバックアップデタに関連付けられた特定の時点に影響が及ぶ可能性があります。詳細は,セクションb。4“特定のMySQLバジョンに関する互換性の注意事項”を参照してください。

  • MySQL 5.5以前では,セクション4.4 "単一の.ibdファルのバックアップとリストア"で述べているように,個々のInnoDBテーブルをリストアするときには,バックアップ後にMySQL服务器でテーブルが破棄または切り取られていないことが必要です。InnoDBテーブルを破棄したり切り取ったりすると内部テーブル ID が変わるため、テーブルが再作成されると、その ID はバックアップデータからのテーブル ID と一致しなくなります。同じシリーズの MySQL Server の、ある一般提供開始 (GA) バージョンから別バージョンにリストアが行われるかぎり、この制限は MySQL 5.6 以降には適用されません。

  • Linux, Unix,およびOS Xシステムで,mysqlbackupコマンドは,バックアップされるファ电子书阅读器ルのファ电子书阅读器ル所有権もアクセス許可も記録しません。リストア時,たとえばmysqlではなくが所有しているなど、これらのファ以及ルの所有権が異なる場合があります。また,たとえばファイル所有者だけではなく全員が読み取り可能であるなど,読み取り/書き込みアクセス許可が異なる場合もあります。バックアップ戦略を計画するときに,MySQLデータディレクトリ内のファイルを調べて,それらの所有者とアクセス許可設定が一貫していることを確認してください。リストア操作を実行するときには,umask乔恩,および修改文件权限の適切な組み合わせを使用して、元のファ以及ルと同じ所有者および権限を設定します。

  • 場合によっては,MyISAMテーブルなどの非トランザクションテーブルのバックアップには,コミットされていない追加データが含まれることがあります。自动提交をオフにし,InnoDBテーブルと非トランザクションテーブルの両方を同じトランザクション内で変更した場合,バイナリログ位置が更新される前に,非トランザクションテーブルにデータを書き込めます。トランザクションがコミットされるときにバイナリログ位置が更新されますが,非トランザクションデータは即座に書き込まれます。このようなトランザクションが開かれている間にバックアップが行われた場合,バックアップデータには,非トランザクションテーブルに行われた更新が含まれます。

  • Unixkill - 9コマンドなどでmysqlbackupプロセスが中断された場合,用读锁刷新表操作が実行し続けることがあります。この場合,mysqlコマンド行から杀死查询ステトメントを使用して,用读锁刷新表ステトメントを強制終了してください。長時間実行するクエリまたはトランザクションによって,刷新表操作が停止した場合に,この問題が起きる可能性が高くなります。バックアップのタereplicationミングとパフォereplicationマンスに関するガereplicationドラereplicationンにereplicationいては,第5章「Mysqlbackupコマンドリファレンスを参照してください。

  • バックアップ操作の進行中は,ALTER TABLE截断表优化表修理表,および恢复表のDDL操作を実行しないでください。結果として得られたバックアップが破損している可能性があります。

    バックアップと並列して安全に実行できるALTER TABLE操作だけが,変化するカラム名やデフォルトのカラム値など,ディスク上のレコードの物理表現に影響しない操作です。

  • MySQL Serverでステトメントベスのバ邮箱ナリログ形式を使用する場合(デフォルトの動作です),データベース内に一時テーブルがあるときにバックアップを取得し,これらの一時テーブルを使用して通常のテーブルへの更新または挿入を行うと,バックアップへのMySQLバイナリログの適用が失敗することがあります。つまりMySQLバイナリログを使用して特定の時点にバックアップをロールフォワードできない可能性があります。これは、物理ファ以及ル名# sql * .frmがMySQLによりバイナリログに書き込まれる論理テーブル名に一致しないために,一時テーブルがバックアップにコピーされないからです。この問題を回避するには,サバ上で——binlog-formatオプションの値をまたは混合に設定して、バ。

  • mysql.backup_historyテブルの引擎カラムには,バックアップされたデタベスのストレジエンジンは正しく反映されません。

  • データディレクトリにテーブルを保存するときに,MySQL服务器はあらゆるデータベース名またはテーブル名内のすべての特殊文字に対して変換を実行し,ストレージ用のファイル名を生成します。次に、デ(-)を含んだMySQLコマンドの2の例を示します。

    CREATE TABLE ' db.2 ' . ' t。2 ' (c1 INT) ENGINE=InnoDB;mysql>创建表db-3。' t-3 ' (c1 INT) ENGINE=InnoDB;

    これらのコマンドで作成されたテブルは,次のファ。

    db@002e2 / t@002e2.ibd db@002d3 t@002d3.ibd

    現在、mysqlbackupは,——包括表格オプションと——排除表オプションを使用して与えられたデタベス名およびテブル名で,同じ変換を実行しません。たとえば,——包括表格= " db \。2 \ .t \。2 | db-3 \ .t-3”を使用すると,前述のテブルは選択されません。

    回避策として,ユーザーは,データベースのデータディレクトリで目的のテーブルのファイル名を調べ,——包括表格オプションと——排除表オプションの引数で,データベース名としてデータベースディレクトリの変換後の名前を使用し,テーブル名として変換後のファイル名(ファイル拡張子なし)を使用することができます。たとえば,前述のテ,ブルの場合,オプション引数——包括表格= " db@002e2 \ .t@002e2 | db@002d3 \ .t@002d3”で,バックアップに含めるテブルとして選択します。オプション——排除表で同じ引数を使用すると,これら2のテブルはバックアップで除外されます。

  • 大量の書き込みワークロード(1分あたり数ギガバイト程度)を抱える大規模データベースのホットバックアップは,バックアップの進行中にサーバーで生成される大きな重做ログファイルのために,完了までに長時間かかることがあります。また,重做ログファイルがmysqlbackupで可能な処理速度よりも速く増大した場合,mysqlbackupが重做ログサイクルに追いつけず,LSNがmysqlbackupによって読み取られる前にサーバーによって上書きされたときに,バックアップ操作は実際に失敗することがあります。重做ログの読み取りと書き込みに利用できるI / Oリソースが,バックアッププロセス中に不足しているときに,問題は大きくなります。ただし,データベースの少数のテーブルだけが頻繁に変更される場合は,オプティミスティックバックアップ機能で問題が軽減される可能性があります。詳細は,セクション3.3.6 "オプティミスティックバックアップの作成"を参照してください。

  • MySQL服务器5.6.10以前からの圧縮InnoDBテーブルは,InnoDBストレージエンジンでのバグのため,MySQL企业备份3.9.0以降ではリストアできません(MySQL错误系统で错误# 72851を参照してください)。

  • サーバーからバックアップへバイナリログファイルをコピーしようとすると(3.11.0以降のMySQL企业备份のデフォルトの動作です),増分バックアップの基準である完全バックアップが——无固定オプションで作成されていた場合は,その増分バックアップは失敗します。回避策として,ユザ,は,この状況で実行される増分バックアップに——skip-binlogオプションを使用する必要があります。

  • サーバーからバックアップへバイナリログファイルをコピーしようとすると(3.11.0以降のMySQL企业备份のデフォルトの動作です),オフラインバックアップは失敗します。回避策として,オフラ——skip-binlogオプションを使用してください。

  • MySQL企业备份を使用して,ネットワークアタッチトストレージ(NAS)デバイスへのバックアップ,またはそこからのリストアを行うことは可能ですが,ネットワーク問題が発生した場合には,バックアップの一貫性とバックアップまたはリストア操作のパフォーマンスが損なわれる恐れがあります。