Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1234258
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1769
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-13 16:19
个人简介

努力, 努力, 再努力

文章分类

全部博文(220)

文章存档

2018年(8)

2017年(46)

2016年(75)

2015年(92)

我的朋友

分类: Mysql/postgreSQL

2015-05-22 16:40:45

转自: http://blog.csdn.net/m582445672/article/details/7649357

备份前特别提醒
:

1.      在备份的MySQL数据库的my.cnf文件中,必须加入datadir={PATH},否则找不到备份数据的路径.

2.      在备份过程中,把INNODB数据文件备份完成后,会锁住整个库,并开始复制MYISAM等非事务引擎的数据和.frm;这个对于我们的系统来说,只需1-2秒就能完成


A.     全库备份详解

命令:

innobackupex-1.5.1--user=root --password=root --database=total2--defaults-file=/home/mysql-server/mysql3/my.cnf /home/mysql-server/backup

参数说明:

innobackupex-1.5.1:为封装Xtrabackupperl脚本. 因为Xtranbackup本身不能备份MyISAM.使用这个自带的脚本.就可以一起备份了.

User : 连接数据库的用户名

Password: 连接数据库的密码

Database: 需要备份的数据库

Defaults-file:备份数据库的配置文件路径

/home/mysql-server/backup: 这个是自己定义一个备份文件存放的路径

: --slave-info: 在备机上加入此参数可以记录master 的pos点


B1.增量备份详解

命令:(第一次增量备份)

innobackupex-1.5.1 --user=root--password=root --database=total2 --defaults-file=/home/mysql-server/mysql3/my.cnf–incremental --incremental-basedir=/home/mysql-server/backup/2012-02-21_20-14-05  /home/mysql-server/backup/

参数说明:

–incremental : 代表这个备份为增量备份.

 

--incremental-basedir: 指定前次完全备份或者增量备份文件的位置。这里的增量备份其实只针对的是InnoDB,对于MyISAM来说,还是完全备份。(这里的/home/mysql-server/backup/2012-02-21_20-14-05是指完整备份的路径.写上这个路径.Xtrabackup会根据上次备份的LSN进行增量备份

 

/home/mysql-server/backup/ :这个是自己定义一个备份文件存放的路径(例如:最后备份的生成文件名为2012-02-21_20_50_04



B2.增量备份详解

命令:(第二次增量备份)

innobackupex-1.5.1--user=root --password=root --database=total2 --defaults-file=/home/mysql-server/mysql3/my.cnf--incremental --incremental-basedir=/home/mysql-server/backup/2012-02-21_20_50_04 /home/mysql-server/backup/


参数说明:

--incremental-basedir:可以看着,这次增量备份的文件名是,第一次增量备份的文件名(会得到第一次增量备份的LSN继续备份)


C.数据库整库还原

还原时,特特别别,特别特别注意

#=====================================================

要删除要还原数据库datadir指定路径下的所有数据.必须是一个空的文件.

就算你的系统库在里面,就把系统相关的库先mv 出来.例如:mysql,performance_schema,test 然后在还原

#========================================================


命令1:

innobackupex-1.5.1--user=root --password=root --database=total2--defaults-file=/home/mysql-server/mysql2/my.cnf  --apply-log /home/mysql-server/backup/2012-02-21_20-14-05

参数说明:

Apply-log: 因为在备份的时候是在线的,如果有新插入的SQL语句,会记录新增加的LSN,然后放会放到备份文件的xtrabackup_logfile ,还原的时候使用--apply-log 来释放热备份修改的页面,放到表空间中.

 

/home/mysql-server/backup/2012-02-21_20-14-05:这个肯定就是指备份文件的路径了.

 

命令2:

innobackupex-1.5.1--user=root --password=root --database=total2--defaults-file=/home/mysql-server/mysql2/my.cnf --copy-back/home/mysql-server/backup/2012-02-21_20-14-05

参数说明:

copy-back :这个参数就代表还原了.

 

#=======================================================================

1.     把先备份的系统库MV到原来的地方

2.     修改data目录的权限(如果你设置的是已MySQL用户访问的话)

     chown-R mysql.mysql data

# =========================================================================

 

 

D.增量还原

特别注意

# =========================================================

这个我认为有点变态,设计的不太好.还原的时候破坏了原来完整备份的原始性.

虽然这个对以后的还原没什么影响.但是对于想保存最初备份文件的同事来说就要注意了.

# ==========================================================


如果有多个增量备份的文件.先执行第一开始备份的那个增量备份文件(这样才能跟最早的完整备份的LSN连接的上)

 

1.       释放全部备份的--apply-log文件

命令:

innobackupex-1.5.1--user=root --password=root --database=total2--defaults-file=/home/mysql-server/mysql2/my.cnf  --apply-log /home/mysql-server/backup/2012-02-22_04-06-45

这时释放之后,释放的数据会进入备份文件夹里面的表空间.

 

2.    释放第一个增量备份文件(完整备份文LOG件与增量备份文件LOG关联起来)

命令:

innobackupex-1.5.1--user=root --password=root --database=total2 --defaults-file=/home/mysql-server/mysql2/my.cnf   --apply-log /home/mysql-server/backup/2012-02-22_04-06-45--incremental-dir=/home/mysql-server/backup/2012-02-22_04-27-32

命令详解:

--incremental-dir: 为第一个增量备份的路径

/home/mysql-server/backup/2012-02-22_04-06-45:为整库备份的路径

这时第一个增量备份的数据会全部进入完整备份的表空间里面.

 

3.    释放第二个增量备份文件

命令:

innobackupex-1.5.1 --user=root--password=root --database=total2 --defaults-file=/home/mysql-server/mysql2/my.cnf   --apply-log /home/mysql-server/backup/2012-02-22_04-06-45--incremental-dir=/home/mysql-server/backup/2012-02-22_05-11-32

命令详解:

--incremental-dir: 为第二个增量备份的路径

/home/mysql-server/backup/2012-02-22_04-06-45:为整库备份的路径

这时第二个增量备份的数据会全部进入完整备份的表空间里面.

 

4.    还原数据库

innobackupex-1.5.1 --user=root--password=root --database=total2--defaults-file=/home/mysql-server/mysql2/my.cnf --copy-back/home/mysql-server/backup/2012-02-22_04-06-45

 

但最后依然记住

# =======================================================================

把先备份的系统库MV到原来的地方

修改data目录的权限(如果你设置的是已MySQL用户访问的话)

     chown-R mysql.mysql data

#=========================================================================

在启动mysqlserver..

 

# 增量备份还原完成

阅读(1074) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~