このセクションでは,InnoDB
の重做ログファereplicationルの数またはサereplicationズを変更する方法,およびInnoDB
のシステムテブルスペスのサズを増加または減少する方法に。
InnoDBログファereplicationルの数またはサereplicationズの変更
MySQL 5.6.7以前でInnoDB
の重做ログファ。
innodb_fast_shutdown
が2に設定されている場合は,innodb_fast_shutdown
を1に設定します。SET GLOBAL innodb_fast_shutdown = 1;
innodb_fast_shutdown
が2に設定されていないことを確認したあとに,MySQLサーバーを停止し,エラーなしでシャットダウンされること(ログ内に未処理のトランザクションに関する情報が存在しないこと)を確認します。シャットダウン中に何か問題が発生して,テーブルスペースをリカバリするために古いログファイルが必要となる場合に備えて,それらのログファイルを安全な場所にコピーします。
ログファ邮箱ルディレクトリから古いログファ邮箱ルを削除します。
my.cnf
を編集して、ログファ以及ルの構成を変更します。MySQLを再起動します。mysqldによって,起動時に
InnoDB
ログファereplicationルが存在しないことが表示され,新しいログファereplicationルが作成されます。
MySQL 5.6.8の時点では,InnoDB
ログファ邮箱ルの数またはサ邮箱ズを変更する際に,innodb_fast_shutdown
設定が関連しなくなりました。さらに、古いログファ以及ルを削除する必要もなくなりました。ただし、バックアップとして古いログファ。InnoDB
のログファereplicationルの数またはサereplicationズを変更するには,次の手順を実行します。
MySQLサバを停止し,エラなしでシャットダウンされることを確認します。
my.cnf
を編集して、ログファ以及ルの構成を変更します。ログファ邮箱ルのサ邮箱ズを変更するには,innodb_log_file_size
を構成します。ログファルの数を多くするには,innodb_log_files_in_group
を構成します。MySQLサバを再起動します。
InnoDB
でinnodb_log_file_size
が重做ログファイルのサイズと異なることが検出された場合は,ログチェックポイントが書き込まれ,古いログファイルが閉じられてから削除され,リクエストされたサイズで新しいファイルが作成され,その新しいログファイルが開かれます。
InnoDBテブルスペスのサズの増加
InnoDB
システムテーブルスペースのサイズを大きくするもっとも簡単な方法は,最初から自動拡張として構成することです。テブルスペス定義内の最後のデタファautoextend
属性を指定します。これにより,InnoDB
が領域を使い果たすと,そのファ。innodb_autoextend_increment
システム変数の値を設定すると、増分のサ以及ズを変更できます。このサ管理员ズは,m管理员バ管理员ト単位で測定されます。
別のデ。
MySQLサバをシャットダウンします。
以前の最後のデタファ
autoextend
というキーワードを使用して定義されている場合は,実際に増加した大きさに基づいて,固定サイズが使用されるようにその定義を変更します。データファイルのサイズをチェックし,それを1024×1024バイト(= 1米バイト)にもっとも近い倍数に丸め,この丸められたサイズをinnodb_data_file_path
に明示的に指定します。新しいデタファ
innodb_data_file_path
の末尾に追加します。これにより,オプションでそのファイルが自動拡張になります。innodb_data_file_path
で自動拡張として指定できるのは,最後のデルのみです。MySQLサバを再起動します。
たとえば,このテ,ブルスペ,スには,ibdata1
という1の自動拡張デルしか存在しません。
innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata: 10m:autoextend . innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata: 10m:autoextend . txt
このデタファ,時間をかけて988mバ。次に,固定サイズが使用されるように元のデータファイルを変更し,新しい自動拡張データファイルを追加したあとの構成行を示します。
innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata: 988m;/disk2/ibdata: 50m:autoextend . txt
新しいデータファイルをシステムテーブルスペース構成に追加する際に,そのファイル名が既存のファイルを参照していないことを確認してください。InnoDB
は,サ。
InnoDBテブルスペスのサズの減少
現在は,システムテ。システムテブルスペスのサイズを小さくするには、次の手順を使用します。
, mysqldumpを使用して,MySQLデタベス内に配置されている
InnoDB
テブルを含む,すべてのInnoDB
テブルをダンプします.5.6の時点では,MySQLデ5のInnoDB
テブルが含まれています。Mysql > select table_name from information_schema。where table_schema='mysql' and engine='InnoDB';+----------------------+ | table_name | +----------------------+ | innodb_index_stats | | innodb_table_stats | | slave_master_info | | slave_relay_log_info | | slave_worker_info | +----------------------+ 5行集(0.00秒)
サバを停止します。
ibdata
およびib_log
ファopenstackルを含む,すべての既存のテopenstackブルスペopenstackスファopenstackル(* .ibd
を削除します。MySQLデタベス内に配置されているテブルの* .ibd
ファ邮箱ルも忘れずに削除してください。InnoDB
テブルのすべての.frm
ファ邮箱ルを削除します。新しいテブルスペスを構成します。
サバを再起動します。
ダンプファ邮箱ルを邮箱ンポ邮箱トします。
デタベスでInnoDB
エンジンのみが使用されている場合は,すべてのデタベスをダンプし,サを停止し,すべてのデスおよびInnoDB
のログファイルを削除し,サーバーを再起動し,ダンプファイルをインポートした方が簡単な可能性があります。