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增量备份与恢复的更多相关文章

  1. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  2. 解决Linux系统下Mysql数据库中文显示成问号的问题

    当我们将开发好的javaWEB项目部署到linux系统上,操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题! 打 ...

  3. linux系统下MySQL表名区分大小写问题

    linux系统下MySQL表名区分大小写问题 https://www.cnblogs.com/jun1019/p/7073227.html [mysqld] lower_case_table_name ...

  4. LINUX系统下MySQL 压力测试工具super smack

    摘要:1.源文件下载地址:http://vegan.net/tony/supersmack/2.安装:注意在编译时,可以先把对应的libmysqlclient.so.*拷贝到/usr/lib3.测试: ...

  5. Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)

    Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装MySQL5.7.21 数据库安装文件夹为    /home/devil/mysql 现 ...

  6. Linux系统环境下MySQL数据库源代码的安装

    Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一.      安装环境准备 若要在Linux系 ...

  7. MySQL 完整和增量备份与恢复

    MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...

  8. Linux虚拟机下mysql 5.7安装配置方法图文教程

    一. 下载mysql5.7 http://mirrors.sohu.com/mysql/MySQL-5.7/ Linux下载: 输入命令:wget http://mirrors.sohu.com/my ...

  9. Linux(centos)下mysql编译安装教程

    Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...

  10. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

随机推荐

  1. vue仿写taobao

    1.less () cnpm install less less-loader --save ()在webpack.base.conf.js里 { test:/\.less$/, loader:'st ...

  2. Idea 中的快捷键(mac)

    Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ...

  3. JZOJ-2019-11-7 A组

    T1 Input 从文件 awesome.in 中读入数据. 第一行 2 个用空格隔开的整数 \(n\), \(P\). 第二行 n 个用空格隔开的整数 \(A_1, \cdots , A_n\). ...

  4. 应用架构的演进--MVC,RPC,SOA,微服务架构

    MVC架构:垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率. 当业务规模很小时,将所有功能都部署在同一个进程中,通过双机或者前置负载均衡 ...

  5. 线段树--线段树【模板1】P3372

    题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. 第二行包含 ...

  6. 2)将普通工程变成动态库dll

    1)打开那个工程: 2)然后 看属性里面的控制平台:

  7. 吴裕雄--天生自然MySQL学习笔记:MySQL 删除数据库

    使用普通用户登陆 MySQL 服务器,可能需要特定的权限来创建或者删除 MySQL 数据库,所以使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过程中,务必要十分谨慎,因为在执行删 ...

  8. 更改php.ini配置

    vi /etc/php.ini #编辑修改 @ini_set('memory_limit',        '64M');                                      / ...

  9. 系统学习python第六天学习笔记

    1.补充 1.列表方法补充 reverse,反转. v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1) sort,排序 v1 = [11,22 ...

  10. CMake命令之export

    CMake中与export()相关的命令 (注:红色字体是标题,粉色是需要特别需要注意的地方) 总的来说,export()命令想要做的事情可以用一句话概括:Export targets from th ...