db2设置数据库增量备份_使用mysqldump & xtrabackup 备份数据库的简单方法

本文介绍了如何利用mysqldump和xtrabackup工具进行数据库备份,特别是xtrabackup对InnoDB引擎的增量备份特性。详细步骤包括安装、备份、prepare、恢复等过程,并提到了恢复时需要注意的服务状态和datadir权限问题。
摘要由CSDN通过智能技术生成

d572d816efbda5d9003b0d70769e18fe.gif

数据备份是数据库的数据保护措施之一,数据备份可以使用工具轻松实现,结合定时任务也能一定程度上保证我们数据的安全。下面教你用mysqldump & xtrabackup 备份数据库的简陋方法。

mysqldump的简单用法

#备份(导出)所有数据库的数据和结构(注意:这种方式备份,还原时,无需先创建数据库,可直接导入) mysqldump -u root -p 'password' --all-databases > all.sql #备份指定数据库(db1和db2) mysqldump -u root -p 'password' ---databases db1 db2 > db1-db2.sql #恢复(导入)所有库 mysql -u root -p 'password' < all.sql #导入某个库(只导入db1这个数据库,db2不导入) mysql -u root -p 'password' db1 < db1-db2.sql

xtrabackup工具(不支持mysql5.7)

介绍,能对InnoDB引擎进行增量备份(备份是不加锁),对MyISAM引擎全量备份(备份时会锁写)

第一:安装xtrabackup

wget https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm rpm -ivh percona-release-0.1-4.noarch.rpm yum clean all yum makecache yum install percona-xtrabackup.x86_64 -y

第二:备份数据库

#指定mysql的配置文件,指定mysql的用户,指定密码,指定用于存放备份的路径(注意:前提是my.cnf文件内指定了data的存放目录) #注意:innobackupex 不支持mysql 5.1的innodb备份[root@iptables ~]# cat /etc/my.cnf[mysqld]datadir=/var/lib/mysql innobackupex --defaults-file=/etc/my.cnf --user=root --password /mnt/mysqlback

第二:prepare数据库(预备份--apply-log)

#创建完的备份之后的数据还不能马上用于还原,需要回滚未提交事务,前滚提交事务,让数据库文件保持一致性 innobackupex --defaults-file=/etc/my.cnf --user=root --password --apply-log /mnt/mysqlback/2018-05-15 #成功后会输出,成功后备份可以被用来还原数据库了 #prepare的过程,其实是读取备份文件夹中的配置文件,然后innobackupex重做已提交事务,回滚未提交事务,之后数据就被写到了备份的数据文件(innodb)中,并重建日志文件 #--user-memory 指定prepare阶段可使用的内存大小,默认为10MB,内存多则快

第三:恢复数据库

注意,还原是先关闭服务,如果服务是启动的,那么就不能还原到datadir,并且datadir 必须是为空的,因为 innobackupex --copy-back 不会覆盖已存在的文件

#innobackupex 使用 --copy-back 来还原备份(recovery) innobackupex --defaults-file=/etc/my.cnf --user=root --password --copy-back /mnt/mysqlback/2018-05-15 #innobackupex 会根据my.cnf的配置,将所有备份数据复制到my.cnf里面指定的 datadir 路径下 #如果恢复成功,则有如下提示

第四:修改datadir目的的权限,启动数据库

#默认情况下是通过root用户恢复数据,所以mysql数据文件夹目录是root权限,需要修改为数据库程序的所有者权限 chown -R mysql:mysql datadir

附:备份压缩和流

#使用流特性,需要指定--stream 选项,使用tar备份(推荐方法) innobackupex --defaults-file=/etc/my.cnf --user=root --password --stream=tar /mnt/mysqlback | gzip - > /mnt/mysqlback.tar.gz #可用参数,--parallel=4 加速备份,这个选项指定xtrabackup备份文件的线程数 #解压提取tar流文件,必须加 -i 参数,不然不可使用 tar -xizf /mnt/mysqlback.tar.gz

示例,备份mysql的boke数据库,并恢复

1:对mysql的boke库进行备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --database=boke --stream=tar /mnt/ 2>/mnt/back_data/boke.log | gizp 1>/mnt/back_data/boke.tar.gz #说明 2>/mnt/back_data/boke.log #innobackupex的输出信息,写入日志文件,便于查阅核对,备份是否成功 1>/mnt/back_data/boke.tar.gz #打包压缩存储到该文件中

2:此处可以写一个脚本备份(back.sh)

#!/bin/shecho "开始备份----"`date`LOG=boke_`date +%F-%H%M`.logSTR=boke_`date +%F-%H%M`.tar.gzinnobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --database=boke --stream=tar /mnt/back_data/ 2>/mnt/back_data/$LOG | gzip 1>/mnt/back_data/$STRecho "备份完成---"`date`

3:数据恢复

1:先停止数据库 2:解压 tar -izxvf /mnt/back_data/boke.tar.gz -C /mnt/back_data/db/ #没有db,需要mkdir /mnt/back_data/db/ 创建哦 3:恢复(确保datadir为空) innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --apply-log /mnt/back_data/db/ innobackupex --defaults-file=/etc/my.cnf --user=root --password=111222 --copy-back /mnt/back_data/db/ 4:赋权 chown -R mysql:mysql /var/lib/mysql #这个目录是my.cnf 里面指定的datadir路径 5:启动数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值