高速备份还原MYSQL数据库

#安装依赖包
yum -y update gcc
yum -y install gcc+ gcc-c++

#安装
cd /usr/local/software
tar -jxvf p7zip_16.02_src_all.tar.bz2
cd p7zip_16.02
make && make install
============================================================================

#安装innobackupex
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
yum install numactl libaio rsync -y

rpm -ivh percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm

#备份一下
innobackupex --user=root --password=** --databases="dsideal_db mysql" /usr/local/software


开始时间:13:16:37
结束时间:13:27:50

#压缩一下

cd /usr/local/software


#压缩(不带全称路径)
7za a -t7z 2017-08-09_13-16-30.7z  2017-08-09_13-16-30/

innobackupex通过backup-my.cnf(这个文件存在于上面的备份目录下)来获取DATADIR目录的相关信息。

#还原一下
cd /usr/local/software

#解压缩
7za x 2017-08-09_13-16-30.7z


cd /usr/local/db/mysql/data && rm -rf *

vi /etc/my.cnf  # 加入 datadir 配置项

datadir=/usr/local/db/mysql/data

 

应用一下日志

innobackupex --apply-log /usr/local/software/2017-08-09_13-16-30/

innobackupex --defaults-file=/etc/my.cnf --copy-back /usr/local/software/2017-08-09_13-16-30/
chown -R mysql:mysql ./*

chmod -R 777 data


service mysql restart

链接: http://pan.baidu.com/s/1bozIo15 密码: uhfv


#自动备份
http://www.cnblogs.com/jiangwenju/p/4919633.html

http://navyaijm.blog.51cto.com/4647068/1422229
===========================================================================================================================================
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=Aria;') FROM information_schema.tables WHERE table_schema='dsideal_db' AND ENGINE='InnoDB';

SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=Aria;') FROM information_schema.tables WHERE table_schema='dsideal_db' AND ENGINE='InnoDB' and table_name not like '%_sphinx%' and table_name not like '% %';

如果提示错误:

 Specified key was too long; max key length is 1000 bytes

解决思路:
1.DB engine 是MyIsAm
2.字符集是 utf8 ,1个utf8=3bytes
3.最后就是 (100+255)*3>1000 所以报错
解决方案很多 ,修改DB engine 至 innodb,或者是更改字符集,或者是减小字段长度 皆可.:)

 

初始化数据库,重新还原

cd /usr/local/db/mysql/
rm -rf data

#注释掉
vi /etc/my.cnf
#innodb_force_recovery = 4

cd /usr/local/mysql scripts/mysql_install_db --user=mysql --datadir=/usr/local/db/mysql/data
chmod -R 777 /usr/local/db

service mysql start
mysqladmin
-u root password 'D**********'

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "DsideaL147258369"; flush privileges;

 

 

posted @ 2017-08-09 17:56  糖豆爸爸  阅读(494)  评论(0编辑  收藏  举报
Live2D