Fedora14をFedora15へYumでアップデート

DellMini9にFedora14を入れた後、せっかくFedoraにしたなら最新のFedora15にしたくなった。
とくに凝ったセットアップもしたないけど、Yumでいけないかなと調べてたらできた。

まずはYumをアップグレードして、キャッシュとかをお掃除。

yum update yum
yum clean all

そして、「releasever」オプションとかをつけて実行。

yum --releasever=15 --disableplugin=presto distro-sync

これでOKな感じだけど、Yumでエラーがでました。
mini9用にいれたbroadcom-wlが問題になってたので、いったん削除。
無線でMini9使ってるので、有線に切り替えなきゃいけないかと思ったけど
Yumで削除してもネットにはつながるので、よかった。。

それから「yum –releasever=15 –disableplugin=presto distro-sync」を再実行」
アップデートとインストールの対象が2345個・・・
試してみたけど、mini9だと3時間以上かかりました。
これならFedora15をネットワークインストールで入れなおしたほうが早かった。。

Fedora15から採用されたgnome-shellはどうも使いにくくて馴染めなかった。

dell mini9の無線LANをFedoraで認識させる。

DELLのMini9にFrdora14を遊びでいれてみました。
Windows7をいれてたけど、もともと高速ではないマシンだし、VAIO-Zがあるので
MySQLの高速化テストように再インストールしてみました。
RHEL系なら何でもよかったけど、とりあえず手元に日経Linuxの付属DVDがあったのでFedora14に決定。

よくあるRH系のインストール画面が進んで、なんも問題なく完了。
パーティションはLVMですすめて、インストール完了後にSwapを削除します。
メモリは2Gにしてあるのと、SSDにちょっと気を使ってみます。

有線は認識したけど、無線はドライバがないといわれてしまったのでドライバを当てます。

CentOSでもお世話になっている、rpmfusionを設定

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

後はドライバをインストール

yum update
yum install broadcom-wl 

再起動すれば認識します。
ってことは、CentOSでも平気そう。

MySQLのパスワード忘れ

本番稼動しているサーバならともかく、テストで色々やっていると
MySQLのrootのパスワードを忘れてしまったことがあります。

対策はこれをつけて、MySQLの再起動を行うと、パスワード認証なしでアクセスできます。

vi /etc/my.conf
追加→skip-grant-tables

mysql_safeの起動オプションでも指定できます。
その場合は「–skip-grant-tables」で実行します。

起動後、MySQLへログインして、パスワードのリセットを行いましょう。

SET PASSWORD FOR ユーザ@"ホスト名"=password('パスワード');

リセット後は「skip-grant-tables」は危ないので、必ず消してください。

MySQLのバイナリログへの書き込み

バックアップとしてバイナリログのことを書いたが
動きのあるサイトのバイナリログを見てたら、どうやら書き込みが遅い?というかリアルタイムではない。

環境にもよるのかわかりませんが、ある程度溜まってから書き込まれます。

答えはmy.confへの設定

sync_binlog=1

これでコミットがリアルタイムに反映されるようになった。

いろいろな資料を見ていると
InnoDBの場合はデータファイルへの書き込みやInnoDBログファイルの方が
IOは多いらしいので、書き込みドライブを変える等すれば性能低下はすくなく、対障害性をあげられそう。

MySQLのバックアップ

サーバ構築するたびに思い出しがてら調べるのが面倒なので、メモ

一番簡単?なコールドバックアップから。
インスタンスを止めた上体から全バックアップする。

MySQLのdatadirは「/data/mysql」の仮定ですすめます。

まずは、停止

①/etc/rc.d/init.d/mysqld stop
②mysqladmin shutdown --user=root --password=pass123 --soket=/data/mysql/mysql.sock
③kill 'cat /data/mysql/mysql.sock'

止まったか確認

ps -ef | grep mysqld grep -v grep

ソケットの場所などは環境に合わせてください。

止まっていれば

cp -rp /data/mysql /home/backup/mysql-backup

この場合は、ドライブの異なるhomeへとりました。
外部デバイスなどに逃がすか、とった後別のサーバへ転送したほうがいいです。

これで一式を退避させることができるので、戻す場合は

rm -rf /data/mysql
cp -rp /home/backup/mysql-backup /data/mysql 

でもこの方法だと、止めなきゃいけない+最新には戻せない(かも)なので
タイミングにもよるけど、運用には耐えられない。
なので、1週間に1回日曜にフルでとって、それ以外トランザクションログを使ってできる限り最新状態に近づける。

トランザクションファイルはmy.confに設定を追加する。
サーバ構築するたびに思い出しがてら調べるのが面倒なので、メモ

一番簡単?なコールドバックアップから。
インスタンスを止めた上体から全バックアップする。

mysqlのdatadirは「/data/mysql」の仮定ですすめます。

まずは、停止

①/etc/rc.d/init.d/mysqld stop
②mysqladmin shutdown --user=root --password=pass123 --soket=/data/mysql/mysql.sock
③kill 'cat /data/mysql/mysql.sock'

止まったか確認

ps -ef | grep mysqld grep -v grep

ソケットの場所などは環境に合わせてください。

mkdir /data/mysql/bin_log
chown mysql:mysql /data/mysql/bin_log
vi my.conf
追加 → log-bin=/data/mysql/bin_log/mysqllog

設定が終わったら、mysqlを再起動。
これで、/data/mysql/bin_log/に「mysqllog.000001」というログができます。

この中にはトランザクションの情報が記載されています。
バイナリ形式なので、見たい場合は

mysqlbinlog --disable-log-bin /data/mysql/bin_log/mysqllog.000001 > /tmp/mysqllog.000001.sql 

でSQL形式に変換できます。

ログはどんどん書き込まれるので、スイッチする場合は

mysqladmin flush-log --user=root --password=pass123 --soket=/data/mysql/mysql.sock

これで、連番の別ファイルが作成されてそっちに書き込まれるようになります。

2つのバイナリを反映させる場合は

mysqlbinlog --disable-log-bin /data/mysql/bin_log/mysqllog.000001 /data/mysql/bin_log/mysqllog.000002 > /tmp/mysqllog.sql 
mysql --user=root --password=pass123 --soket=/data/mysql/mysql.sock < /tmp/mysqllog.sql 

ってな感じです。