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

mysqldump增量_MySQL_使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法), 1、各种用法说明A.最简phpStudy...

使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)1、各种用法说明A.最简单的用法:mysqldump-uroot-pPassw

使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

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 [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/bash

cd /backup

echo "You are in backup dir"

mv backup* /oldbackup

echo "Old dbs are moved to oldbackup folder"

File &#61; backup-$Now.sql

mysqldump -u user -p password database-name > $File

echo "Your database backup successfully completed"

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

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

#crontab -e

30 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;

shell> mysql -uroot -pPwd

shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

此外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日志将反应事务执行的原时间。相关阅读:

超赞的动手创建Javascript框架的详细教程

HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例

jQuery遍历页面所有CheckBox查看是否被选中的方法

win10右下角的图标隐藏了怎么设置全部显示?

Javascript 操作符(~、&、|、^、<>)使用案例

常用的Javascript数据验证插件

纯CSS实现设置半个字符的样式

基于第一个PhoneGap(cordova)的应用详解

Javascript计算当月剩余天数(天数计算器)示例代码

Android 实现旋转木马的音乐效果

解决Windows 7下安装Oracle 11g相关问题的方法

C#实现两个窗体之间数值传送的方法

jquery实现input输入框实时输入触发事件代码

win10系统如何快速清理垃圾?win10清理系统垃圾方法介绍



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
倔强的石头二虎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有