MySQL备份和恢复具体实施

对于InnoDB存储引擎的冷备非常简单,只需要备份MySQL数据库的frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志文件。

mysql备份类别,参考笔者上篇文章mysql备份类别

冷备:

对于InnoDB存储引擎的冷备非常简单,只需要备份MySQL数据库的frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志文件。–建议定期备份MySQL数据库的配置文件my.cnf

冷备的优点:

a)        备份简单,只要拷贝相关文件

b)        备份文件易于在不同操作系统,不同MySQL版本进行恢复

c)        恢复相当简单,只需要把文件恢复到指定位置即可

d)        恢复速度快,不需要执行任何SQL语句,也不需要重建索引

冷备的缺点:

a)        InnoDB存储引擎冷备的文件通常比逻辑文件大很多,因为表空间中存放着数据,如Undo段,插入缓冲等信息

b)        冷备不总是可以轻易地跨平台。操作系统、MySQL的版本、文件大小写敏感和浮点数格式都会成为问题

逻辑备份:
mysqldump备份工具
mysqldump的语法如下:

shell>mysqldump [argument] > file_name

 

备份全部数据库,使用–all-database选项:

shell>mysqldump –all-databases > all.sql

 

备份指定的数据库,–database:

shell> mysqldump–database db1 db2 db3 > dump.sql

 

mysqldump一些重要参数选项:

–single-transaction:在备份开始前,先执行STARTTRANSACTION命令,以此来获得备份的一致性

–lock-tables(-l):在备份中,以此锁住每个架构下的所有表。一般用于MyISAM存储引擎,备份时只能对数据库进行读取操作,不过备份依然可以保证一致性。对于InnoDB不需要使用该参数,用–single-transaction即可,并且–lock-tables和–single-transaction是互斥的,不能同时使用。如果你的MySQL数据库中既有MyISAM存储引擎表,又有InnoDB存储引擎表,那么这时你的选择只有–lock-tables了。–lock-tables选项是依次对每个架构中的表上锁的,,因此只能保证每个架构下表备份的一致性,不能保证所有架构下表的一致性。

–lock-all-tables(-x):在备份过程中,对所有架构中的所有表上锁

–add-drop-database:在createdatabase之前先运行drop database。这个参数需要和–all-databases或者–database选项一起使用

备份指定的表:

# mysqldump–single-transaction –socket=/var/run/mysqld/mysql5.socket test1 test1 >test1.sql

# cattest1.sql

— MySQL dump 10.13 Distrib 5.1.61, for RedHat-linux-gnu (i386)

— Host: localhost    Database: test1

— ——————————————————

— Server version      5.5.20-ndb-7.2.5-log

 

/*!40101 SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*/;

/*!40101 SET NAMES utf8 */;

/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;

/*!40103 SET TIME_ZONE=’+00:00′ */;

ViiTor实时翻译 ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116 查看详情 ViiTor实时翻译

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0 */;

/*!40014 SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ */;

/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES,SQL_NOTES=0 */;

 

— Table structure for table `test1`

 

DROP TABLE IF EXISTS `test1`;

/*!40101 SET @saved_cs_client    = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `test1` (

  `id`int(11) NOT NULL,

  `name`varchar(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*!40101 SET character_set_client = @saved_cs_client*/;

 

— Dumping data for table `test1`

 

LOCK TABLES `test1` WRITE;

/*!40000 ALTER TABLE `test1` DISABLE KEYS */;

INSERT INTO `test1` VALUES(1,’wu’),(2,’terry’),(3,’tang’),(4,’jack’),(4,’cat’),(3,NULL),(3,’dog’);

/*!40000 ALTER TABLE `test1` ENABLE KEYS */;

UNLOCK TABLES;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

 

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;

/*!40101 SETCHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SETCOLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

 

— Dump completed on 2012-11-10  1:39:53

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/565377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 03:06:46
下一篇 2025年11月10日 03:17:03

相关推荐

  • PHP命令怎么执行数据库备份_PHP命令行MySQL备份与恢复

    使用PHP通过exec等函数调用mysqldump和mysql命令实现数据库备份恢复,需注意密码安全、文件权限及路径正确性,并可结合cron与gzip实现自动压缩备份。 在PHP项目中,直接通过命令行执行MySQL数据库的备份与恢复是一种高效且常用的方式。虽然PHP本身不提供数据库备份功能,但可以通…

    2025年12月12日
    000
  • php如何实现数据备份?php自动备份mysql的脚本

    在php项目中实现mysql数据库自动备份需先确认环境和权限,再通过mysqldump导出数据,接着设置定时任务,最后清理旧备份。1. 确认服务器安装php和mysql,并确保php有执行shell命令权限;2. 使用mysqldump命令导出数据库,通过php拼接命令并执行,建议使用.my.cnf…

    2025年12月10日
    000
  • 如何在mysql中定期清理过期备份文件

    通过Shell脚本结合cron定时任务实现MySQL过期备份文件自动清理,首先统一备份命名格式(如backup_20250405.sql)并存放在指定目录(/data/backup/mysql),然后编写脚本使用find命令删除7天前的.sql文件,配置每日凌晨2点执行的cron任务,并加入日志记录…

    2025年12月6日 数据库
    000
  • mysql如何备份存储过程和函数

    最直接且推荐的方式是使用mysqldump工具并添加–routines参数,可完整导出存储过程和函数;若需跨版本迁移,应结合–triggers、处理DEFINER用户、验证SQL_MODE,并在测试环境充分验证恢复与兼容性。 MySQL备份存储过程和函数,最直接且推荐的方式是…

    2025年12月6日 数据库
    000
  • MySQL如何设置自动备份 MySQL定时自动备份的配置与恢复测试

    mysql自动备份的配置与恢复测试方案是通过linux的crontab结合mysqldump命令实现定时备份,具体步骤如下:1. 编写备份脚本backup_mysql.sh,设置数据库连接信息、备份路径,并使用mysqldump配合gzip压缩导出数据,同时用find命令删除7天前的旧备份;2. 为…

    2025年12月2日
    000
  • MySQL开源备份工具Xtrabackup备份部署

    Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好   xtrabackup是一个对innodb做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具innodb hotback…

    数据库 2025年12月2日
    000
  • Mydumper:MySQL多线程逻辑备份与恢复

    MySQL多线程逻辑备份 Mydumper简介 mydumper是一个多线程的mysql逻辑备份工具. 逻辑备份速度非常快(跟mysqldump相比) myisam MySQL多线程逻辑备份 Mydumper简介 mydumper是一个多线程的mysql逻辑备份工具. Mydumper安装# yum…

    2025年12月2日 数据库
    100
  • MySQL数据库备份之复制

    MySQL数据库备份之复制目录:1.MySQL复制简介2.MySQL复制的优势与思路3.数据复制环境之主服务器设置4.数据复制环境之从服务器设置5.创建复制帐号6.获取主服务器二 3.数据复制环境之主服务器设置 在实际的生产环境中,可能在我们还没有部署数据复制前,数据库中就已经存在大量数据,所以,这…

    2025年12月2日
    000
  • 企业之Mysql备份恢复

    为什么要备份:备份的几个重要理由:灾难恢复、需求改变、审计、测试等;如测试定期用最新的生产环境中的数据更新到测试环境服务器需要考虑的问题:1、在不导致严 7、对于安全性要考虑周全,如果有人能接触到生产服务器,他是否能访问备份服务器 使用Mysqldump备份工具实现完全备份,并结合二进制日志实现增量…

    2025年12月2日
    000
  • 如何在mysql中备份多库数据

    使用mysqldump可高效备份多个MySQL数据库,通过–databases参数指定多个库或–all-databases备份全部,结合–no-data或–no-create-info控制导出内容,并建议添加时间戳避免文件覆盖,确保数据安全。 在 My…

    2025年12月2日 数据库
    000
  • mysql备份文件损坏怎么恢复_mysql备份文件损坏后如何尝试恢复数据

    恢复难度取决于损坏程度和备份方式。首先确认文件类型与损坏位置,通过file、head命令检查,并测试导入以定位问题;若为部分损坏的SQL备份,可拆分文件、提取有效INSERT语句或逐行导入抢救数据;对于物理备份损坏,尝试innodb_force_recovery启动、Percona工具恢复或在新实例…

    2025年12月2日 数据库
    000
  • mysql备份文件如何加密_mysql备份加密操作方法

    答案:MySQL备份加密可通过GPG、OpenSSL、自动化脚本及云服务实现。先用mysqldump导出数据,再用gpg或openssl对文件加密,或通过管道即时加密;生产环境可结合Shell脚本自动备份并删除明文;云数据库可启用KMS驱动的TDE实现自动加密,确保备份安全。 MySQL备份文件加密…

    2025年12月2日 数据库
    000
  • mysql数据怎么备份_mysql数据库备份与恢复操作指南

    使用mysqldump可进行逻辑备份,支持单库、全库、仅结构备份及压缩备份;2. 恢复时通过source命令导入SQL文件,压缩文件需先解压或直接解压导入;3. 可结合定时任务实现自动备份与旧文件清理,定期验证备份完整性以确保数据安全。 MySQL数据库的备份与恢复是保障数据安全的核心操作。一旦出现…

    2025年12月2日 数据库
    000
  • mysql备份时如何保证数据一致性_mysql备份数据一致性方法

    使用InnoDB事务一致性读,通过START TRANSACTION WITH CONSISTENT SNAPSHOT确保数据逻辑一致;2. 用mysqldump –single-transaction实现无锁备份,适用于大并发InnoDB环境;3. 对MyISAM等非事务表采用&#82…

    2025年12月2日 数据库
    000
  • mysql备份和恢复对性能的影响_mysql备份恢复性能优化

    合理设计备份恢复策略可降低对MySQL性能的影响。备份时IO、CPU、锁表和内存竞争会增加系统负载;恢复时事务日志重放、磁盘写入、索引重建及并发冲突构成瓶颈。优化措施包括:使用XtraBackup热备、限速备份、错峰执行、增量备份、并行压缩;恢复时预分配空间、临时关闭关键参数、分阶段导入、SSD存储…

    2025年12月2日 数据库
    000
  • mysql备份时如何避免数据丢失_mysql备份数据安全方法

    使用一致性备份、定期验证、启用binlog和多副本异地存储可有效防止MySQL数据丢失。通过XtraBackup或mysqldump加事务参数确保备份一致性,定期在测试环境恢复验证数据完整性,开启二进制日志实现全量+增量的点对点恢复,并将至少三份数据存于两种介质且一份异地,结合自动化监控与加密传输,…

    2025年12月2日 数据库
    000
  • mysql备份恢复性能优化_mysql备份恢复性能优化方法

    选择合适备份工具并优化策略可显著提升MySQL备份恢复性能:优先使用Percona XtraBackup进行在线热备,结合全量与增量备份降低负载,通过多线程工具压缩、调整InnoDB参数加快恢复速度,利用SSD和独立存储避免I/O争抢,恢复后及时验证数据一致性。 MySQL备份与恢复的性能直接影响数…

    2025年12月2日 数据库
    000
  • MySQL逻辑备份恢复方法简单总结

    一、Mysql逻辑备份 1. 使用mysqldump命令生成INSERT语句备份 此方法类似于Oracle的expdp\exp工具 语法如下: mysqldump [argum 一、mysql逻辑备份   1. 使用mysqldump命令生成insert语句备份 此方法类似于oracle的expdp…

    数据库 2025年12月2日
    000
  • MySQL 备份与还原详解

    mysqldump 逻辑备份工具,支持所有引擎,MyISAM引擎是温备,InnoDB引擎是热备,备份速度中速,还原速度非常非常慢,但是在实现还 大纲 一、MySQL备份类型 二、MySQL备份都备份什么? 三、MySQL备份工具 四、MySQL备份策略 五、备份准备工作 六、备份策略具体演示 注:系…

    2025年12月2日 数据库
    000
  • MySQL备份还原参数详解

    #Windows下mysql备份还原,可不用修改my.ini来还原视图(已验证)mysqldump -uroot -p123 –default-character-set=gbk –opt –ex #windows下mysql备份还原,可不用修改my.ini来还原…

    数据库 2025年12月2日
    000

发表回复

登录后才能评论
关注微信