设为首页 加入收藏

TOP

MySQL/MariaDB的备份与恢复(四)
2015-11-21 01:51:23 来源: 作者: 【 】 浏览:2
Tags:MySQL/MariaDB 备份 恢复
top-position=1183 mysql-bin.000005 > /tmp/a.sql;
2、复制备份数据至数据目录,修改权限
[root@CentOS-6 mysql]# cp -a /backup/lvmbackup/* ./
[root@CentOS-6 mysql]# chown -R mysql:mysql ./*
3、启动服务,导入数据
[root@CentOS-6 mysql]# service mysqld start
Starting MySQL.??????????????????????????????????????????? [? OK? ]
[root@CentOS-6 mysql]# mysql
Xtrabackup备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,是一个开源的工具,能够对innodb和xtradb数据库进行热备和增量备份,对于MyISAM,仅支持到温备,对MyISAM使用增量备份时,其实是完全备份。Xtrabackup使用简单,功能强大。Xtrabackup具备的特点:(1)备份过程快速、可靠;(2)备份过程不会打断正在执行的事务;(3)能够基于压缩等功能节约磁盘空间和流量;(4)自动实现备份检验;(5)还原速度快;
可从官网上 下载到最新版本(http://www.percona.com/software/percona-xtrabackup/ ),直接下载对应的rpm包即可。下载到本地之后使用yum安装(yum install xxx.rmp),会自动解决依赖关系。
完全备份
1、首先创建一个专门用于备份用户(最小权限)
MariaDB [hellodb]> create user 'bkpuser'@'localhost' identified by 'bkpuser';
Query OK, 0 rows affected (0.00 sec)
?
MariaDB [hellodb]> grant reload,lock tables,replication client on *.* to 'bkpuser'@localhost;
Query OK, 0 rows affected (0.00 sec)
?
MariaDB [hellodb]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、备份数据,--no-timestamp选项来阻止命令自动创建一个以时间命名的目录,此时需要自行命名目录。/back/whole.back即为备份的存放路径。
[root@CentOS-6 ~]# innobackupex --user=bkpuser --password=bkpuser --no-timestamp /backup/whole.back
.......
150728 21:01:15? innobackupex: Connection to database server closed
150728 21:01:15? innobackupex: completed OK!
在使用innobakupex备份时,其会调用xtrabackup来实现备份,备份还包括触发器和 数据库配置信息相关的文件。

?

下面是备份的存放目录。
[root@CentOS-6 whole.back]# ll
total 178216
-rw-r--r--. 1 root root????? 358 Jul 28 21:19 backup-my.cnf
drwxr-x---. 2 root root???? 4096 Jul 28 21:45 hellodb
-rw-r-----. 1 root root 79691776 Jul 28 21:45 ibdata1
-rw-r--r--. 1 root root 50331648 Jul 28 21:45 ib_logfile0
-rw-r--r--. 1 root root 50331648 Jul 28 21:45 ib_logfile1
drwx------. 2 root root???? 4096 Jul 28 21:45 mysql
drwxr-xr-x. 2 root root???? 4096 Jul 28 21:19 performance_schema
drwxr-x---. 2 root root???? 4096 Jul 28 21:45 sakila
drwxr-xr-x. 2 root root???? 4096 Jul 28 21:19 test
-rw-r--r--. 1 root root?????? 33 Jul 28 21:38 xtrabackup_binlog_info
-rw-r--r--. 1 root root?????? 45 Jul 28 21:45 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 root root?????? 91 Jul 28 21:45 xtrabackup_checkpoints
-rw-r--r--. 1 root root????? 662 Jul 28 21:38 xtrabackup_info
-rw-r-----. 1 root root? 2097152 Jul 28 21:28 xtrabackup_logfile
xtrabackup_checkpoints?? #备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)
????????????????????????????????????????? #和LSN(日志序列号)范围信息;
xtrabackup_binlog_info??? #mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日
????????????????????????????????????????? #志事件的位置。
backup-my.cnf????????????????? # 备份命令用到的配置选项信息
xtrabackup-info??????????????? #mysql服务器的属性设定信息
xtrabackup_logfile??????????? #xtrabackup的日志文件
恢复
在备份完成后,数据还不能直接用于恢复,因为在备份的数据中可能会包含未提交的事务或已经提交但尚未同步至数据文件中的事务。通过-apply-log选项可以实现对未提交的事务进行回滚,同步已经提交的事务至数据文件,使得数据文件处于一致性状态。在这个过程中还可以使用--use-memory选项来设置其可以使用的内存大小(默认100M),以加快其速度。当看到completed OK!,说明上述的事件已经完成,数据已经可以用于恢复。
1、准备一个完全备份
[root@CentOS-6 backup]# innobackupex --apply-log /backup/whole.back/
......
150728 21:07:56? innobackupex: completed OK!
2、通过--copy-back将数据复制到数据库的数据目录下。
[root@CentOS-6 backup]# innobackupex --copy-back /backup/whole.back/
......
150728 21:09:48? innobackupex: completed OK!
3、注意属组属主的修改,不然无法启动mysql。
[root@C
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JPA缓存 下一篇在Linux中划分partition并格式化..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: