zabbixのMySqlデータベースが壊れた。まめにバックアップして、圧縮することにした。

Zabbixでサーバを監視していていて、いたって快適に使っていたのですが、こんなメッセージが携帯メールに届いた。

「Zabbix database is down.」

mysqlが壊れたみたい。

/var/lib/mysql/ibdata1 のサイズが6ギガくらいになっていた。

修復してもどうしてもだめなので、結局ZABBIZサーバの再構築をした。

データベースのバックアップをさぼっていたので、バックアップすることにした。
せっかくだからその時圧縮も行うことにした。

無理があるが、その時のシェルスクリプト。
root_passwd=mysql <-ここではmysqlのrootのパスワードを指定する。

[TEXT]
#!/bin/sh
root_passwd=mysql
prefix=”mysql.mysqldump”
nowtime=”$(date +%Y%m%d%H%M%S)”
backup_file=”${prefix}_${nowtime}”
cd /backup

/etc/init.d/httpd stop
/etc/init.d/zabbix-server stop
mysqldump -u root -p${root_passwd} -x –all-database > ${backup_file}
mysqladmin -u root -p${root_passwd} -f drop zabbix
/etc/init.d/mysqld stop
rm -rf /var/lib/mysql/ib_logfile0
rm -rf /var/lib/mysql/ib_logfile1
rm -rf /var/lib/mysql/ibdata1
/etc/init.d/mysqld start
mysqladmin -u root -p${root_passwd} create zabbix
mysql -u root -p${root_passwd} zabbix < ${backup_file}
/etc/init.d/zabbix-server start
/etc/init.d/httpd start
[/TEXT]

ところで、/etc/my.cnf に innodb_file_per_table を追加した。
その時のmy.cnf が以下の通り。

[TEXT]
[mysqld]
innodb_file_per_table
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

default-character-set=utf8
skip-character-set-client-handshake

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[/TEXT]

コメントを書く


Warning: Undefined variable $user_ID in /home/r6519429/public_html/tamura.jp/wp-content/themes/tamura_thema1/comments.php on line 156