0

0

MySQL备份与恢复整理_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:47:08

|

1020人浏览过

|

来源于php中文网

原创

bitsCN.com 一、MySQL的逻辑备份是将数据库备份成一个文件,这样有利于查看与编辑。在MySQLk ,使用mysqldump工具来完成逻辑备份;
      1、备份指定的库,或者此库中的表;
            mysqldump [options]db_name [tables]
      2、备份指定的一个库或者多个库;
            mysqldump [options] --database DB1[DB2 DB3......]
      3、备份所有数据库;
            mysqldump [options] --all-database
举例如下;
      1、备份所有数据库:
          mysqldump -uroot -p --all-database > all.sql
      2、备份product数据库;
           mysqldump -uroot -p product > product.sql
      3、备份product数据库下的code表;
          mysqldump -uroot -p product code > code.sql
      4、备份product数据库下的code表和list表;
          mysqldump -uroot -p product code list > code_list.sql
              ......
二、完全恢复;
      1、恢复数据库;
         mysql -uroot -p dbname       2、重做备份日志;
           mysqlbinlog binlog-file | mysql -u root -p
完整举例如下;
     1、第一天,备份数据库;
          mysqldump -uroot -p -l -F product >product.sql
           -l:给所有表加读锁,-F:生成一个新的日志文件。
     2、第二天,插入一部分新数据;
     3、第三天,数据库突然挂了,数据无法访问,需要恢复备份;
          mysql -uroot -p product      4、恢复完成后得到的是第一天备份时的数据,此时需要使用mysqldump恢复自mysqldump备份后的binlog:
       mysqlbinlog localhost-bin.000012 | mysql -uroot -p product
三、基于时间点还原;
     1、如果第三天9点发生误操作,可以用如下语句从备份和binlog将数据恢复到故障前:
        mysqlbinlog --stop-date="2010-09-17 8:59:59" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
     2、跳过故障点继续恢复;
       mysqlbinlog --start-date="2010-09-17 9:01:00" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
四、基于位置恢复;
      和基于时间点的恢复相类似,但更精确,同一时间点可能有多条SQL语句同时执行,恢复的操作步骤如下;
     1、在shell下执行如下命令;
         mysqlbinlog --start-date="2010-09-17 8:55:00" --stop-date="2010-09-17 9:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
         此时在tmp下建立了小的文本文件,编辑它并找出错语句前后的位置号,例如前后号分别为:198765和198869;
      2、恢复了以前的备份文件后,接着执行如下命令;
         mysqlbinlog --stop-position="198765" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
       mysqlbinlog --start-position="198769" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
第一行:恢复到停止位置的所有事务;
第二行:将恢复从给定的起始位置直到二进制日志结束的所有事务;
**********************************************************************************************
物理备份和恢复;
物理备份比逻辑备份速度更快,物理备份分为:
    1、冷备份:停下MySQL服务,cp数据,恢复时停止MySQL,先进行操作系统级别恢复数据文件,然后重启MySQL服务,使用mysqlbinlog工具恢复自备份以来的所有binlog.
    2、热备份:对于不同的存储引擎方法也不同;
    A、MyISAM存储引擎,本质就是将要备份的表加读锁,然后再cp数据文件到备份目录。方法如下两种;
        方法1、使用mysqlhotcopy工具;
                 mysqlhotcopy工具是mysql自带的热备份工具,使用方法如下;
                  mysqlhotcopy db_name [/path/to/new_directory]
      方法2、手工锁表copy;
                 mysql>flush tables for read;
                 然后cp数据文件到备份目录下;
   B、InnoDB存储引擎;
                ibbackup工具可以热备份InnoDB存储引擎类数据库,但有一点它是收费的,此处不研究。 bitsCN.com

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

86

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

50

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

100

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

293

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

589

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

725

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

63

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

30

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

94

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Rust 教程
Rust 教程

共28课时 | 3.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号