環境
Macbook Air 2011 Lion 10.7.5MySQL 5.5.28
バックアップ
mysqldump -u root -p データベース名 > kabuka.sql6GBのファイルができた。
念のため、/usr/local/mysql-5.5.28-osx10.6-x86_64もバックアップした。
データは外付けHDDにコピーして作業した。
削除
データベースを削除mysql -u root -p
drop database データベース名;
quit
[システム環境設定]->[MySQL]でサーバーを停止
/usr/local/mysql-5.5.28-osx10.6-x86_64/dataの
ibdata1を削除
ib_logfile0
ib_logfile1
設定
/etc/my.cnfの[mysqld]項目にinnodb_data_file_path=ibdata1:1Gを追加。自動で拡張する場合は、ibdata1:10M:autoextend にする。
innodb_file_per_table
my.cnfが無かったから、
/usr/local/mysql-5.5.28-osx10.6-x86_64/support-files/my-huge.cnfをコピーした。
mysql-bin.000001ができないようにするには、
log-bin=mysql-binをコメントアウトする。
リストア
[システム環境設定]->[MySQL]でサーバーを起動データベース作成
mysql -u root -p
CREATE DATABASE データベース名;
quit
復元
mysql -u root -D データベース名 -p < kabuka.sql
20GB->6GBに縮小 +ibdadaは1GB
圧縮
my.cnfにinnodb_file_format = Barracudaを追加 して再起動
ログインして、
ALTER TABLE テーブル名 ENGINE=InnoDB ROW_FORMAT=compressed KEY_BLOCK_SIZE=8;を実行して変換する。 この処理は一度だけでいい。以後は、
ALTER TABLE テーブル名 ENGINE=InnoDB;で最適化できる。
KEY_BLOCK_SIZEが、小さいと逆にファイルが大きくなった。
デフォルトが16なので、8にするとサイズが半分になる。
6GB->3GBに縮小した。 ibdada1は1GBで変化しなかった。
フォーマットの確認は
show table status;
参考サイト
http://oshiire.to/archives/1684http://blog.development-network.net/ung/2009/07/mysql-bin000001.html
http://d.hatena.ne.jp/omiyan/20110128/p1
http://d.hatena.ne.jp/sh2/20090628
Tags:
ガジェット