【mysql】データベースがダウンした時の対処メモ

概要

データベースMYSQLが頻繁に落ちるのでその原因を調査、対策しました。

 

 

環境

IDCFクラウド環境

  • サーバー (仮想マシン・ハードウェア専有マシン)
    S1 プラン メモリ1G

  • ボリューム(ディスク)
    基本 15GB

  • オブジェクトストレージサービス
    50GB

 

現象

 

データベースが突然ダウンした。コマンドプロンプトでmysqlを再起動しても、立ち上がらない。
データベースがダウンした時のログ(mysql.log)は次の通り。

170903 12:36:22 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
170903 12:36:23 mysqld_safe WSREP: Running position recovery with --log_error='/var/lib/mysql/wsrep_recovery.O1oBoH' --pid    -file='/var/lib/mysql/kusanagi71-recover.pid'
170903 12:36:23 [Note] /usr/sbin/mysqld (mysqld 10.0.29-MariaDB-wsrep) starting as process 1269 ...
170903 12:36:28 mysqld_safe WSREP: Recovered position 00000000-0000-0000-0000-000000000000:-1
170903 12:36:28 [Note] InnoDB: Using mutexes to ref count buffer pool pages
170903 12:36:28 [Note] InnoDB: The InnoDB memory heap is disabled
170903 12:36:28 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
170903 12:36:28 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
170903 12:36:28 [Note] InnoDB: Compressed tables use zlib 1.2.7
170903 12:36:28 [Note] InnoDB: Using Linux native AIO
170903 12:36:28 [Note] InnoDB: Using CPU crc32 instructions
170903 12:36:28 [Note] InnoDB: Initializing buffer pool, size = 384.0M
170903 12:36:28 [Note] InnoDB: Completed initialization of buffer pool
170903 12:36:28 [Note] /usr/sbin/mysqld (mysqld 10.0.29-MariaDB-wsrep) starting as process 1320 ...
170903 12:36:29 [Note] InnoDB: Highest supported file format is Barracuda.
170903 12:36:29 [Note] InnoDB: 128 rollback segment(s) are active.
170903 12:36:29 [Note] InnoDB: Waiting for purge to start
170903 12:36:29 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.34-79.1 started; log sequence number 1275949758

 

<h2>リスタート直後(メモリが使用されていないの状態)</h2>

[root@kusanagi71 mysql]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sda1         15G   11G  4.1G   74% /
devtmpfs         479M     0  479M    0% /dev
tmpfs            489M     0  489M    0% /dev/shm
tmpfs            489M   50M  439M   11% /run
tmpfs            489M     0  489M    0% /sys/fs/cgroup
tmpfs             98M     0   98M    0% /run/user/0
[root@kusanagi71 mysql]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         525          88         113         362         170
Swap:             0           0           0

 

 

<h2>mySQLダウン時の状態</h2>

ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sda1         15G   12G  4.0G   74% /
devtmpfs         479M     0  479M    0% /dev
tmpfs            489M     0  489M    0% /dev/shm
tmpfs            489M   50M  439M   11% /run
tmpfs            489M     0  489M    0% /sys/fs/cgroup
tmpfs             98M     0   98M    0% /run/user/0
[root@kusanagi71 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         543         161         119         271         154
Swap:             0           0           0

 

原因

 

KUSANAGI WORDPRESSは、SWAPが設定されていないためメモリ不足が原因でDBがダウンしていると思われる。

 

 

対処法

 

SWAPを設定する。

 

 

ボリュームを追加する

 
IDCFクラウドの管理ポータルから「ボリューム」を選択します。
 

cat /proc/scsi/scsi

 

パーディションを作成する

 

fdisk /dev/sdb

 

 

 

スワップを設定する

 

mkswap /dev/sdb1

 
UUIDが発行されるので控えておきます。SWAP領域を特定するために必要です。
 
/etc/fstabに次のコードを追加します。

UUID={ここにmkswapで発行されたUUIDが入る} swap swap defaults 0 0

 

 
 

 

スワップを有効にする

 
/etc/fstabに設定したSWAP設定を有効にします。

swapon -a

 
有効になっていることを確認します。

swapon -s

 

 
 
 

参考