做家装壁纸的网站,广州网站 制作信科便宜,做外贸网站,鲜花销售网站开发费用Percona Xtrabackup可以说是一个完美的数据备份工具。特别是当数据库的容量达到了一定数量级的时候且存在单表达到几十G的数据量#xff0c; 很难容忍一些逻辑备份的漫长时间。如单个数据库约200G#xff0c;单表最大为120G#xff0c;mysqldump逻辑备份的时间长达20多小时。…Percona Xtrabackup可以说是一个完美的数据备份工具。特别是当数据库的容量达到了一定数量级的时候且存在单表达到几十G的数据量 很难容忍一些逻辑备份的漫长时间。如单个数据库约200G单表最大为120Gmysqldump逻辑备份的时间长达20多小时。除此之外也不好验证逻辑备份的可用性与数据的一致性。去年就层简单使用过了Xtrabackup但是一直没有用于生成环境。最近的一个集群需要搭建一主多从数量约130G也不能影响主库的正常工作Xtrabackup作为了首选的备份工具。 1、Percona Xtrabackup的优点 1)可以快速可靠的完成数据备份复制数据文件和追踪事务日志 2)数据备份过程中不会中断事务的处理热备份 3)节约磁盘空间和网络带宽 4)自动完成备份检定 5)因更快的恢复时间而提高在线时间 2、备份原理 innobackupex在后台线程不断追踪InnoDB的日志文件然后复制InnoDB的数据文件。数据文件复制完成之后日志的复制线程也会结束。这样就得到了不在同一时间点的数据副本和开始备份以后的事务日志。完成上面的步骤之后就可以使用InnoDB崩溃恢复代码执行事务日志redo log以达到数据的一致性。 备份分为两个过程 1backup备份阶段追踪事务日志和复制数据文件物理备份。 2preparing重放事务日志使所有的数据处于同一个时间点达到一致性状态。 3、安装支持包 yum install cmake gcc gcc-c -y
yum install automake autoconf -y
yum install bzr zlib-devel libgcrypt-devel -y
yum install libaio libaio-devel bison libtool ncurses-devel -y 4、编译innobackupex 在percona-xtrabackup-2.1.7目录下执行./utils/build.sh #./utils/build.sh
Build an xtrabackup binary against the specified InnoDB flavor.Usage: build.sh CODEBASE
where CODEBASE can be one of the following values or aliases:
innodb51 | plugin build against InnoDB plugin in MySQL 5.1
innodb55 | 5.5 build against InnoDB in MySQL 5.5
innodb56 | 5.6,xtradb56, build against InnoDB in MySQL 5.6
| mariadb100,galera56
xtradb51 | xtradb,mariadb51 build against Percona Server with XtraDB 5.1
| mariadb52,mariadb53
xtradb55 | galera55,mariadb55 build against Percona Server with XtraDB 5.5 从上面可以看到不同版本mysql代码库的别名选择上面第一列的值就可以编译生成对应版本的innobackupex备份工具。 我的使用的mysql5.5版本那么执行./utils/build.sh innodb55。 注意编译过程中出现的错误大多情况下出错是因为缺少支持的依赖包。编译完成之后生成以下几个可执行文件并复制到一个工作目录中。 cp innobackupex /usr/local/bin/
cp src/xbcrypt /usr/local/bin/
cp src/xbstream /usr/local/bin/
cp src/xtrabackup_innodb55 /usr/local/bin/#在使用innobackupex备份的过程提示找不到xtrabackup_55需要把xtrabackup_innodb55重命名一下或者复制一份。提示错误“xtrabackup_55: command not found”
cp /usr/local/bin/xtrabackup_innodb55 /usr/local/bin/xtrabackup_55 5、innobackupex的参数选项 这里只简单一些常用的命令选项 --help 查询所有的命令选项能够快速地了解选项的功能。
--user 数据库帐号
--password 数据库帐号密码
--host 备份数据库的IP或者主机名TCP/IP连接--default-files 指定配置文件(必须作为第一个参数选项)
--no-timestamp 备份文件时不会创建一个时间点名字目录直接存放到指定的目录中如2013-03-25_00-00-09。--apply-log 备份后的文件不能只用用来恢复数据并不完整里面有未完成提交或者回滚的的事物。使用该选项可以撤销undone未提交的事务或者重放replay事务日志。--use-memory 默认值100M通过使用更大的内存加速preparing的过程。
--copy-back 把备份数据复制到数据目录。数据目录最好为一个空目录且有mysql用户的读写权限。--compact 不备份二级索引数据页。 6、备份操作过程 按照备份原理中步骤操作分别如下。 1)backup,创建数据备份 innobackupex --defaults-file/etc/my_9306.cnf --userroot --passwordextension123 --host127.0.0.1 --port9306 /opt/xtrabackup/ 2)preparingundo撤销未提交的事务重放redo log innobackupex --defaults-file/etc/my_9306.cnf --userroot --passwordextension123 --host127.0.0.1 --port9306 --apply-log /opt/xtrabackup/2014-03-05_10-09-06 7、搭建复制从服务器 1关闭从服务器上的mysqld进程。把上面创建的一致性备份复制到从服务器上的并mysql的数据目录比如data和日志目录默认在data目录中备份。把这两个目录清空mysql用户对这两个目录有写权限。 2把备份目录中的所有文件复制到数据目录中也可以在从上安装Xtrabackup使用–copy-back选项把数据复制回数据目录。 3启动mysqld注意mysql的错误日志的输出信息。 4现在就可以开始启动从服务器上的复制功能主从的复制的功能就不多说了。mysql主上的备份时bin-log信息保存xtrabackup_binlog_info文件中这个文件在备份目录下面。 cat xtrabackup_binlog_info
mysql-bin.000023 109899810 5设置同步点 CHANGE MASTER TO MASTER_HOST192.168.1.10, MASTER_USERreplication, MASTER_PASSWORDreplication, MASTER_PORT9306, MASTER_LOG_FILEmysql-bin.000023, MASTER_LOG_POS109899810; 注意查看IO线程和SQL线程的状态。 总结 Xtrabackup第一次用于生产上备份120G的数据备份时间不到两个小时。备份过程中服务器的负载没有明显的上升。备份的数据包括索引数据比原始的数据略大一点当把备份数据库复制到其他的服务器上或者异地机房时需要很长的网络传输时间或者很大的网络带宽资源。如果有专用的备份服务器对于一些大表可以删除索引或者备份的过程中不备份索引数据。innobackupex使用–conpact选项就可以不备份二级索引数据。另外可以通过innodb fast index creation来快速创建二级索引。对于大数据库的备份Percona Extrabackup是最佳的选择。高数据一致、快速备份与恢复值得拥有。转载于:https://www.cnblogs.com/wajika/p/6242055.html