mysql全备份+增量备份笔记总结
备份基础知识
冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行;
温备(warm backup): 服务在线,但仅支持读请求,不允许写请求;
热备(hot backup):备份的同时,业务不受影响。
这种类型的备份,取决于业务的需求,而不是备份工具
MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具
完全备份:full backup,备份全部字符集。
增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。
差异备份:differential backup 上次完全备份以来改变了的数据。
建议的恢复策略:
完全+增量+二进制日志
完全+差异+二进制日志
全备份
MyISAM:
mysql -uroot -p'123456' -A -B -F –flush-privileges –master-data=2 –x -–events | gzip > /opt/x_$(date +%F).sql.gz
InnoDB:
mysqldump -uroot -p123456 --single-transaction -A -B -F --events | gzip > /server/backup/x_$(date +%F).sql.gz
--single-transaction MySIM直接选-x(--lock-all-tables)参数锁表,InnoDB选择这个参数来保证备份的一致性。相当于设置一个隔离级别,REPEATABLE READ ,以确保本次会话dump时,不会看到其它会话已经提交的数据。
--master-data[=#] 自动找到binlog的位置 This causes the binary log position andfilename to be
如: --master-data=1 可以不用刷新binlog了,做增量备份的时候很有用
--master-data=2 后会加个注释,好找些
-E, --events Dump events.
-A, --all-databases Dump 导出所有数据,一般加-B 共用+--events all
-B, --databases 指定多个库名备份 直观看,加上-B参数作用是增加创建数据库和连接数据库的命令,生产环境备份必用。
-F, --flush-logs 刷新,切割binlog
补充:上诉两种备份如果数据库有存储过程和触发器还得加两个参数:
--triggers –routines --hex-blob, 一般公司无这三个参数。
触发器 存储过程 如果你库中有blob字段,而你又没加这个参数 ,那你的blog大字段数据就会丢失
分库备份
mysql -uroot -p'123456' -e "show databases;" | grep -Evi "Database|infor|perf" | sed -r 's#^([a-z].*$)#mysqldump -uroot-p'123456' --events -B \1 | gzip > /tmp/logs/\1.sql.gz#g' | bash
-t,--no-create-info 如果希望只导出表数据
-d, --no-data 只备份表结构No row information.
报错
mysqlbinlog:unknownvariable'default-character-setutf8'解决方法
mysqlbinlog --no-defaults ./mysql-bin.000007
mysql全量导出时碰到如下告警: 默认是不备份事件表的,只有加了--events 才会不警告
Warning: Skipping the data of table mysql.event. Specify the --events option explicitly
解决办法:
--events --ignore-table=mysql.event
ERROR 1046 (3D000) at line 22: No database selected
修改.sql 在22行前面加上 use 库名字;
恢复
首先恢复全备
mysql -uroot -p123456 < /server/backup/x.sql
多分库文件恢复
for name in `ls *.sql| sed 's#.sql##g' `; do mysql -uroot -p123456 < ${name}.sql ; done
然后
mysqladmin -uroot -p123456 flush-log //切割日志
汇总所有的binlog, 把错误的删除,
剩下的转成sql语句
cp mysql-bin.000016 /server/backup/
mysqlbinlog --no-defaults -d user mysql-bin.000016 > bin.sql
mysql -uroot -p123456 < bin.sql
执行 | mysql
根据binlog位置和时间回复
mysqlbinlog --start-postion=107 --stop-position=1000 -d 库名 二进制文件
mysqlbinlog --start-datetime='2013-09-10 00:00:00' --stop-datetime='2013-09-10 01:01:01' -d 库名 二进制文件
egrep -v "#|\*|--|^$" 可以过滤查看备份内容
rsync配合定时任务
rsync -avz /data/3306/mysql-bin.000* rsync_backup@10.0.0.18::backup --password-file=/etc/rsync.passsword
一主多从,一个从 做备份
vim .my.cnf //设置登陆
[client]
user=root
host=localhost
password=123456
mysql> show variables like "character_set%"; //查看字符集
[client] //设置字符集
default-character-set=utf8
[mysqld]
character-set-server=utf8 //5.5
default-character-set=utf8 //5.1
[mysql]
default-character-set=utf8
开启bin-log,存在一份全备份,及所有增量binlog文件备份
mysql> show full processlist; //连接情况
mysql> show variables like "%log_bin%";
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
mysql> flush table with read lock; //读锁
mysql> unlock tables; //解锁
replicate_wild_ignore_table=mysql.% //可以加通配符
--skip-name-resolve 选项启动mysqld来禁用DNS主机名查找
slave-skip-errors = 1032,1062 //排除1032,1062的保持。
lower_case_table_names=1 //让MySQL不区分大小写! //慎用,会影响原来的表名字
[mysqld]
read-only //只读,root不受限
主从不同步
slave 开启从库记录binlog 级联同步 当做数据库备份
log-bin = /data/3307/mysql-bin
log-slave-updates //这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作
expire_logs_days = 7 //保留7天
# mysql -e "show slave status\G;" | egrep 'Slave_IO_Running|Slave_SQL_Running' | awk '{print $2}' | egrep 'Yes' | wc -l //监控状态
mysql数据库优化
硬件优化 物理机
软件优化 系统 mysql编译
my.cnf参数优化 //SHOW GLOBAL STATUS\G; 工具mysqlreport
SQL语句的优化 索引优化
架构的优化
流程制度安全优化 人的流程 测试流程 客户端phpmyadmin
mysql全备份+增量备份笔记总结相关推荐
- Xtrabackup对mysql全备以及增量备份实施
Xtrabackup对mysql全备以及增量备份实施 1.完全备份与恢复 本文使用的是centos5.8 64位系统,mysql 使用5.5.35. 如果要使用一个最小权限的用户进行备份,可基于以下: ...
- mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
--dump完全备份 vi /tmp/mysql_full_bak.sh #!/bin/sh scriptsDir='pwd' mysqlDir='/usr/local/mysql' user=roo ...
- mysql 如何做增量备份_mysql实现增量备份
有点要注意 如果你误删了表 想通过这个恢复 必须恢复日志里面有创建表的日志 不然的话是无法回复的 ?就是必须是从你开始创建表的时候就已经记录日志了? 恢复到哪个位置 就按照哪个位置来计算 mysql ...
- 全量备份/增量备份/差异备份说明
作为一名运维工程师,在日常工作中会时常对各类重要数据进行备份,为了方便管理,运用何种备份方案是至关重要的. 今天在此简单说明下Linux运维中的备份种类:全量备份.增量备份.差异备份. 一.首先说一下 ...
- 什么是全量备份,增量备份,差异备份?
背景 今天我司服务器工程大牛看我在备份数据,冷不丁提到了差异备份;但是才疏学浅的我却不知何为差异备份,故而以此为引,开始了对全量备份,增量备份,差异备份这三者的研习;经过一番寻觅,最终找到了他们.呵呵 ...
- MySQL定时备份(全量备份+增量备份)
MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份.差异备份.增量备份 更多binlog的学习参考马丁传奇的 MySQL的 ...
- mysql 定期备份_MySQL定时备份(全量备份+增量备份)
MySQL 定时备份 更多binlog的学习参考马丁传奇的 MySQL的binlog日志,这篇文章写得认真详细,如果看的认真的话,肯定能学的很好的. 如果查看binlog是出现语句加密的情况,参考 m ...
- 一个脚本实现全量增量备份,并推送到远端备份中心服务器
2019独角兽企业重金招聘Python工程师标准>>> 摘要 由于工作需要,刚好需要这样一个功能的脚本,主要解决: 1. 不想在crontab中调度两条备份任务,一个做全量一个做增量 ...
- xtrabackup全量+增量备份
xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: innobackupex:是将xtrabackup进行封装的perl脚本,可 ...
最新文章
- Mac MySQL 数据库配置(关系型数据库管理系统)
- MySQL5.7.10多元复制功能搭建
- zabbix4.0 使用nginx前端安装
- 车险赔付率分析报告_车险综合改革出台:下调附加费用率,三者限额提至千万...
- 天气预报如何得获得?
- pandas的拼接操作
- 【从C到C++学习笔记】C++介绍/推荐书籍/开发工具
- 重磅|如何利用NBA球员推文预测其球场表现?
- 世界那么大,你又怎么能看的完呢
- 名词性从句的时态规则
- 日撸代码300行:第二天
- 微信小程序提示:https://www.xxxxx.com 不在以下 request 合法域名列表中,请参考文档....
- 基于G.1070的视频质量无参考打分集成回顾
- 【项目实战-MATLAB】:基于模板匹配的人民币识别
- matlab和超几何检验,用超几何分布检验做富集分析
- USB设备开发---- USB固件开发
- Golang helloWord
- excel创建表格并且智能筛选表格中的所有数据
- 【转】值得推荐的C/C++框架和库
- php期末考试题机考_《儿童心理学》国家开放大学期末考试机考题库(部分)
热门文章
- 使用sphinx快速为你python注释生成API文档
- 201671010435-王潇-实验四附加实验-项目互评
- 制作镜像包时遇到的模块加载错误的问题
- 1、Canvas的基本用法
- 单独使用modelsim进行仿真
- centos镜像 from_【CentOS 7.1】使用163的镜像
- C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)
- STM32通用定时器(原理、结构体、库函数、定时器中断每秒闪烁一次灯) —— 时钟源、分频值、重装载值
- RedLock实现原理
- U盘拷贝文件很慢?稍微改变一下使用方式,传输速度就快了6倍