【原创】centos下openstack的mysql数据库备份与恢复

首先,得有个mysql数据库备份脚本,须要注意的是,openstack的mysql数据库,root帐号的密码是随机设置的,其值在/etc/contrail/mysql.token中。mysql

#!/bin/bash

backup_dir="/opt/backup/mysql"

if [ ! -d "$backup_dir" ]; then
  mkdir -p "$backup_dir"
fi

# Dump the entire mysql
/bin/nice -n 19 /usr/bin/mysqldump -uroot -p`cat /etc/contrail/mysql.token` --opt --flush-logs --single-transaction --ignore-table=mysql.event --ignore-table=mysql.gtid_slave_pos --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats --all-databases > ${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql
/bin/nice -n 19 tar zPcf ${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.tar.gz ${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql
rm -rf $backup_dir/*.sql

 

而后要将这个备份脚本设置为自动运行,好比设置为天天凌晨三点执行:sql

echo "0 03 * * * root /usr/bin/sh /opt/backup/shell/backupmysql.sh" >> /etc/crontab

 

最后,一旦因为异常断点等缘由致使数据库文件丢失,mysql服务启动失败,则安装下列步骤进行恢复:shell

1. 正常状况下,一个刚yum装完的数据库目录下有这些文件数据库

[root@test mysql]# ll
total 28
-rw-rw---- 4 mysql mysql 16384 Aug 29 13:35 aria_log.00000001
-rw-rw---- 4 mysql mysql    52 Aug 29 13:35 aria_log_control
drwx--x--x 2 mysql mysql  4096 Dec 21 14:33 mysql
drwx------ 2 mysql mysql  4096 Dec 21 14:33 performance_schema
drwxr-xr-x 2 mysql mysql     6 Aug 29 13:35 test

2. 对比当前的/var/lib/mysql/文件夹下的文件,把多余的文件都删掉bash

3. 启动数据库service mysql startflex

4. 导入数据库文件,恢复数据code

# cat /etc/contrail/mysql.token
f0d330d601ce33f1a69f
# mysql -u root -p < /mysql-flexhcs_controller_1-20161221.sql
Enter password: f0d330d601ce33f1a69f
相关文章
相关标签/搜索