我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql数据库备份

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql数据库备份

数据库备份

1 冷备(cp)

2  LVM快照备份

 lvcreate  -s  -n  rhel6node1  -L  2G  /dev/vg_kvm/rhel6base

3 热备

mysqldump   -hserip   -u用户名  -p密码   数据库名  > 目录名/xxx.sql

数据库名的表示方式

--all-databases     备份服务器上的所有数据

数据库名                 备份一个库的所有数据

数据库名  表名        备份一个表的所有数据

-B  数据库名1   数据库名2   备份几个库的所有数据

完整恢复

mysql    -hlocalhost    -uroot  -p123   [数据库名]   <  xxx.sql

4 增量备份  

1 binlog日志加脚本实现增量备份

 

 

1 使用mysql自带binlog日志功能实现对数据的增量备份

2 安装第3方软件提供增量备份工具对数据做增量备份

------------------------------------------------------------------

使用binlog日志增量备份/增量恢复

 

binlog日志的使用

mysql服务有4种日志文件:错误日志、查询日志、慢查询日志

、binlog日志    

 

binlog日志 (二进制日志)

         记录客户端连接自己之后,执行的除查询之外的sql命令。

         默认没开启binlog日志

service  mysql stop

vim /etc/my.cnf

[mysqld]

Log-bin=/logdir/plj

:wq

mkdir   /logdir

chown   mysql  /logdir

service  mysql  start

 

cd  /var/lib/mysql/

www-bin.000001   binlog日志文件

                 500M+

www-bin.000002

www-bin.index       日志的索引文件

  

查看binlog日志文件内容

mysqlbinlog      binlog日志文件名

 

手动生成新binlog日志文件方式?

mysql> flush logs;

mysql -hlocalhost -uroot -p123 -e "flush logs"

 

service  mysql  restart

 

binlog记录SQL命令的方式?

1 字符偏移量

2 时间点

 

mysqlbinlog    【选项】   binlog日志文件名

时间点

--start-datetime="2015-12-16 14:20:30"                自己去库里找时间

--stop-datetime="2015-12-16  17:20:30"                 自己去库里找时间

 

字符偏移量

--start-position=数字                                  自己去库里找偏移量

--stop-position=数字                                   自己去库里找偏移量

 

mysqlbinlog   --start-position=385   --stop-position=1134  plj.000010   |  mysql -hlocalhost  -uroot  -p123   【数据库名】

 

vim /shell/newlogfilebak.sh

#!/bin/bash

if  [   ! -e  /logbak  ];then

     mkdir   /logbak

fi

mysql -hlocalhost -uroot -p123  -e  "flush logs" &> /dev/null

cd  /logdir

for  file  in  `sed '$d'  plj.index`

do

      name=`echo $file | awk -F "/" '{print $3}'`

      if [ ! -e /logbak/$name ];then

        cp  $name  /logbak/

      fi

done

:wq

 

00  18   *  *   1   /shell/bakadb.sh  &> /dev/null

00   19  *  *  2-7   /shell/newfillogbak.sh

2 三方插件xtrabackup增量备份

yum -y install perl-Time-HiRes   perl-DBD-MySQL

rpm  -ivh    percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm

增量备份/增量恢复命令  xtrabackup_56

备份过程中不锁库表

 

备份时只备份表记录,不备份表结构。

 

使用xtrabackup_56增量备份时,必须有一次完整备份,这样再备份时,才能知道哪些数据是新产生的。

 

xtrabackup:C程序,支持InnoDB/XtraDB

 

xtrabackup_56  <选项>

选项

--backup                    备份数据

--prepare   准备恢复数据                  

--target-dir=目录名                   备份目录

--datadir=数据库目录                 备份的源文件

--incremental-basedir=目录名   增量备份时,指定上一次备份文件存储的目录

--incremental-dir=目录名   准备恢复数据时,指定使用那个备份目录下的数据做恢复

 

1001    5

xtrabackup_56   --backup   --datadir=/var/lib/mysql   --target-dir=/onedir

 

2002   7

xtrabackup_56   --backup   --datadir=/var/lib/mysql  --target-dir=/new1   --incremental-basedir=/onedir

 

3003   10

xtrabackup_56   --backup   --datadir=/var/lib/mysql  --target-dir=/new2  --incremental-basedir=/new1

 

mysql > delete from  testdb.a;

               drop table  testdb.a;

增量恢复

1 、准备恢复数据

xtrabackup_56  --prepare  --datadir=/var/lib/mysql   --target-dir=/onedir

 

xtrabackup_56  --prepare  --datadir=/var/lib/mysql   --target-dir=/onedir    --incremental-dir=/new1

 

xtrabackup_56  --prepare  --datadir=/var/lib/mysql   --target-dir=/onedir    --incremental-dir=/new2

 

2、被备份文件拷贝回数据库目录下对应的位置

cp  /onedir/testdb/a.ibd  /var/lib/mysql/testdb/

3、重启数据库服务器  service  mysql restart

 

xtrabackup工作过程

lsn   日志序列号

 

 

/var/lib/mysql/

ibdata1

ib_logfile0

ib_logfile1

 

ibdata1

ibdata1.delta

ibdata1.meta

 

xtrabackup_checkpoints  

xtrabackup_logfile

 

a.ibd

a.ibd.delta    a.ibd.meta


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql数据库备份

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL 备份数据库

原文:https://www.cnblogs.com/better-farther-world2099/articles/10276087.htmlMySQL 备份数据库原文地址:https://www.cnblogs.com/guxingy/p/134341
MySQL 备份数据库
2021-07-21

python备份mysql数据库

原本可以用shell完成的功能,现在学习python,就照抄照改。完成数据库备份。 #!/usr/bin/python#-*-coding:utf-8-*-#MYSQL BACKimport string,time,os,datetimei
2023-01-31

mysql数据库怎么备份数据库

mysql 数据库备份有两种方式:物理备份(复制文件)和逻辑备份(导出 sql 语句)。物理备份可以通过 mysqldump 或 innobackupex 工具实现,而逻辑备份可以使用 mysqldump 或第三方工具。恢复备份可通过复制或
mysql数据库怎么备份数据库
2024-08-13

《MySQL数据库》MySQL备份恢复

前言MySQL数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲MySQL是如何保障数据完整,应对特殊情况,如何恢复等。备份备份检查:保证备份没有问题,并且定期演练恢复数据。备
《MySQL数据库》MySQL备份恢复
2016-12-27

MySQL数据库备份策略

MySQL数据库备份策略是确保数据安全性和业务连续性的关键。以下是一些常见的备份策略及其优缺点:备份类型完全备份:备份整个数据库,恢复时简单快捷,但备份耗时较长,占用空间大。增量备份:在上次备份基础上,只备份变化的数据,备份速度快,恢复
MySQL数据库备份策略
2024-10-20

mysql数据库怎么备份数据

有多种方法可以备份MySQL数据库中的数据,以下是其中一种简单的方法:使用命令行工具进行备份:在命令行中输入以下命令,使用“mysqldump”工具来备份数据库:mysqldump -u username -p dbname > back
mysql数据库怎么备份数据
2024-05-21

MySQL 数据库自动备份

MySQL 数据库自动备份MySQL 数据库自动备份MySQL 备份命令mysqldump 介绍数据备份数据恢复gzip 介绍MySQL 备份脚本Linux 定时任务-crontabMySQL 备份命令手抖、写错条件、写错表名、错连生产库造成的误删库表和数据总
MySQL 数据库自动备份
2021-04-06

编程热搜

目录