马哥学习笔记十九——MySQL进阶之备份和还原

备份:副本
  RAID1,RAID10:保证硬件损坏而不会业务中止;

  

  备份类型:

    热备份、温备份和冷备份

      热备份:读、写不受影响;

      温备份:仅可以执行读操作;

      冷备份:离线备份;读、写操作均中止;

    物理备份和逻辑备份

      物理备份:复制数据文件;

      逻辑备份:将数据导出至文本文件中;

    完全备份、增量备份和差异备份;

      完全备份:备份全部数据;

      增量备份:仅备份上次完全备份或增量备份以后变化的数据;

      差异备份:仅备份上次完全备份以来变化的数据;

备份什么:
  数据、配置文件、二进制日志、事务日志

物理备份:速度快
逻辑备份:速度慢、丢失浮点数精度;方便使用文本处理工具直接对其处理、可移植能力强;

备份策略:完全+增量;完全+差异

MySQL备份工具:
  mysqldump:
逻辑备份工具、MyISAM(温)、InnoDB(热备份)
  mysqlhotcopy:物理备份工具、温备份

文件系统工具:

  cp:冷备 lv: 逻辑卷的快照功能,几乎热备;

    mysql> FLUSH TABLES;

    mysql> LOCK TABLES

    创建快照:释放锁,而后复制数据

第三组工具:
  ibbackup: 商业工具
  xtrabackup: 开源工具

mysqldump: 逻辑备份

  mysqldump(完全备份)+ 二进制日志

  完全+增量:

备份单个数据库,或库中特定表

  mysqldump DB_NAME [tb1] [tb2]

    --master-data={0|1|2}

      0: 不记录二进制日志文件及事件位置;

      1:以CHNAGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;       

      2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;

    --lock-all-tables:锁定所有表

    --flush-logs: 执行日志flush

    如果指定库中的表类型均为InnoDB,可使用--single-transaction启动热备(不要和--lock-all-tabes同时使用);

备份多个库:
  --all-databases: 备份所有库
  --databases DB_NAME,DB_NAME,...:
备份指定库

  --events
  --routines
  --triggers

备份策略:每周完全+每日增量
  完全备份:mysqldump
  增量备份:备份二进制日志文件(flush
logs)
逻辑备份:
  1、浮点数据丢失精度;
  2、备份出的数据更占用存储空间,压缩后可大大节省空间;
  3、不适合对大数据库做完全备份;

mysql>show engine innodb status;查看innodb存储引擎状态

备份:

  SELECT * INTO OUTFILE ‘/path/to/somefile.txt‘ FROM tb_name [WHERE
clause];

还原:

  LOAD DATA INFILE ‘/path/to/somefile.txt‘ INTO TABLE tb_name;

几乎热备:LVM快照备份

  snapshot:

  前提:

    1、数据文件要在逻辑卷上;

    2、此逻辑卷所在卷组必须有足够空间使用快照卷;

    3、数据文件和事务日志要在同一个逻辑卷上;

  步骤:
    1、打开会话,施加读锁,锁定所有表;
      mysql> FLUSH TABLES WITH READ
LOCK;
      mysql> FLUSH
LOGS;
    2、通过另一个终端,保存二进制日志文件及相关位置信息;
      $ mysql -uroot -p -e ‘SHOW
MASTER STATUS\G‘ > /path/to/master.info
    3、创建快照卷
      # lvcreate -L
# -s -p r -n LV_NAME /path/to/source_lv
    4、释放锁
      mysql> UNLOCK
TABLES;
    5、挂载快照卷,备份
      mount

      cp
    6、删除快照卷;
    7、增量备份二进制日志;

时间: 2024-10-05 05:07:00

马哥学习笔记十九——MySQL进阶之备份和还原的相关文章

马哥学习笔记十八——MySQL进阶之日志管理

错误日志:log_error,log_warnings 服务器启动和关闭过程中的信息 服务器运行过程中的错误信息 事件调度运行一个事件时产生的信息 在从服务器上启动从服务器进程时产生的信息 一般查询日志:general_log,general_log_file,log,log_output={table|file|none} 慢查询日志long_query_time,log_slow_queries={YES|NO},slow_query_log,slow_query_log_file 二进制日

马哥学习笔记十六——MySQL进阶之事务和隔离级别

连接管理器:  接受请求  创建线程  认证用户  建立安全连接 并发控制: mbox:MDA C/S: 100   10分钟: 多版本并发控制: MVCC 锁: 读锁:共享锁 写锁:独占锁 LOCK TABLES tb_name {READ|WRITE}; UNLOCK TABLES 锁粒度:从大到小,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成: 表锁: 页锁:(block) 行锁: 事务:  RDBMS: ACID (原子性,一致性,隔离性,持久性) MyISAM:  不支持事务

马哥学习笔记十五——MySQL进阶之SQL语句

数据库: create database|schema [if not exists] db_name [character set =] [collate =]; alter database drop {database | schema} [if exists] db_name; 表: 1.直接定义一张空表: 2.从其它表中查询出数据,并以之创建新表: 3.以其它表为模板创建一个空表: CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_d

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

马哥学习笔记三十——tomcat

Java体系结构包含四个独立却又彼此相关的技术: Java程序设计语言 Java API Java Class文件格式 JVM: Java Virtual Machine JVM的实现方式: 1.一次性解释器,解释字节码并执行: 2.即时编译器(just-in-time complier) 依赖于更多内存缓存解释后的结果 3.自适应编译器 缓存20%左右代码,提高80%左右的速度: 运行时数据区: 线程私有内存区: 程序计数器 java虚拟机栈 线程共享内存区: 方法区 堆:java自动内存回收

马哥学习笔记二十五——ISCSI协议,架构及其安装配置

ISCSI监听在tcp/3260端口 iSCSI Target:iscsi-target-utils 客户端认正方式: 1.基于IP 2.基于用户,CHAP tgtadm:命令行工具,模式化命令 --mode 常用模式:target,logicalunit,account target --op new.delete.show.update.bind.unbind logicalunit --op new.delete account --op new.delete.bind.unbind --