• 备份恢复


    内容概要
    • 备份恢复策略 • 逻辑备份 • 物理备份 • 数据恢复 • 自动化备份恢复设计
    备份策略
    备份恢复策略 • RTO Recovery Time Objective,恢复时间目标,数据中心可容许服务中断的时间长度,可简单 地描述为企业能容忍的恢复时间
    • RPO Recovery Point Objective,恢复点目标,企业能容忍的最大数据丢失量,可以按照时间计 算
    备份方式 • 逻辑 1.mysqldump/mysqlpump 2.select…into outfile 3.主从延迟复制
    • 物理 1.冷备: 关闭MySQL,拷贝数据文件 2.热备: innobackupex
    • 日志备份 1.binlog实时备份
    备份恢复策略
    全量备份 逻辑备份 mysqldump 物理备份 innobackupex、冷备 增量备份 物理备份 innobackupex 主从冗余 不能避免数据误操作 主从延迟库备份 binlog应用落后主库一段时间
    备份恢复策略
    1.确定数据库的大小
    select round(sum(data_length+index_length)/1024/1024) as total_mb, round(sum(data_length)/1024/1024) as data_mb, round(sum(index_length)/1024/1024) as index_mb from information_schema.tables;
    2.数据库的可用性 维护窗口 业务低峰时段
    备份恢复策略
    3.存储引擎与锁策略
    select table_schema,engine,round(sum(data_length+index_length)/1024/1024) as total_mb, round(sum(data_length)/1024/1024) as data_mb,round(sum(index_length)/1024/1024) as index_mb,count(*) as tables from information_schema.tables where table_schema not in ('INFORMATION_SCHEMA','PERFORMANCE_SCHEMA','sys','mysql') group by table_schema,engine order by 3 DESC;
    4.运行时间 确认备份运行的时间,便于执行合理的备份计划
    备份恢复策略
    5.备份验证 备份完成后,必须验证备份的有效性 6.灾备演练 定期组织灾备演练,测试数据恢复,能否达到RTO和RPO标准 7.常用的备份计划 • 每天一次全备 • 实时备份binlog • 每6小时备份一次核心表 • 1,3,5全备,2,4,6,7增量备份
    逻辑备份
    mysqldump
    • 将数据备份成可执行的SQL语句。 • 备份方式: • 远程备份 • 本地备份 • 备份类型 • 一致性备份 • 全库备份 • 单表备份 • 备份时排除某些表 • 单表条件备份
    mysqldump
    • 备份指定的数据库中的某些表
    mysqldump [options] db_name [tab1] …
    • 备份一个或多个数据库
    mysqldump [options] --database DB1 [DB2] …
    • 备份所有数据库
    mysqldump [options] --all-database
    mysqldump • 常用参数 --tables 指定导出的表,--databases配合使用 --single-transaction 事务类型表一致性导出 --lock-tables 锁定表,导出后释放 --default-character-set 指定导出文本的字符集 --routines 导出存储过程,函数
    mysqldump
    --triggers 导出触发器 --hex-blob BLOB字段导出 --ignore-table 多张多次指定 , 注意=前后无空格, --ignore-table=eve.uainfo -w, --where=name 指定where条件,-w 'id =77643’ -t, --no-create-info 不备份表结构,只备份数据
    mysqldump
    -T, --tab=name 指定数据输出路径,只能在mysql服务器本地使用 --fields-terminated-by 指定字段分隔符 --replace Use REPLACE INTO instead of INSERT INTO --master-data 生成change master to语句,并指定一致性导出的binlog的位置 --set-gtid-purged Whether to add SET @@GLOBAL.GTID_PURGED to output
    mysqldump
    • --导出单个db mysqldump -uroot -pmysql1 --master-data=2 --single-transaction --triggers --routines -databases sakila >/home/mysql/insert.sql
    • --导出多个db mysqldump -uroot -pmysql1 --default-character-set=utf8 --hex-blob --single-transaction -routines --triggers --databases employees sakila >/home/mysql/test/dumpdb.sql
    • --导出单个table,导入时,先进入对应的db下 mysqldump -uroot -pmysql1 --default-character-set=utf8 -t --databases mysql --tables user > user.sql
    mysqldump • --不导出某些表 --ignore-table=eve.uainfo 多张多次指定 , 注意=前后的空格 mysqldump -uroot -pmysql1 --default-character-set=utf8 --single-transaction --databases eve --ignore-table=eve.uainfo --ignore-table=eve.dimensions_info >ignoret.sql
    • --load data格式 mysqldump -uroot -pmysql1 --databases eve --default-character-set=utf8 --singletransaction --tables TRACKINGCLICK -t --tab /mnt/howe/ --fields-terminated-by=','
    mysqldump • replace --大表修复不重建表 mysqldump-uroot -pmysql1 --default-character-set=utf8 --hex-blob --single-transaction -routines --triggers -t --replace=TRUE --databases mysql --tables user >/mnt/howe/user.sql
    • --修复行 where mysqldump -uroot -pmysql1 --default-character-set=utf8 --single-transaction -t -databases iruluplay --tables third_party_device -w 'id =77643' > 1.txt
    • 单行insert导出 --skip-extended-insert mysqldump-uroot -pmysql1 --default-character-set=utf8 --skip-extended-insert -databases mysql --tables user >/mnt/howe/user.sql
    mysqldump
    • 对于较小的数据库非常理想,适合于5GB~20GB之间的数据库。 • 不适用于上百GB的数据库,也不适用于时间性要求非常强的恢复。

  • 相关阅读:
    Python中下划线---完全解读(转)
    数字、基数及表示
    实现二叉排序树的各种算法
    shell脚本 空格
    Linux中执行shell脚本的4种方法
    vim常用命令总结
    Linux 奇技淫巧
    排序算法之二分治法
    二分查找
    排序算法之一插入排序
  • 原文地址:https://www.cnblogs.com/xingxingdiandian/p/9543171.html
Copyright © 2020-2023  润新知