使用percona xtra备份
先安装从属软件包
yum install-y perl-DBD-MySQL perl-DBI perl-time-hires libaio *
最后的参数是备份的目录;
#使用默认的/etc/my.cnf配置文件
innobackupex---user=XXX---password=XXX/home/data/bak _ MySQL /
配置文件中的“[mysqld]”条目已更改,因为正在使用独立的多实例。 xtrabackup无法正确识别datadir,因此已复制。 使用原始单数据库格式,将缺省数据库datadir更改为主数据库datadir
#自定义配置文件
innobackupex---user=XXX---password=XXX---defaults-file=/home/data/xtra backup.my.cn f/home
innobackupex的备份速度非常快,完成后显示“innobackupex: completed OK!
- -应用日志操作
innobackupex-- user=your dbuser-- password=XXX-- apply-log/path/to/backup dir/$ timestamp /
此过程将ibdata1与ib_logfile0、ib_logfile1的log sequence number相对应。 否则,表空间和事务日志可能不匹配。
innodb : error : pagexxxlogsequencenumberxxinnodb 3360 isin the future! currentsystemlogsequencenumberxxx。
数据库具有重建innodb日志的功能,但最好避免.
可以直接使用此备份创建Mysql_multi的独立多实例。 此外,不需要关闭原始mysql。
将备份的目录$DATETIME目录重命名为mysql2,
mv/home/data/bak _ MySQL/XXX/home/data/MySQL 2
chown-r MySQL.MySQL/home/data/MySQL 2
cp /etc/my.cnf /home/data/my.cnf
vim /home/data/my.cnf
修改my.cnf,将其更改为多个实例,并参考mysqld_multi --example输出示例;
启动新实例;
mysqld _ multi---defaults-file=/home/data/my.CNF start 2
附上几个代码:
#! /sxddr/bash
db _ config=/data2/data/xtra backup.my.cn f
DB_USER=xxx
db _ pass _ file='/etc/db/' $ db _ user
BACKUP_HOME=/data2/data
# getdatabasepasswordfunctiongetdbpass (
{
RET=`cat$DB_PASS_FILE`echo$RET
}
DB_PASS=$(getDbPass )
cd $BACKUP_HOME
# partialbackupfunctionpartial _ backup (
innobackupex-- defaults-file=$ db _ config--user=$ db _ user-- password=$ db _ pass _-- datababases=
$BACKUP_HOME
YEAR=`date '%Y ' `
获取timestamp=` ls|grep 2014|head-n1 ` #时间戳名称
innobackupex-- user=$ db _ user-password=$ db _ pass-- apply-log-- export $ backup _ home/$ timestamp /
chown-r MySQL.MySQL $ backup _ home/$ timestamp/}
#full backup,can be used as a slave,orbasebackupfunctionfull _ backup ()
innobackupex-- defaults-file=$ db _ config--user=$ db _ user-- password=$ db _ pass _
$BACKUP_HOME
获取timestamp=` ls|grep 2014|head-n1 ` #时间戳名称
innobackupex-- defaults-file=$ db _ config-- user=$ db _ user-- password=$ db _ pass-apply-log $ backup
chown-r MySQL.MySQL $ backup _ home/$ timestamp/}
#incremental backup,can be used as a slave,orbasebackupfunctionincremental _ backup ()
获取timestamp=` ls|grep 2014|head-n1 ` #时间戳名称
incremental _ base _ dir=/data2/data/MySQL3/backup _ dir=/data2/data/backups/innobackupex-user=$ db
也可以使用LSN执行增量备份
# innobackupex---incremental $ backup _ dir---incremental-lsn=XXX
}
full_backup