当前?#24674;?  首页  >  PHP教程  >  PHP 应用  >  常见问题

MySQL数据库备份总结

一个企业的正常运行,数据的完整性是最关键的;所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法;下面是对Mysql数据库备份的三种方法总结,希望对大家

一个企业的正常运行,数据的完整性是最关键的;所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法;下面是对Mysql数据库备份的三种方法总结,希望对大家

一个企业的正常运行,数据的完整性是最关键的;所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法;下面是对Mysql数据库备份的三种方法总结,希望对大?#19968;?#26377;所帮助

备份开始前的工作环境准备:

1、创建用于保存二进制日志文件的目录

  • # mkdir /mybinlog
  • # chown mysql.mysql /mybinlog
  • 2、修改配置文件

    3、为备份数据库创建存放点

  • # mkdir /mybackup
  • # chown -R mysql.mysql /mybackup
  • 4、启动mysql服务器

  • # service mysqld start
  • 5、插入需要备份的数据库

  • 一、使用mysqldump工具完成完全备份+增量备份基于mysqldump通常就是完整备份+二进制日志来进行恢复数据

    1.1、mysqldump用来温备份,首先需要为所有库加?#20102;?并且滚动一下二进制日志,记录当前二进制文件?#24674;?/p>

    1.2、备份二进制日志

  • # cp /mybinlog/mysql-bin.000001 /mybackup/alldatabase.000001
  • 1.3、模拟数据库意外损坏,利用完全备份实现数据库的恢复

  • # rm -rf /mydata/data/*
  • # rm -rf /mybinlog/*
  • 1.4、初始化mysql并启动服务器

  • 1.5、?#22659;?#20108;进制日志,启动服务

    1.6、恢复到备份状态,导入备份的数据库文件:

  • 2、模拟往students表中添加数据,香港虚拟主机,添加完成后不小心将表?#22659;?#20102;,我们要恢复到?#22659;?#20043;前的状态,并且新加的数据还要存在

    2.1、往students表中添加数据

  • mysql> insert into students (Name,Age,Gender) values ('hadoop',22,'M');
  • 2.2、模拟一下,不小心将表?#22659;?#20102;

  • 2.3、查看一下二进制日志文件的?#24674;?/p>

    2.4、先恢复完整数据(恢复过程不要记录在日志中)

  • # mysql < /mybackup/alldatabase.sql
  • 2.5、查看?#22659;?#34920;时的记录?#24674;?/p>

    2.5、将二进制文件中完整备份到?#22659;?#34920;之前的记录导出

    2.6、将改变的数据库日志导入到mysql库中

  • 2.7、见证奇迹的时刻数据库恢复成功,并且插入的数据?#19981;?#21407;回来了

    二、select命令也能完成逻辑备份比mysqldump更节约空间,速度更快,但比mysqldump用起来要麻?#24120;?#24182;且备份出来的数据都是纯文本信息,没有额外的开销空间,适合备份某张表模拟备份一张表

    1、备份出来,保存在某个目录下,但需要注意的是,这个目录下的文件的具有权限,当登录到mysql时需要具有执行的权限

    2、恢复数据库需要创建一个空表,模仿原来的表创建

  • 把原来的表?#22659;?#20102;

  • mysql> load data infile '/tmp/tutor.txt' into table tutor;
  • 验证:

    当然用select也可以把表中符合条件的语句备份出来,香港虚拟主机,这里不再做演示了,香港虚拟主机,很简单。

    这种方法适合于某长表的备份,但不会记录到二进制日志中

    三、利用LVM快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份,进而实现数据库的备份。用lvm的快照来备份速度是非常快的,而且几乎热备,恢复也很快速,操作也简单,完整恢复后再将相应二进制恢复?#32431;傘?#21069;提:

    1、数据文件要在逻辑卷上

    2、此逻辑卷所在卷组必须有足够空间使用快照卷

    3、数据文件和事务日志要在同一个逻辑卷上

    步骤:

    1、启动事务

    2、打开会话,施加?#20102;?#38145;定所有表,此时别人是不能执行命令的(不能往数据库中插入数据)

    注意:执行表锁定?#20445;?#19968;定不要退出

    3、通过另一个终端,保存二进制日志文件及相关信息?#24674;?/p>

    4、创建快照卷

  • # lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata
  • 5、释放锁

    6、?#20197;?#24555;照卷,备份

    7、?#23545;?mnt,?#22659;?#24555;照卷

  • # umount /mnt/
  • # lvremove --force /dev/myvg/mydata-snap
  • 8、增量备份二进制日志

    首先?#22659;?#20108;进制日志文件,对我们没有太大用处

  • # rm -rf /backup/full-backup-2013-05-06/mysql-bin.* -f
  • 现在模拟数据库被格?#20132;?/p>

    格?#20132;?#20043;前先?#35759;?#36827;制日志备份出来

    恢复到了还原前的状态

    这就是逻辑卷实现的一次完全备份

    本文出自 “丽的博客” 博客,请务必保留此出处

    吐了个 "CAO" !
    扫码关注 PHP1 官方微信号
    PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
    Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有
         
    28玩法
    10号福彩开奖号码 11选5出号规律技巧 河北福彩官网首页 山西十一选五预测专家推荐号码 最新欧阳霄大乐透专栏 北京pk10谁能控制结果 博彩资讯 11选五5开奖结果青海 678娱乐城真人游戏 连码专家六肖复试网站 江苏7位数走势 3d开机号夏天开机号 快乐十分怎么看号 中国福利彩票包括什么 360天津11选5走势图表