MySQLデータのバックアップと復元の2つの方法を紹介します。

2169 ワード

Msqldumpを使ってバックアップと復元を行います。
mysqldumpを使ってバックアップします。

mysqladmin stop-slave -uroot -p
mysqldump --all-databases > fulldb.dump
mysqladmin start-slave -uroot -p
tar -czf /tmp/dbdump.tar.gz ./fulldb.dump ./mysql-relay-log.info

私たちはデータベース全体のdumpをバックアップする以外に、relay-logs.infoファイルをバックアップする必要があります。このファイルには以下のような情報が含まれています。

/var/lib/mysql/mysql-relay-bin.000002
720
mysql-bin.0000023968

赤色のハイライトは、現在のMySQLホストサーバ上のバイナリログの実行状態を指定します。このデータはサーバから復元する際に重要です。
mysqldumpを使って復元します。

mysql -uroot -p < /root/dbdump.db
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.10.201', MASTER_USER='slave_user', MASTER_PASSWORD='abc@DEF', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=3968;
start slave;
show slave status\G

状態において、次の2行があれば、サーバーから正常に動作していることを示します。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

データベースファイル(Raw Data)を使ってバックアップと復元を行います。
データベースファイルのバックアップ

service mariadb stop
tar --selinux --acls --xattrs -czPf /root/dbbackup.tar.gz /var/lib/mysql/
service mariadb start

注意:赤いパラメータは、ターゲットサーバに還元されてから使えなくなるのを防ぐために、selinux属性と他のACL属性をtarに同時にバックアップさせます。
データベースファイルを復元

service mariadb stop
tar --selinux --acls --xattrs -xzPf /root/dbbackup.tar.gz -C /
service mariadb start

また、データファイルを復元する場合も、これらのパラメータを指定する必要があります。
故障チェック
エラーメッセージ

150401 9:58:06 [ERROR] mysqld: File '/var/lib/mysql/mysql-bin.index' not found (Errcode: 13)
150401 9:58:06 [ERROR] Aborting

Selinux設定をチェックする

ll -Z mysql-bin.index
-rw-rw----. mysql mysql unconfined_u :o bject_r:var_lib_t:s0 mysql-bin.index

解決方法
Selinux(プロファイル/etc/selinux/config)を無効にすることができます。

SELINUX=disabled

修正後は再起動が必要です。
タタコマンドで圧縮、解凍する際に以下のパラメータを追加することもできます。

tar --selinux --acls --xattrs