热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql管理数据并上传至云端_Mysql数据库备份

mysqldump常用于MySQL数据库逻辑备份。1、各种用法说明A.最简单的用法:mysqldump-uroot-pPassword[databasename][

mysqldump常用于MySQL数据库逻辑备份。

1、各种用法说明

A. 最简单的用法:

mysqldump -uroot -pPassword [database name] > [dump file]

上述命令将指定数据库备份到某dump文件(转储文件)中,比如:

mysqldump -uroot -p123 test > test.dump

生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。

B. --opt

如果加上--opt参数则生成的dump文件中稍有不同:

. 建表语句包含drop table if exists tableName

. insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables

C. 跨主机备份

使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:

mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb

-C指示主机间的数据传输使用数据压缩

D. 只备份表结构

mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump

将只备份表结构。--databases指示主机上要备份的数据库。如果要备份某个MySQL主机上的所有数据库可以使用--all-databases选项,如下:

mysqldump --all-databases> test.dump

E. 从备份文件恢复数据库

mysql -u username -p [database name] <[backup file name]

2、结合Linux的cron命令实现定时备份

比如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump文件为gz格式&#xff0c;那么可在/etc/crontab配置文件中加入下面代码行&#xff1a;

30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_&#96;date &#39;&#43;%m-%d-%Y&#39;&#96;.sql.gz

前面5个参数分别表示分钟、小时、日、月、年&#xff0c;星号表示任意。date &#39;&#43;%m-%d-%Y&#39;得到当前日期的MM-DD-YYYY格式。

3、一个完整的Shell脚本备份MySQL数据库示例

#vi /backup/backup.sh#!bin/bashcd /backupecho "You are in backup dir"mv backup* /oldbackupecho "Old dbs are moved to oldbackup folder"File &#61; backup-$Now.sqlmysqldump -u user -p password database-name > $Fileecho "Your database backup successfully completed"

上面脚本文件保存为backup.sh&#xff0c;并且系统中已经创建两个目录/olcbackup和/backup。每次执行backup.sh时都会先将/backup目录下所有名称为backup开头的文件移到/oldbackup目录。

为上述脚本制定执行计划如下&#xff1a;

#crontab -e30 1 * * * /backup.sh

4、mysqldump全量备份&#43;mysqlbinlog二进制日志增量备份

从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据&#xff0c;所以还需要结合mysqlbinlog二进制日志增量备份。确保my.ini或者my.cnf中包含下面的配置以启用二进制日志&#xff0c;或者mysqld ---log-bin&#xff1a;

[mysqld]log-bin&#61;mysql-bin

mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件&#xff1a;

mysqldump --single-transaction --flush-logs --master-data&#61;2 > backup.sql

这样生成的增量二进制日志文件比如为mysql-bin.000003&#xff0c;那么恢复数据时如下&#xff1a;

此外mysqlbinlog还可以指定--start-date、--stop-date、--start-position和--stop-position参数&#xff0c;用于精确恢复数据到某个时刻之前或者跳过中间某个出问题时间段恢复数据&#xff0c;直接摘录MySQL文档说明中相关内容如下&#xff1a;

5.9.3.1. 指定恢复时间对于MySQL 4.1.4&#xff0c;可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说明&#xff0c;假设在今天上午10:00(今天是2005年4月20日)&#xff0c;执行SQL语句来删除一个大表。要想恢复表和数据&#xff0c;你可以恢复前晚上的备份&#xff0c;并输入&#xff1a;mysqlbinlog --stop-date&#61;"2005-04-20 9:59:59" /var/log/mysql/bin.123456 \ | mysql -u root -pmypwd该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句&#xff0c;可能你想要恢复后面发生的活动。根据这些&#xff0c;你可以用起使日期和时间再次运行mysqlbinlog&#xff1a;mysqlbinlog --start-date&#61;"2005-04-20 10:01:00" /var/log/mysql/bin.123456 \ | mysql -u root -pmypwd \在该行中&#xff0c;从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。5.9.3.2. 指定恢复位置也可以不指定日期和时间&#xff0c;而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作用与起止日选项相同&#xff0c;不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法&#xff0c;特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号&#xff0c;可以运行mysqlbinlog寻找执行了不期望的事务的时间范围&#xff0c;但应将结果重新指向文本文件以便进行检查。操作方法为&#xff1a;mysqlbinlog --start-date&#61;"2005-04-20 9:55:00" --stop-date&#61;"2005-04-20 10:05:00" \ /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql该命令将在/tmp目录创建小的文本文件&#xff0c;将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件&#xff0c;寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作&#xff0c;应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后&#xff0c;你应从命令行输入下面内容&#xff1a;mysqlbinlog --stop-position&#61;"368312" /var/log/mysql/bin.123456 \ | mysql -u root -pmypwd mysqlbinlog --start-position&#61;"368315" /var/log/mysql/bin.123456 \ | mysql -u root -pmypwd \ 上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句&#xff0c;恢复的数据和相关MySQL日志将反应事务执行的原时间。



推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在 openSUSE Tumbleweed 系统上搭建 51 单片机开发环境并进行编程实践。首先,通过 `sudo zypper in emacs` 命令安装文本编辑器 Emacs。接着,使用 `sudo zypper in sdcc` 安装 SDCC 编译器。最后,利用 `wget` 下载 sdcflash Python 脚本,以便于单片机的烧录和调试。此外,还介绍了如何配置开发环境,确保各组件协同工作,提高开发效率。 ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
author-avatar
jnto.
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有