七、linux-mysql下mysql增量备份与恢复
1.备份的意义
运维工作:保护公司的数据 、 网站7*24小时服务
但相当来说,数据更加重要,而数据最核心的就是数据库数据,所以数据库的备份和恢复就显得十分重要。
2.备份的几个参数
mysqldump是mysql自带的一个备份呢命令。
命令:mysqldump -u 用户名 -p 数据库名>备份的文件
1)导出oldboy库里面的所有表结构和数据: mysqldump -uroot -p'oldboy124' oldboy >/dangjingwei/mysql_bak.sql
2)导入oldboy库里面的所有表结构和数据:mysql -uroot -poldboy124 oldboy</dangjingwei/mysql_bak.sql
查看导出的mysql_bak.sql文件:egrep -v "#|\*|--|^$" /dangjingwei/mysql_bak.sql如下,这里有3个点需要说明:
1. 可以看出,在导出中有drop,那么在导入的时候,如果库中有相应的表,就会删除此表
2.会有锁表机制,lock,在导入的时候,是禁止别的人写入的
3.这里可以看到,导入的时候,是一条语句,减少IO输出

3)导出加入B:mysqldump -uroot -p'oldboy124' -B oldboy >/dangjingwei/mysql_bak_B.sql (最大的特点是加入了库,在导入的时候,直接导入,无需创建库)
4)导入加入B:mysqldump -uroot -p'oldboy124' </dangjingwei/mysql_bak_B.sql
5)导出加压缩:mysqldump -uroot -p'oldboy124' -B oldboy|gzip >/dangjingwei/mysql_bak_B.sql.gz
3.mysqldump的原理
利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出或者生成备份的文件的过程。
物理备份:就是直接对文件进行打包
4.备份多个库:
命令:mysqldump -u 用户名 -p 数据库名 库名>备份的文件
5.备份单个表:
mysqldump -u 用户名 -p 数据库名 库名 表名 >备份的文件
6. 备份数据库/表的表结构
mysqldump -u 用户名 -p 数据库名 -d 库名 (表名)>备份的文件
7.备份数据库/表的数据
mysqldump -u 用户名 -p 数据库名 -t 库名 (表名)>备份的文件
8.备份数据库所有库表等为-A,需要bin-log日志切割为-F
mysqldump -u 用户名 -p 数据库名 -A -B -F 库名 (表名)>备份的文件
9.备份数据库所有库表日志刷新的位置--master-data增加binlog日志文件名及对应位置点
mysqldump -u 用户名 -p --master-data=1或者 2 数据库名 >备份的文件
10.关于参数 --single-transaction,适合innodb事务数据库备份
InnoDB表在备份时,通常启用选项--single-transaction来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:repeatable read,保证在备份期间看不到新的提交的数据
11.恢复/导入:
1)source (库名)sql文件---如果导出的时候有-B则完全可以不用指定库名
2)mysql -uroot -p'oldboy124' 库名 < sql文件
12.非交互式参数:-e用法
mysql -uroot -poldboy124 -e "use oldboy;select *from test;"

13.数据库的连接情况,在某种情况下,如果慢查询,哪里这里是没有变化的,运维需要抓住,交由开发优化,添加索引。show processlist 查看正在执行的sql语句
[root@djw1 ~]# mysql -uroot -poldboy124 -e "show processlist;"
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 39 | root | localhost | NULL | Query | 0 | NULL | show processlist |
[root@djw1 ~]# mysql -uroot -poldboy124 -e "show full processlist;"
+----+------+-----------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+-----------------------+
| 40 | root | localhost | NULL | Query | 0 | NULL | show full processlist |
+----+------+-----------+------+---------+------+-------+------------------
14.查进程的参数show variables,它是mysql的变量,my.cnf里面参数的生效情况。
mysql -uroot -poldboy124 -e "show variables;"---例如my.cnf里面参数的生效情况
如何不重启数据库让参数生效

mysql> show variables like 'key_buffer%';

mysql> set global key_buffer_size=1024*32;

15.查看mysql的状态status,show status是当前会话的数据库状态信息,常用的是global全局状态,表示查看整个数据库运行状态信息,show golbal status ; 这里有一些计数器和性能参数
mysql -uroot -poldboy124 -e "show global status;"|grep select(等)
16.mysqlbinlog--》解析mysql的binlog日志
就是数据目录下的如下文件就是mysql的binlog日志
mysql-bin.000001
mysql的binlog日志作用用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录。查询是不记录的。binlog记录的是mysql数据库中的所有的库,如果只是想要恢复其中的一个库,用如下语句:mysqlbinlog -d oldboy mysql-bin.000020 >oldboy.sql
按照位置截取:
mysqlbinlog mysq-lbin.000020 --start-position=365 --stop-position=456 -r pos.sql
按照时间截取:
mysqlbinlog mysq-lbin.000020 --start-datetime='2014-10-16 17:00:11' --stop-datetime='2014-10-16 17:10:11' -r time.sql
17. master-data参数是非常重要的一个参数,如果恢复主库,可以选择master-data=2,如果是从库,那么需要master-data=1
七、linux-mysql下mysql增量备份与恢复的更多相关文章
- Linux - centos7 下 MySQL(mariadb) 和 主从复制
目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...
- 解决Linux系统下Mysql数据库中文显示成问号的问题
当我们将开发好的javaWEB项目部署到linux系统上,操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题! 打 ...
- linux系统下MySQL表名区分大小写问题
linux系统下MySQL表名区分大小写问题 https://www.cnblogs.com/jun1019/p/7073227.html [mysqld] lower_case_table_name ...
- LINUX系统下MySQL 压力测试工具super smack
摘要:1.源文件下载地址:http://vegan.net/tony/supersmack/2.安装:注意在编译时,可以先把对应的libmysqlclient.so.*拷贝到/usr/lib3.测试: ...
- Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)
Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装MySQL5.7.21 数据库安装文件夹为 /home/devil/mysql 现 ...
- Linux系统环境下MySQL数据库源代码的安装
Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一. 安装环境准备 若要在Linux系 ...
- MySQL 完整和增量备份与恢复
MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...
- Linux虚拟机下mysql 5.7安装配置方法图文教程
一. 下载mysql5.7 http://mirrors.sohu.com/mysql/MySQL-5.7/ Linux下载: 输入命令:wget http://mirrors.sohu.com/my ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- Linux(Ubuntu)下MySQL的安装与配置
转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...
随机推荐
- 2020PHP面试-SQL篇
一.乐观锁和悲观锁 1.悲观锁是指假设并发更新会发生冲突,不管冲突是否会发生,都会使用锁机制. 优点: 完全保证数据安全. 缺点:锁机制会有额外开销,并发度降低. 可能会产生死锁. 2. 乐观锁是指假 ...
- android手机客户端测试-思考方向
来源公开课!!! 1.冒烟测试 Monkey 工具 目标:1.编写adb.exe的Monkey命令. 2.通过logcat定位问题,保证软件的健壮性. 2.安装.卸载测试 2.1 手机 ...
- Java 创建对象的几种方式
转自https://www.cnblogs.com/wxd0108/p/5685817.html 作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而 ...
- nginx基础知识小结
配置文件讲解: #user nobody; #开启进程数 <= CPU数 worker_processes 1; #错误日志保存位置 #error_log logs/error.log; #er ...
- UVA 127 链表和栈的使用
刘汝佳的题目感觉都是比较难以处理的,就像这道题目,一看数据简直觉得头大...加上这个英文我也看的想死 最后看别人博客的题意讲解才知道原来是要移牌. 然后如果熟练的使用stack和手写链表的话,这个题目 ...
- H3C S10512虚拟化配置
软件版本:Version 7.1.070, Release 7585P05 1.配置SW1#设置SW1的成员编号为1,创建IRF端口2,并将它与物理接口Ten-G0/0/45.Ten-G0/0/46. ...
- Python pip安装时You are using pip version 9.0.1, however version 18.0 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
在我们安装第三方库的时候会在结尾出现如下两行内容 You are using pip version 9.0.1, however version 18.0 is available. You sho ...
- Linux(CENTOS7) Tomcat服务成功发布但局域网浏览器无法访问
问题 : 我在linux搭建了一个tomcat服务器,tomcat开启后,发现在局域网浏览器上无法访问该tomcat,浏览器报无法访问服务器错误,我查看了tomcat的日志,路径..../tomcat ...
- 23. docker 数据持久化 bind mounting
1. bind mounting 和 data volume 的区别 data volume 需要在 Dockerfile 定义 Volume bind mounting 只需要 -v 指明 容器外部 ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...