MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.5 InnoDB ストレージ エンジン :: 13.5.7 InnoDB データとログ ファイルの追加と削除
« 13.5.6.5 InnoDB と MySQL 複製

13.5.8 InnoDB データベースのバックアップと復旧 »
Section Navigation      [Toggle]
  • 13.5 InnoDB ストレージ エンジン
  • 13.5.1 InnoDB 概要
  • 13.5.2 InnoDB 連絡先情報
  • 13.5.3 InnoDB 設定
  • 13.5.4 InnoDB 起動オプションとシステム変数
  • 13.5.5 InnoDB テーブルスペースを作成する
  • 13.5.6 InnoDB テーブルの作成と利用
  • 13.5.7 InnoDB データとログ ファイルの追加と削除
  • 13.5.8 InnoDB データベースのバックアップと復旧
  • 13.5.9 InnoDB データベースを別のマシンに移動する
  • 13.5.10 InnoDB トランザクション モデルとロック
  • 13.5.11 InnoDB パフォーマンス チューニング ヒント
  • 13.5.12 マルチバージョンの実装
  • 13.5.13 InnoDB テーブルとインデックス構造
  • 13.5.14 InnoDB ファイル領域の管理とディスク I/O
  • 13.5.15 InnoDB エラー処理
  • 13.5.16 InnoDB テーブル上の制約
  • 13.5.17 InnoDB トラブルシューティング

13.5.7. InnoDB データとログ ファイルの追加と削除

このセクションでは、InnoDB テーブル スペースがスペースを使いきってしまったり、ログ ファイルのサイズを変更したい時に何ができるか説明しています。

InnoDB テーブル スペースのサイズを増やす一番簡単な方法は、最初からこれを自動拡大として設定する事です。テーブル スペース定義内の最後のデータ ファイルの autoextend 属性を指定してください。すると InnoDB は領域を使い切ってしまった時、そのファイルのサイズを自動的に8MB インクリメント増やします。インクリメントサイズは、MBで計られる innodb_autoextend_increment システム変数の値を設定する事で変更できます。

または、別のデータ ファイルを追加する事でテーブル スペースのサイズを増やす事ができます。これを行う為には、MySQL サーバを閉じ、innodb_data_file_path の最後に新しいデータ ファイルを追加する為にテーブル スペース設定を変更し、そしてサーバを再起動してください。

もし最後のデータ ファイルがキーワード autoextend で定義されていたら、テーブル スペースの再設定の手順は、最後のデータ ファイルがどのサイズまで成長するかを考慮する必要が有ります。データ ファイルのサイズを求め、それを1024 × 1024 bytes (= 1MB) の倍数の最近値まで丸め、そして丸めたサイズを innodb_data_file_path 内で明示的に指定してください。すると別のデータ ファイルを追加する事ができます。innodb_data_file_path 内の最後のデータ ファイルだけが自動拡大として指定できるという事を覚えて置いてください。

ひとつの例として、テーブル スペースが1つだけ自動拡大データ ファイル ibdata1 を持っていると仮定してください:

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

このデータ ファイルが、時間をかけて988MB まで成長したと仮定してください。ここに、元のデータ ファイルを非自動拡大に変更し、別の自動拡大データ ファイルを追加した後の設定ラインがあります:

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

テーブル スペース設定に新しいファイルを追加する時には、それが存在していない事を確認してください。InnoDB はサーバを再起動する時にファイルを作成し、初期化します。

現在、データ ファイルをテーブルスペースから削除する事はできません。テーブル スペースのサイズを小さくするには、この手順を利用してください:

  1. 全ての InnoDB テーブルをダンプする為に mysqldump を利用してください。

  2. サーバを停止してください。

  3. 全ての存在するテーブルスペース ファイルを削除してください。

  4. 新しいテーブルスペースを設定してください。

  5. サーバを再起動してください。

  6. ダンプ ファイルをインポートしてください。

InnoDB ログ ファイルの数やサイズを変更したければ、次の指示に従ってください。利用する手順は innodb_fast_shutdown の値によって決まります:

  • もし innodb_fast_shutdown が2に設定されなければ:MySQL サーバを停止し、エラー無しでシャットダウンした事を確認する必要があります。(ログ内に未処理のトランザクションの情報が無い事を保証する為)シャットダウンの際に何かが起きた場合、テーブルスペースを復旧する為に必要になるので、古いログ ファイルを安全な場所にコピーしておいてください。古いログ ファイルをログ ファイル ディレクトリから削除し、ログ ファイル設定を変更する為に my.cnf を編集し、MySQL サーバを再起動してください。mysqld はログ ファイルが存在しない事を確認し、新しいものを作成している事を告げます。

  • もし innodb_fast_shutdown が2に設定されると:サーバをシャットダウンし、innodb_fast_shutdown を1に設定し、サーバを再起動してください。サーバは復旧を許可されます。そして、サーバをもう一度シャットダウンし、InnoDB ログ ファイル サイズを変更する為に前出の項目で説明されている手順に従わなければいけません。innodb_fast_shutdown を2に設定し直し、サーバを再起動してください。

Copyright © 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