MySQL 备份数据那点事

mysqldump

什么是 mysqldump ?

mysqldump 是 MySQL 用于执行逻辑备份的一款工具,可以根据原始数据库对象以及表的定义和数据来生成一系列可以被执行的 SQL 语句。
通常我们用它作为备份或者迁移数据。 mysqldump 命令还可以输出成 CSV 文件,其他边界的文本或者 XML 格式。

如何使用 mysqldump?

导出整个数据库(包含数据)

mysqldump -u username -p dbname > dbname.sql   

导出数据库结构

mysqldump -u username -p -d dbname > dbname.sql

导出数据库中的某张表

mysqldump -u username -p dbname tablename > tablename.sql

导出数据库中的某张表结构

mysqldump -u username -p -d dbname tablename > tablename.sql

导入数据

mysql -u username -p dbname < dbname.sql

也可以在 msyql CLI 中导入:
source /home/dbname.sql

mysqldump 的常见参数:

--single-transaction:
当设置此参数时,会将事务隔离模式设置为 REPEATABLE_READ 并在导出数据前,发送一个 START_TRANSACTION SQL语句到 MySQL Server 上。
此参数仅仅对事务表(如 InnoDB)有作用,因为在导出数据时,除了保证数据一致性的状态还能同时保证其他应用在开启事务是不会被阻塞。

需要注意的是,该参数只能保证 InnoDB 表导出数据时的一致性状态。对于MyISAM或者MEMORY的表在导出时,状态可能会发生改变。

当使用此次参数 mysqldump 正在导出数据时,为了确保得到有效的结果(正确的表内容和二进制坐标),要保证其他的连接使用 ALTER_TABLE, CREATE_TABLE, DROP_TABLE, RENAME_TABLE, TRUNCATE_TABLE 等操作。因为一致性的读不会隔离这些操作,所以当一个表被导出时会导致 mysqldump 使用 SELECT 操作会检索到不正确或者发生错误。

--single-transaction--lock-tables 是互斥的,如果指定 LOCK_TABLES 会导致对正在转储的数据进行锁定,仅允许读操作,直到所有的表被导出。

--quick:
该参数对转储大表时很有用.它会强制 mysqldump 一次从服务器中检索表中的一行,而不是检索整个行集并将其缓冲在内存中,然后再将其写出。

--flush-logs:
该参数的作用就是关闭当前使用的 binlog,然后创建一个新的 binlog 文件用于记录。

定期全量备份 MySQL

创建定期备份脚本

mkdir /home/mysql_backup
touch /home/mysql_backup/backup.log
touch /home/mysql_backup/MySQL_Full_Backup.sh
chomd 744 MySQL_Full_Backup.sh

MySQL_Full_Backup.sh 内容

#!/bin/bash
# use mysqldump to Fully backup mysql data per day!

# Path
BakDir=/home/mysql_backup
LogFile=/home/mysql_backup/backup.log

# get time
Date=`date +%Y%m%d_cmi`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`

# enter backup dir
cd $BakDir

# delete previous log files
deleted_log_file_name=$(ls *.sql.tgz)
/bin/rm $deleted_log_file_name

# set output filename
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz

# Back up and compress files
/usr/bin/mysqldump --single-transaction -ucisco -pCiscoPass1!  cmi > $DumpFile
/bin/tar -zvcf $GZDumpFile $DumpFile
/bin/rm $DumpFile

# record log
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile

每天 24 点执行

crontab -e
59 23 * * * /bin/sh /home/mysql_backup/MySQL_Full_Backup.sh
# 打开服务
systemctl restart crontab
systemctl enable crontab

参考

全量+增量备份

MySQL 备份的几种方式

原文地址:https://www.cnblogs.com/michael9/p/11856488.html

时间: 2024-08-02 05:35:51

MySQL 备份数据那点事的相关文章

定期从Docker上部署的MySQL备份数据

前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依赖的MySQL数据库迁移到Docker上,又另外写了一个脚本定时将Docker上部署的MySQL数据库备份出来,而且我们的脚本不单单可以指定要备份的数据库,还要将备份出来的SQL文件打包成压缩文件,并以一定的规范来命名,比如:test_2019-10-11-17.zip,test是前缀,2019-1

mysql 备份数据迁移,出错的处理

项目历史遗留/usr/lib/mysql 下所有数据文件,之前用Debian 下的mysql5.1 的MyISAM引擎,现在机器是ubuntu,只有mysql5.5,mysql5.6 默认InnoDB引擎,恢复的过程. 1.Ubuntu上安装mysql5.5,把/usr/lib/mysql 下所有数据文件拷贝到Ubuntu系统中相应目录,并设置文件权限和owner. 启动 sudo service mysql start 报错,/var/log/mysql/error.log 各种文件写.创建错

mysql 备份数据语句

rem ******MySQL backup start********@echo offforfiles /p "D:\website\备份\数据库日常备份" /m backup_*.sql -d -30 /c "cmd /c del /f @path"set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%""C:\Program Fil

mysql检查备份数据脚本并在zabbix上告警

知识点:1.zabbix自定义设置触发报警 2.zabbix_sender用法 3.zabbix采集器的用法 介绍zabbix_sender用法:zabbix获取key值有超时时间,如果自定义的key脚本一般需要执行很长时间,这根本没法去做监控,那怎么办呢?这时候就需要使用zabbix监控类型zabbix trapper,配合zabbix_sender给它传递数据.所以说zabbix_sender是更新items值最快的方式 zabbix采集器是zabbix监控上的一种模式,是其对服务器数据采集

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

Centos 6.4下MySQL 备份及还原详情

我们前面文中中介绍了centos 6.4下MySQL的安装及配置,安装后为了保证数据的安全性所以我们同样也要学会备份及还原,备份及还原操作在我们的真实工作环境中是必不可少的,由于是对数据库数据备份,所以今天我们就随之介绍一下,Centos 6.4下的MySQL的备份及还原操作.我们这两篇文章的介绍都是为了下面的Mysql 主从配置做铺垫,所以环境跟上一篇的文章是一样的,此次环境中还是上一篇文章中安装的那两台Cnetos .6.4+MySQL服务器,今天主要介绍是准备将192.168.6.28上的

Linux(Centos)全自动异地备份数据(WEB+Mysql)

文章开始之前,先问下各位站长一个问题:什么东西对于站长是十分重要的?其实对于站长而言,很多东西都是很重要的.但我们现在排除外在因素,把范围缩小到网站系统本身,哪些是非常重要的呢?网站数据就是其中之一了. 网站数据包括程序文件本身.网站运行过程中不断产生的附件数据(图片.文档.视频等)以及数据库文件,三大块总括为网站数据. 以 自己为例,在这两年多的站长经历来看,最让我痛苦的就是某一天起床,一直苦心经营的网站打不开了,检查过DNS也正常,最后询问空间运营商发生什么事了, 获知的结果系:服务器硬盘损

Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳理Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录 废话不多说,下面即是使用lvm-snapshot快照方式备份mysql的操作记录,仅依据本人实验中使用而述. 操作记录:如下环

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景.以高性能和使用便利为目一 的功能特异化的数据库产品 Nosql特点: Noosql数据库存储不需要固定的表结构 1 他不是否定关系数据库,而是作为关系数据库的一个重要补充 2 Nosql为了高性能高并发而产生的 3 Nosql典型产品memcache(纯内存) 一重启就丢数据 redis(持久化缓存)  持久化缓存 mongodb 二  非关系型数据库种类: 1 键值存储数据库 2 列存储数据库 3 面向文