使用mysqldump & xtrabackup对数据库进行备份

数据备份是数据库的数据保护措施之一,数据备份可以使用工具轻松实现,结合定时任务也能一定程度上保证我们数据的安全。下面教你用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' #导入某个库(只导入db1这个数据库,db2不导入)
mysql -u root -p 'password' db1 

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`.log
STR=boke_`date +%F-%H%M`.tar.gz

innobackupex --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:启动数据库

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221558.html<

(0)
管理的头像管理
上一篇2025-04-15 02:21
下一篇 2025-04-15 02:22

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注