热门标签 | 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清理系统垃圾方法介绍



推荐阅读
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了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方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了解决Facebook脸书面试题中插入区间的方法,通过模拟遍历的方式判断当前元素与要插入元素的关系,找到插入点并将新区间插入。同时对算法的时间复杂度和空间复杂度进行了分析。 ... [详细]
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社区 版权所有