美文网首页
MySQL备份与恢复

MySQL备份与恢复

作者: 吃可爱长大鸭 | 来源:发表于2019-12-10 20:32 被阅读0次

MySQL 日志

img

错误日志

作用:解决MySQL故障,排错

默认是否开启:开启

路径/名字:$datadir/$hostname.err

[root@db01 data]# mysqladmin variables|grep 'error'

编辑配置文件

[root@db01 ~]# vim /etc/my.cnf
[mysqld]
log_error=/application/mysql/data/$hostname.err

查看方式

mysql> show variables like 'log_error';

一般查询日志

作用:记录mysql所有执行成功的SQL语句信息,可以做审计用,但是我们很少开启。

默认是否开启:关闭

路径/名字:$datadir/$hostname.log

[root@db01 data]# mysqladmin variables |grep 'gen'
general_log        OFF 
general_log_file  /application/mysql-5.6.40/data/db01.log 
​
mysql> show variables like '%gen%';
+------------------+-----------------------------------------+
| Variable_name    | Value                                   |
+------------------+-----------------------------------------+
| general_log      | OFF                                     |
| general_log_file | /application/mysql-5.6.40/data/db01.log |
+------------------+-----------------------------------------+
​
vim /etc/my.cnf
general_log=1

慢日志

 show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
|  2 | root | localhost | NULL | Query   |    0 | init  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
​
mysql> show full processlist;
+----+------+-----------+------+---------+------+-------+-----------------------+
| Id | User | Host      | db   | Command | Time | State | Info                  |
+----+------+-----------+------+---------+------+-------+-----------------------+
|  2 | root | localhost | NULL | Query   |    0 | init  | show full processlist |
+----+------+-----------+------+---------+------+-------+-----------------------+

作用:  1)是将mysql服务器中影响数据库性能的相关SQL语句记录到日志文件

        2)通过对这些特殊的SQL语句分析,改进以达到提高数据库性能的目的

默认是否开启:关闭

路径/名字:$datadir/$hostname-slow.log

[root@db01 ~]# mysqladmin variables |grep 'slow'
slow_query_log OFF
slow_query_log_file /application/mysql-5.6.40/data/db01-slow.log

如何开启:

[root@db01 ~]# vim /etc/my.cnf
[mysqld]
#指定是否开启慢查询日志
slow_query_log = 1
#指定慢日志文件存放位置(默认在data)
slow_query_log_file=/application/mysql/data/slow.log
#设定慢查询的阀值(默认10s)
long_query_time=0.05
#不使用索引的慢查询日志是否记录到日志
log_queries_not_using_indexes
#查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit=100(鸡肋)

模拟慢查询

mysql> use test
mysql> create table city select * from world.city;
mysql> insert into city select * from city;
​
mysql> show processlist;
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
| Id | User | Host      | db   | Command | Time | State        | Info                                |
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
|  2 | root | localhost | NULL | Query   |    0 | init         | show processlist                    |
|  5 | root | localhost | test | Query   |    9 | Sending data | insert into city select * from city |
+----+------+-----------+------+---------+------+--------------+-------------------------------------+
2 rows in set (0.01 sec)
​
mysql> kill 5;
Query OK, 0 rows affected (0.00 sec)
​
​
[root@db01 ~]# yum  localinstall -y percona-toolkit-3.0.11-1.el6.x86_64.rpm

MySQL 备份

1.做备份就是为了恢复

2.第一个是保护公司的数据

3.尽量减少数据的丢失(公司的损失)

备份类型

1.冷备

停服务,做备份

2.温备

(不停服务)在备份的过程中,会锁表,用户无法往表中写入数据

3.热备

(不停服务)在备份过程中,不会锁表,用户随意写数据

备份策略

**1.全量备份**

将所有的数据,做备份

**2.增量备份**

基于上一次数据备份的,新数据备份

**3.差异备份**

基于全备数据的,新数据备份

备份工具

1.逻辑备份

1.mysqlbinlog
2.mysqldump
3.into outfile(导出数据结果)
4.binlog(备份SQL语句,DML,DCL,DDL,DTL)
5.replication(主从复制-延时从库)

2.物理备份

1.cp /application/mysql/data
2.Xtrabackup

### MySQL逻辑备份-mysqldump

mysqldump 
-u:指定用户
-p:指定密码
-h:指定主机域
-S:指定socket文件
-P:指定端口

1.全备参数:-A

[root@db02 ~]# mysqldump -A > /tmp/full.sql

2.指定库备份:-B(指定多个库)

[root@db02 ~]# mysqldump -B zls1 > /tmp/zls1.sql

多了一条建库语句,use语句

mysql < /tmp/zls1.sql

3.什么都不加:备份库中的表

[root@db02 ~]# mysqldump zls1 > /tmp/zls1_1.sql

mysql> create database zls1;
mysql> use zls1; source /tmp/zls1_1.sql
​
mysql zls1 < /tmp/zls1_1.sql

4.备份时,刷新binlog:-F

[root@db01 ~]# mysqldump -A -F > /tmp/full_F.sql
​
[root@db01 ~]# mysqldump -B mysql zls  -F > /tmp/full_F.sql

5.打点备份:--master-data=2

=2是注释
[root@db02 ~]# mysqldump -A --master-data=2 > /tmp/full1.sql
​
=1 不注释
[root@db02 ~]# mysqldump -A --master-data=1 > /tmp/full1.sql
​
=0 关闭
[root@db02 ~]# mysqldump -A --master-data=0 > /tmp/full1.sql

6.热备参数:--single-transaction(快照备份)

[root@db02 ~]# mysqldump -A --master-data=2 --single-transaction > /tmp/full2.sql

7.-R(备份函数,存储过程),--triggers

[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql

8.压缩备份:gzip

[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql
​
​#解压到数据库
zcat /tmp/full_2019-12-10.sql.gz | mysql -uroot -p123
start-position 

相关文章

  • mysql数据库备份与恢复

    数据库备份 使用mysql自带备份命令行就可实现数据库备份与恢复 备份全部库 mysql> mysqldump -...

  • Oracle顶级Java技术专家心血之作Effective My

    前言 mysql资深专家ronald bradford撰写的精品书籍《effective mysql之备份与恢复》...

  • mysql备份与恢复

    mysql数据库备份与恢复 一、为什么要备份 二、备份类型 三、备份种类 四、逻辑备份 逻辑备份特点 用法 日常用...

  • RDS MySQL 物理备份文件恢复到自建数据库

    RDS MySQL 物理备份文件恢复到自建数据库 RDS 5.7的物理备份恢复到本地的方法 mysql 备份工具 ...

  • MySQL(六 数据备份,pymysql模块),数据库远程连接

    MySQL数据备份 一、mysqldump实现逻辑备份 二、恢复逻辑备份 三、备份/恢复案例 四、实现自动化备份 ...

  • MySQL备份与恢复

    准备工作 用docker启动mysql,同时创建名为my_db的数据库: 在docker host机器上,登录my...

  • MySQL备份与恢复

    MySQL备份与恢复的解决方案 目录: 1、为什么要进行备份 2、备份的类型 3、备份需要考虑的因素 4、需要备份...

  • mysql备份与恢复

    假设服务器上有以下内容: 注意:aaa,bbb都是database,不是数据表.想要备份出里边的aaa 会生成一个...

  • MySQL备份与恢复

    一.备份的类型 1.热备 2.温备 3.冷备 二.备份的方式 2.1逻辑备份 基于SQL语句的备份 1)binlo...

  • MySQL备份与恢复

    MySQL 日志 错误日志 编辑配置文件 查看方式 一般查询日志 慢日志 默认是否开启:关闭 如何开启: 模拟慢查...

网友评论

      本文标题:MySQL备份与恢复

      本文链接:https://www.haomeiwen.com/subject/mwxngctx.html