mysql中 /*! ....*/ 不是注释,mysql为了保持兼容,它把一些特有的仅在mysql上用的语句放在/*!....*/中,

这样这些语句如果在其他数据库中是不会被执行,但在mysql中它会执行。

9.1、备份数据的意义:

9.2、备份数据库的方法:

mysql建库字符集是utf8,客户端也是utf8;

1、备份语法:

mysql数据库自带了一个很好用的备份命令,就是mysqldump;

利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出

或者生成备份的文件的过程;物理备份是把磁盘上的数据直接打包的过程;

它的语法为:mysqldump -u<用户名> -p<密码> <数据库名> >备份的文件

2、数据库备份:

mysqldump -uroot -p123456 -B lc | gzip >/tmp/lc_bak.sql.gz

# -B:表示备份时指定库进行备份,可以指定多个库进行备份; 还原时库不存在会创建,如果库存在则不创建;

#CREATE DATABASE /*!32312 IF NOT EXISTS*/ `lc` /*!40100 DEFAULT CHARACTER SET utf8 */;

#USE `lc`;

mysql dump -uroot -p123456 -A -B --events | gzip >/tmp/mysql_bak.sql.gz

#-A:表示备份所有的库;

#表示备份mysql中的所有的库,包括mysql的用户库'mysql'等mysql初始化时创建的库;

3、查看备份库的sql语句:

[root@db01 ~]# egrep -v "^$|#|\*|--" /tmp/lc_bak.sql

USE `lc`;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (3,'刘畅'),(4,'刘本德');

UNLOCK TABLES;

4、--compact参数说明:

5、分库备份脚本操作:

(1)普通的模式:

mysql -uroot -p123456 -e "show databases;" | egrep -vi "database|infor|perfor" | awk '{print "mysqldump -uroot -p123456 -B",$1}'

mysql -uroot -p123456 -e "show databases;" | egrep -vi "database|infor|perfor" | sed 's#^#mysqldump -uroot -p123456 -B #g'

mysqldump -uroot -p123456 -B lc | gzip >/tmp/lc_bak.sql.gzip

mysqldump -uroot -p123456 -B lc1 | gzip >/tmp/lc1_bak.sql.gzip

(2)for循环的模式:

for dbname in `mysql -uroot -p123456 -e "show databases;" | egrep -vi "database|infor|perfor"`; do

mysqldump -uroot -p123456 -B $dbname | gzip >/tmp/${dbname}_bak.sql.gz

done

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.#该错误可以忽略不计;

9.3、备份表(单库操作):

#不需要加-B:-B代表备份的是库,或多个库;

1、备份库中的表和表上的数据:

(1)语法:

mysqldump -u<用户名> -p<密码> <数据库名> <表名> >备份的文件名

(2)用法:

mysqldump -uroot -p123456 lc | gzip >/tmp/lc_bak.sql.gz

#表示备份lc库中所有的表和数据;

mysqldump -uroot -p123456 lc test | gzip >/tmp/lc_test_bak.sql.gz

#表示备份lc库中test表和数据,后面还可以跟表;

2、备份库中表的表结构,不包含数据:

(1)使用‘-d’参数;

(2)用法:

mysqldump -uroot -p123456 -d lc | gzip >/tmp/lc_table_all_bak.sql.gz

#表示备份lc库中所有表的表结构,不包括表上的内容;

mysqldump -uroot -p123456 -d lc test | gzip >/tmp/lc_table_test_bak.sql.gz

#表示备份lc库中test表的表结构,后面还可以跟表;

3、只备份库中表的数据:

(1)使用‘-t’参数,等价参数为--no-create-info ;经常

‘--quick --no-create-info --extended-insert’三个参数一起使用;

--quick:表示一行一行的读;

--no-create-info:表示不导出表结构;

--extended-insert:表示insert语句插入数据时放到一行进行插入;

(2)用法:

mysqldump -uroot -p123456 -t lc | gzip >/tmp/lc_data_all_bak.sql.gz

#表示备份lc库中所有表上的数据;

mysqldump -uroot -p123456 -t lc test | gzip >/tmp/lc_data_test_bal.sql.gz

#表示备份lc库中test表上的数据,后面还可以跟表;

(4)总结:

一般使用备份表时使用的是备份库中的表和表上的数据一起备份,最好再做个库的整备,

这样在还原库的时候可以放置备份表的数据杂碎,也能根据需要还原特定的表上的数据;

9.4、备份表(多库的操作):

#需要加-B:-B代表备份的是库,或多个库;

1、备份多库的表结构:

mysqldump -uroot -p123456 -d -B lc | gzip >/tmp/lc_table_all.sql.gz

#表示备份lc库的表结构,后面还可以跟其它的库;

mysqldump -uroot -p123456 -d -A -B --events | gzip >/tmp/mysql_table_all.sql.gz

#表示备份mysql所有的库的表结构;

2、备份多库的表数据:

mysqldump -uroot -p123456 -t -B lc | gzip >/tmp/lc_data_all.sql.gz

#表示备份lc库的所有表上的数据,后面还可以跟其它的库;

mysqldump -uroot -p123456 -t -A -B --events | gzip >/tmp/mysql_table_all.sql.gz

#表示备份mysql所有的库的表上的数据;

9.5、备份库和表时刷新(切割)mysql的binlog参数:

1、备份数据库时刷新binlog:

(1)-F 参数:

mysqldump -uroot -p123456 -B -F lc | gzip >/tmp/lc_bak.sql.gz

#-F 自动分割binlog,自己需要确定binlog的位置;

(2)--master-data=1 参数:

mysqldump -uroot -p123456 -F --master-data=1 -B lc | gzip >/tmp/lc_bak.sql.gz

gzip -d /tmp/lc_bak.sql.gz

vim /tmp/lc_bak.sql #在备份的sql文件中有以下的语句来确定binlog的恢复点

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=107;

9.6、mysqlduamp的关键参数说明:

1、-B :指定多个库,增加建库语句和use连接库的语句;

2、--compact:去掉注释,适合调试输出,生产不用;

3、-A :备份所有的库;

4、-F: 刷新binlog日志;

5、--master-data=1:增加binlog日志文件名及对应的位置点;

#master-data=1或2使用的场合主要用于mysql的主从复制,使用'1'代表的是标记的位置点

#不会被注释掉,在slave上导入数据时就会执,使用'2'时代表标记的位置点会被注释掉;

#此参数在mysql的InnoDB引擎上使用

6、-x :--lock-all-tables,锁所有的表;

适用于myisam引擎,所有的用户都不能对表进行操作;

7、-l:--lock-tables,只读锁表,默认;

8、-t :只备份表的数据;

9、-d:只备份表的结构;

10、--single-transaction:适合innode事物数据库备份,导出的过程不能执行ddl语句,自动关闭默认锁--lock-tables;

--single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中

所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对

该dump线程的数据并无影响,在这期间不会锁表;

11、-R:备份转存储的函数;

12、-E:--events:导出调度事件;

9.7、企业生产场景不同引擎备份命令:

1、myisam引擎备份:

mysqldump -uroot -p123456 -A -B -F -x -R --master-data=1 --events | gzip >/tmp/mysql_bak.sql.gz

2、innodb引擎备份:

mysqldump -uroot -p123456 -A -B -F --single-transaction -R --master-data=1 --events | gzip >/tmp/mysql_bak.sql.gz

3、如果是混合引擎备份:

推荐使用myisam的备份方式;

4、专职dba的备份:

9.8、数据库的恢复:

还原的时候如果表存在会自动drop table存在的表,不存在会自动创建;

有-B参数的备份库还原时无需指定库和建库操作(指定了库或指定的库错误也不影响),如果库存在则不创建;

没有-B参数备份的库需要指定库,如果没有库需要手动进行创建;

1、source命令恢复(需要登录数据库):

mysql -uroot -p123456

mysql> drop database lc;

mysql> source /tmp/lc_bak.sql;

2、普通恢复的命令:

1)解压数据:

gzip -d /tmp/lc_bak.sql.gz

2)备份库时指定了-B参数:

mysql -uroot -p123456 </tmp/lc_bak.sql

3)备份库时没有指定-B参数:

mysql -uroot -p123456 lc </tmp/lc_bak.sql

4)批量还原的方法:

[root@db01 tmp]# gzip -d *

[root@db01 tmp]# ls *.sql | sed -n "s#_bak.sql##gp"

mysql

for dbname in `ls *.sql | sed -n "s#_bak.sql##gp"`; do

mysql -uroot -p123456 <${dbname}_bak.sql

done

5)参数混用的方法:

mysql -uroot -p123456 -d -B lc lc1 | gzip >/tmp/table_lc

9.9、总结:

库到表到数据
还原数据需要库和表
还原表需要库
库必须要存在,表始终会被覆盖,数据不会被覆盖;

正常的企业环境备份是,对整个库进行备份,然后在对库的单表进行备份;

9、mysql的备份与恢复的更多相关文章

  1. MySQL的备份与恢复

    Linux下的mysql的备份与恢复 备份: 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [root@linuxsir01 root]# ...

  2. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

  3. Mysql 数据备份与恢复,用户创建,授权

    Mysql 数据备份与恢复,用户创建,授权 1. Mysqldump >outfile.sql 2. Mysql –uxxx –pxxx < backfile.sql 3. Create  ...

  4. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  5. MySQL的备份与恢复理解与备份策略

    MySQL的备份主要分为逻辑备份和物理备份 逻辑备份 在MySQL中逻辑备份的最大优点是对各种存储引擎都可以用同样的方法来备份.而物理备份则不同,不同的存储引擎有着不同的备份方法.Mysql中的逻辑备 ...

  6. MySQL的备份与恢复具体解释

    MySQL数据备份 在mySQL里面,有逻辑备份和物理备份.逻辑备份最大长处是对于各种存储引擎,都能够使用相同的方法来备份. 而物理备份则不同.不同的存储引擎有着不同的备份方法. 逻辑备份与恢复 备份 ...

  7. MYSQL的备份与恢复--逻辑备份mysqldump

    目录 0.备份与恢复概述 1.逻辑备份-完整备份与恢复 2.逻辑备份-增量备份与恢复 (1)环境准备 (2)恢复全量数据 (3)恢复增量备份 3.新来的开发妹子删了库! (1)模拟环境准备 (2)全备 ...

  8. MYSQL的备份与恢复--物理备份xrabackup

    目录 1.数据库完整备份与恢复 (1)环境准备 (2)完全备份恢复流程 2.数据库增量备份与恢复 (1)增量和差异概述 (2)增量备份和恢复 3.数据库差异备份与恢复 4.简单命令进行物理备份 5.实 ...

  9. Mysql—数据备份与恢复

    数据备份 # 备份单个数据库 [root@localhost ~]# mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql [root@localhos ...

  10. Centos下mysql数据库备份与恢复的方法

    一.mysqldump工具备份 mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具.支持基于InnoDB的热备份.但由于是逻辑备份,所以速度不是很快,适合备份 ...

随机推荐

  1. 其他CSS属性

    一.设置元素的颜色和透明度 a.color color 属性规定文本的颜色.这个属性设置了一个元素的前景色(在 HTML 表现中,就是元素文本的颜色):光栅图像不受 color 影响.这个颜色还会应用 ...

  2. 7.10-11 visudo、sudo

    7.10 visudo:编辑 sudoers文件     visudo命令是专门用来编辑/etc/sudoers这个文件的,同时提供语法检查等功能./etc/sudoers文件是sudo命令的配置文件 ...

  3. Assignment Problem的若干思考

      最近受到南京一个同学的push,又开始了博客园写作之旅.欢迎大家联系我做代码实现工作,QQ:1198552514.权当赚点生活费~ 我的研究也经常用的Assignment problem,而且很多 ...

  4. clickhouse_各个引擎表的特点

    去重表:RepalcingMergeTree 1.使用order by排序键作为判断重复数据的唯一键 2.只有在合并分区的时候才会触发删除重复数据的逻辑 3.以数据分区为单位删除重复数据.当分区合并时 ...

  5. SSTI漏洞-fastapi

    0x00 原理   SSTI漏洞全称服务器模板注入漏洞,服务器模板接收了用户输入的恶意代码,未经过滤便在服务端执行并通过渲染模板返回给用户,使得用户可以通过构造恶意代码在服务端执行命令. 0x01 c ...

  6. Ascend Pytorch算子适配层开发

    Ascend Pytorch算子适配层开发 适配方法 找到和PyTorch算子功能对应的NPU TBE算子,根据算子功能计算出输出Tensor的size,再根据TBE算子原型构造对应的input/ou ...

  7. CodeGen融合核心扩展定制文件

    CodeGen融合核心扩展定制文件 融合核心定制文件 Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization. ...

  8. Python分析离散心率信号(上)

    Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...

  9. 实时双频Wi-Fi如何实现下一代车内连接

    实时双频Wi-Fi如何实现下一代车内连接 How real simultaneous dual band Wi-Fi enables next-generation in-vehicle connec ...

  10. 重新整理 mysql 基础篇————— 介绍mysql[一]

    前言 准备整理mysql的基础篇了,前面整理了sql语句序列的的<sql 语句系列(八百章)>,感觉很多用不上,就停下来了,后续还是会继续整理. mysql 基础篇主要是对一些基础进行整理 ...