MySQL中备份的几种方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中备份的几种方式相关的知识,希望对你有一定的参考价值。
前言:
并不是每家公司都高大上,并不是每家公司都会用一些很前沿的技术来做备份这一块,有些企业或者有些行业或者团队本身由于各方面的原因使用简单或者复杂的方式来做备份这块,这次这个文档算是对以前工作的总结,看一下各种备份方式中的优缺点
1 mysqldump
常用的备份参数
-R --events --triggers=true --single-transaction --master-data=2 |
-R(--routines): 导出存储过程以及自定义函数
--events: 导出事件
--triggers=true:导出触发器.默认开启,用--skip-triggers禁用
--single-transaction:该选项在导出数据之前提交一个BEGIN SQL 语句,BEGIN不会阻塞任何应用程序且能保证到处时数据库的一致性状态,跟--lock-tables是互斥的.因为lock tables会使任何挂起的事务隐含提交
--master-data=2: 该选项将binlog的位置和文件名追加到输出文件中,如果是1 将会输出CHANGE MASTER命令,如果为2,输出的CHANGE MASTER 命令钱添加注释信息。该选项将打开--lock-all-tables选,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间),该选项自动关闭--lock-tables选项
# /opt/app/mysql/bin/mysqldump -uroot -p -R --events --triggers=true --single-transaction --master-data=2 sakila > sakila.sql |
2 数据目录拷贝----此略
3 基于xtarbackup的备份
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm yum -y install percona-xtrabackup 安装后的软件包有 [[email protected]_03 bin]# rpm -ql percona-xtrabackup /usr/bin/innobackupex /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup /usr/share/doc/percona-xtrabackup-2.3.3 /usr/share/doc/percona-xtrabackup-2.3.3/COPYING /usr/share/man/man1/innobackupex.1.gz /usr/share/man/man1/xbcrypt.1.gz /usr/share/man/man1/xbstream.1.gz /usr/share/man/man1/xtrabackup.1.gz
|
具体用法
1 创建备份用户
mysql> grant reload,lock tables,replication client on *.* to ‘dbbak‘@‘localhost‘ identified by ‘bk2016‘ ;
mysql> flush privileges;
进行数据库全备
mkdir -pv /data/dbbak
cd /data/dbbak
使用以下参数进行全库备份
[[email protected]_03 dbbak]# innobackupex --user=dbbak --password=bk2016 /data/dbbak/ |
会在dbbak目录下生成一个以时间戳为准的目录
2016-02-03_15-48-02
在这个目录下有一个文件
[[email protected]_03 dbbak]# cat 2016-02-03_15-48-02/xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 1095181486 last_lsn = 1095181486 compact = 0 recover_binlog_info = 0 |
增量备份 创建一个库中建立一个表(建表才会导致LSN号变化)
[[email protected]_03 dbbak]# innobackupex --user=dbbak --password=bk2016 --incremental /data/dbbak/ --incremental-basedir=/data/dbbak/2016-02-03_15-48-02/
|
生成一个新目录
2016-02-03_16-01-28
对比这个checkpoint
[[email protected]_03 dbbak]# cat 2016-02-03_16-01-28/xtrabackup_checkpoints backup_type = incremental from_lsn = 1095181486 to_lsn = 1095181486 last_lsn = 1095181486 compact = 0 recover_binlog_info = 0
|
4 MySQL企业级的备份mysqlbakcup
mysqlbackup --user=dba --password --port=3306 --with-timestamp --backup-dir=/export/backups backup
5基于LVM的快照备份---略
以上是关于MySQL中备份的几种方式的主要内容,如果未能解决你的问题,请参考以下文章