快捷搜索:

运行实行,MySQL运行经验

1. 概要

社区和法定的改善

  • MariaDB提议改革,即便那七个参数皆以1也能形成合併效果,品质获得了小幅度升高。
  • 官方吸取了MariaDB的思索,并在这里基础上海展览中心开了改进,质量再度赢得了加强

Tips:

  • 合法在MySQL5.6版本之后才做了这几个优化
  • Percona和MariaDB版本在MySQL5.5早已包涵了这么些优化

每台机器都施用多实例的模子。 各个机器放多少个实例,各种实例放四个DB。

RAID如何保险数据安全

  • BBU(Backup Battery Unit)
    • BBU保障在WB计策下,就算服务器爆发掉电或许宕机,也能够将缓存数据写入到磁盘,进而有限支撑数据的安全

依赖多数派达成活动选主。

联级复制

A -> B -> C

B中加上参数:
log_slave_updates
B将把A的binlog记录到自个儿的binlog日志中

有关备份的职能定位:

常用工具及用法 - xtrabackup

特点:

  • 开源,在线备份InnoDB表
  • 支撑限制速度备份,防止对职业形成影响
  • 支撑流备
  • 帮衬增量备份
  • 帮助备份文件压缩与加密
  • 帮助互相备份与回复,速度快

在线表结构退换:数据库能源申请由品质服务团队担负,做到能源的客观遍及、分配,假使有个别业务只供给个位数级其余DB实例,能够自动在私有DB云平台北申请安插,当数码比不小时,供给先经过质量服务组织评估通过。

磁盘调度战术-write through

  • 数量同期写入cache和存款和储蓄介质才回去写入成功

5. 可观自动化

编写翻译安装MySQL

  • 下载MySQL源码安装包
  • 设置供给包(make cmake bison-devel ncurses-devel build-essential)
  • Cmake配置MySQL编写翻译选项,能够定制需求安装的作用
  • make && make install
  • 最初化实例,编辑配置文件并运转
  • 账户安全设置

在认为semi-sync复制可确定保障基本数据一致性的比如前提下,产生故障切换时,利用上述的binlog server中的日志进行补全后再选新主、切换。

DBA运转专门的职业

日常

  • 导数据、数据修改、表结构改变
  • 加权限、难点管理
    其他
  • 数据库选型安排、设计、监控、备份、优化等

使用基于GTID的一主多从构造,外加三个依据lossless semi-sync机制的mysqlbinlog实现的binlog server(能够领略为MySQL 5.7的loss zero replication)。

优化在此以前我们必要明白什么

  • 服务器相关的布署
  • 政工有关的情事
  • MySQL相关的配置

My罗克s项目地址:

MySQL异步复制

./sorence.png

图片 1

异步复制

别的,MariaDB 10.2版本也将要整合My罗克s引擎。

部署MySQL的要求

  • 推荐的MySQL版本: >= MySQL5.5
  • 推荐介绍的MySQL存款和储蓄引擎: InnoDB

4. 怎么连忙铺排从库

哪些是日记

  • 日志(log)是一种顺序记录事件流水的文件
  • 记录Computer程序运营进度中发生了怎么
  • 用途多种
  • 帮衬深入分析程序难题
  • 浅析服务乞求的特点、流量等
  • 认清工作是不是中标推行
  • ……

有着的备份都是基于mysqldump完结,之所以选择mysqldump逻辑备份好处有:

实用脚本innobackupex

  • 开源Perl脚本,封装调用xtrabackup及一层层有关工具与OS操作,最终水到渠成备份进程
  • 支撑备份InnoDB和其他电动机的表
  • 备份一致性保障

多实例之间从未张开能源隔绝,这么做是让各样实例都能发布最大品质。

二进制日志binlog

  • binlog (binary log)
  • 笔录数据引起数据变化的SQL语句或数额逻辑变化的内容
  • MySQL服务层记录,非亲非故存款和储蓄引擎
  • binlog的重要性成效:
    • 传说备份苏醒数据
    • 数据库主从同步
    • 开挖深入分析SQL语句
  • 供数据深入分析情形拉数据
  • 供祸患苏醒

MySQL semi-sync(半齐声复制)

./sorence.png

图片 2

半联手复制

关于WDT项目:

5.2-MySQL数据备份

Schema设计及DB拆分等由品质优化团队担当。

5.7-MySQL参数调优

上边提到,因为运用多实例、多DB结构,备份时方可多DB并行备份。当然了,也会调整并行备份的多少,幸免影响在线职业本性。

串行有怎么着难点

  • SAS盘常常每秒只可以有150~200个Fsync。
  • 换算到数据库每秒只可以推行50~60个事务

前段时间相当多宗旨工作已切换来My罗克s引擎,在机械硬件配置不改变的情状,约可节约百分之五十机器。

MySQL主从复制

  • 一主一从
  • 主主复制
  • 一主多从
  • 多主一从
  • 联级复制

原标题:MySQL运行经验

复制监察和控制

询问从库状态:

show slave statusG

主要编辑:

MySQL多实例安装

  • 部署好mysql软件
  • 编排四个布局文件,初叶化八个实例
  • 启动MySQL实例

可应用xtrabackup在存活存活的SLAVE实例上备份,也可在主库上提倡备份,再利用WDT(也许是BT)协议传输到异乡,用于拉起从库。

什么参数有利于抓牢写入品质

  • innoDB_flush_log_at_trx_commit && sync_binlog
  • innodb log file size
  • innodb_io_capacity
  • innodb insert buffer

依照配置基本完结切换,未选择VIP。

InnoDB Redo log

  • Write ahead Log

种类地址:

MySQL线上设置小结

  • 基于供给采纳适用的本子以致分支,提议使用或进级到较高版本5.5或5.6
  • 假诺急需定制MySQL功效的话,能够虚构编写翻译安装,不然的话建议选择二进制包安装,非常轻松
  • 根据机器配置选择安顿七个MySQL实例依旧单个实例,机器配置非常好的话,提出铺排多实例

备份放在集中储存(HDFS)上, 据悉已达EB等级体量。

总结

  • MySQL主从复制是MySQL高可用性、高质量(负载均衡)的底子
  • 粗略、灵活,计划方式类别,能够依附分裂职业场景布局区别复制结构
  • MySQL主从复制近来也存在一些主题材料,能够依赖需求配备复制巩固效率来缓慢解决难点
  • 复制进度中应有随即监察和控制复制状态,复制出错或延时大概给系统形成影响
  • MySQL复制是MySQL数据库程序猿必知必会的一项基本能力

某些从库挂掉时,能够动态摘除。

MySQL多实例计划

干什么多实例陈设?

  • 充足利用系统能源
  • 能源隔离
  • 事情、模块隔绝

6. 团队组织及手艺树

主题素材处理(数据库慢?)

  • 数据库慢在哪?
  • show processlist查看mysql连接新闻
  • 翻看系统状态(iostat, top, vmstat)

直面周围的数据库实例,手工业管理完全不具体。近来在facebook重纵然使用Python开垦内部DB运营平台,所以Python本领方面要求相比较高。

二进制安装MySQL

  • 下载软件包
  • 解压放到钦点目录(举例/usr/local)
  • 将MySQL目录放到PATH中
  • 伊始化实例,编辑配置文件并运转
  • 账户安全设置

图片 3

系统调优的基于:监察和控制

  • 实时监察MySQL的slow log
  • 实时督查数据库服务器的载重景况
  • 实时监察MySQL内部原因值

数据库能源申请由质量服务组织担任,做到能源的客观布满、分配。就算有些业务须求小量DB实例,能够活动在私有DB云平台北申问好顿;当数码相当的大时,需求先经过品质服务集团评估通过才得以。回到博客园,查看更加的多

安排MySQL半共同复制

只需二次:

主库:

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

从库:

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

动态设置:

主库:

SET GLOBAL rpl_semi_sync_master_enabled=1;
SET GLOBAL rpl_semi_sync_master_timeout=N; master 延迟切异步

从库:

SET GLOBAL rpl_semi_sync_slave_enabled=1;

3. 备份机制

5.4-MySQL线上布署

  • 不必备份索引,只备份数据;
  • 备份文件压缩比高,更节省磁盘空间;
  • 立异了mysqldump,备份进度中还开展额外压缩;

数据恢复的须要条件

  • 平价备份
  • 一体化的数据库操作日志(binlog)

2. 高可用机制

MySQL有何注意事项

  • MySQL的配备安装
  • MySQL的监控
  • MySQL参数调优

DBA共青团和少先队越来越多的是承担私有DB云平台的建设。

开启binlog

  • 首要参数
log_bin = c:/tmp/mylog/mysql-bin
sql_log_bin = 1
sync_binlog = 1
  • 查看binlog

show binary logs;

行使他们自已的osc工具施行Online DDL(也是本次DTCC大会上lulu的享用核心),它最先用PHP开拓,虽已经开源,但实在不佳用,所以大约只在个中选用。那一个工具差别于pt-osc,相对来讲更有优势,比方能够制止接纳pt-osc最常境遇的大旨数据延迟难点。

劳动错误日志

  • 笔录实例运转运作进度中入眼音讯
  • 计划参数 log_error = /data/mysql_data/node-1/mysql.log
  • 剧情并不是全皆以破绽百出音信
  • 若是mysqld进度不能不荒谬运转第一查看错误日志

身处My罗克s上的着力职业入眼有:Feed、Post、社交图谱等读写混合业务。

MySQL semi-sync(半一同复制)

半合伙复制

  • 5.5合一到MySQL,以插件方式存在,要求独自安装
  • 管教工作提交后binlog起码传输到一个从库
  • 不保障从库应用完那些职业的binlog
  • 属性有必然的裁减,响适那时候候间更加长
  • 网络特别或从库宕机,卡住主库,直到超时或从库复苏

若个别情状下是因为特殊原因,出现从库全部挂掉的情事,会将整个央浼切到主库,由它扛起所有事体服务压力。

innobackupex使用

重在示例:

  • 全量备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf /dbbackup
  • 增量备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf --incremental --incremental-dir /dbbackup/2016-4-3_13:24:32 /dbbackup
  • 流格局备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf --stream=xbstream /dbbackup/ > /dbbackup/stream.bak
  • 相互备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf --parallel=4 /dbbackup/
  • 限流备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf --throttle=10 /dbbackup/
  • 调减备份
innobackupex --user=root --password=123456 --defaults-file=/etc/mysql/my.cnf --compress --compress-thread 4 /dbbackup/

5.1-MySQL日志系统

复制出错管理

常见:1062(主键冲突) 1032(记录不设有)
消除:手动管理
或:
跳过复制出错
set global sql_slave_skip_counter=1

基本知识 - 本地备份与长途备份

  • 地面备份
    • 在数据库服务器本地开展备份
  • 长途备份
    • 长途连接数据库进行备份

Redo log的作用

  • Redo log用在数据库崩溃会的故障复苏

MySQL主从复制安顿

骨干铺排要求条件

  • 主库开启binlog日志(设置log-bin参数)
  • 主从server-id不同
  • 从库服务器能连通主库

主导安插步骤:

  • 备份还原(mysqldump或xtrabackup)
  • 授权(grant replication slave on .)
  • 布局复制,并运营(change master to)
  • 查看主从复制音信(show slave statusG)

基本知识 - 备份周期

设想因素:

  • 数据库大小(决定备份时间)
  • 恢复生机速度要求(快捷or慢速)
  • 备份格局(全量or增量)

5.6-MySQL平日运转

innodb_io_capacity

  • InnoDB每趟刷多少个脏页,决定InnoDB存储引擎的吞吐技巧。
  • 在SSD等高质量存款和储蓄介质下,应该抓实该参数以加强数据库的性质。

还原误删除数据

case:误操作,删除数据忘记带完整条件,施行delete from user where age > 30 [and sex=male]

须要:将被删去的数量恢复生机

重整旗鼓前提:完整的数据库操作日志(binlog)

delete from user where sex='female';

# 首先需要找到binlog里的信息
mysqlbinlog -vv mysql-bin.000001
# 找出sql语句,然后写出反转sql语句

储存引擎事务日志

  • 一对存储引擎有器重做日志(redo log)
  • 如InnoDB, TokuDB等WAL(Write Ahead Log)机制存款和储蓄引擎
  • 日志随着事务commit优先长久化,确定保证特别恢复生机不丢数据
  • 日记顺序写品质较好

sync_binlog

  • 支配每便写入Binlog,是还是不是都亟需张开贰遍漫长化

数码修改及注意事项

  • 修改前切记做好备份
  • 开工作做,修改完检查好了再交付
  • 幸免贰次 修改大气数据,能够分批修改
  • 幸免业务高峰期做

汇总查询日志

  • 只要翻开将会记录系统中享有SQL语句
  • 布署参数
general_log = 1
general_log_file = /data/mysql_data/node-1/mysql-slow.log
  • 神蹟用于支援深入分析体系难点,对质量有影响

读优化

  • 理之当然使用索引对MySQL查询质量至关心爱护要
  • 适于的调解参数也能晋升查询品质

慢查询日志

  • 笔录试行时间抢先一定阈值的SQL语句
  • 配备参数
slow_query_log = 1
slow_query_log_file = /data/mysql_data/node-1/mysql-slow.log
long_query_time = 5
  • 用来解析系统中恐怕存在质量难点的SQL

binlog格式

  • 首要参数

binlog_format = {ROW|STATEMENT|MIXED}

  • 查看row模式的binlog内容

mysqlbinlog --base64-output=decode-rows -v c:/tmp/mylpg/mysql-bin.000001

RAID

  • RAID Redundant Array of Independent Disks
    • 接续后代条件里日常不太会用裸设备,日常会动用RAID卡对一块盘或多块盘做RAID
    • RAID卡会预先流出一块内部存款和储蓄器,来有限支撑数据高效存款和储蓄与读取
    • 常见的RAID类型有:RAID1、RAID0、RAID10和RAID5

怎么着制定备份计策

急需思量的要素

  • 数据库是或不是都是innodb引擎表 -> 备份格局,热备or冷备
  • 数据量大小 -> 逻辑备份or物理备份,全量or增量
  • 数据库本地球磁性盘空间拾壹分丰盛 -> 备份到本地or远程
  • 内需多块复苏 -> 备份频率 时辰or天

基本知识 - 备份内容

  • 数据
    • 数据文件或文本格式数据
  • 操作日志(binlog)
    • 数据库更换日志

什么确认保障职业的云浮

  • innoDB_flush_log_at_trx_commit 和 sync_binlog都设为1
  • 职业要和Binlog保证一致性

(加锁)-> xa_prepare, Fsync -> Write And Fsync Binlog -> InnoDB Commit, Fsync ->(释放锁)

基本知识 - 物理备份与逻辑备份

  • 物理备份
    • 以数据页的款式拷贝数据
  • 逻辑备份
    • 导出为裸数据还是SQL(insert)语句

RAID0 VS RAID1

  • RAID 0 - Block Striped. No Mirror. No Parity.
  • RAID 1 - Block Mirrored. No Stripe. No Parity.

怎么要调解参数

  • 昔不近些日子服务器之间的配置、质量不等同
  • 不等职业场景对数码的需要不雷同
  • MySQL的私下认可参数只是个参谋值,并不切合全体的使用场馆

数据恢复生机思路

  • 摩登一遍备份 + binlog复苏到故障时间点(适用于各个数据错过现象)
  • 钻井最终一遍备份到故障点之间的binlog获取有关SQL语句,构造反转SQL语句并选取到数据库(只是用于记录遗失,且binlog必得是row格式)

数据库恢复生机工具与命令

  • mysqldump备份 -> source恢复
  • xtrabackup备份 -> xtrabackup恢复
  • binlog备份 -> mysqlbinlog恢复

磁盘调解计策-write back

  • 数码写入cache既再次回到,数据异步的从cache刷入存款和储蓄介质

哪些时候需求还原数据

  • 硬件故障(如磁盘损坏)
  • 人为删除(如误删除数据、被黑)
  • 作业回滚(如游戏bug须求回档)
  • 平常必要(如安插镜像库、查看历史某时刻数据)

学科小结

  • 回复是已经非常的苦逼的营生,尽量制止做。我们要做多少卫士实际不是救火队员。(线上相应严刻把控权限,数据变动操作应优先测验,操作时做好备份)
  • 立竿见影备份(+binlog)是主要,对数据库定期备份是必得的
  • 备份是任何数据复苏的基本功

主导指数 - 备份用途

  • 数码计划
    • 应对硬件故障数据遗失
    • 应对人工或程序bug导致数据删除
  • 制作镜像库以供服务
    • 须求将数据迁移、计算深入分析等用途
    • 内需为线上数据创设八个镜像

通常关注怎么着MySQL Status

  • Com_Select/Update/Delete/Insert
  • Bytes_received/Bytes_sent
  • Buffer Pool Hit Rate
  • Threads_connected/Threads_created/Threads_running

5.3-MySQL数据苏醒

服务器上须要关爱怎么着

  • 硬件景况
  • 操作系统版本
  • CPU、网卡节约用电情势
  • 服务器numa设置
  • RAID卡缓存

小结

  • 常见职业相比较轻易,不过任何贰个操作都或者影响线上服务
  • 组合分歧碰着,区别供给选拔最合适的情势管理
  • 平时专门的学问应该求稳不求快,保险线上牢固是DBA的最大义务

常用工具及用法

  • mysqldump - 逻辑备份,热备
  • xtrabackup - 物理备份, 热备
  • Lvm/zfs snapshot - 物理备份
  • mydumper - 逻辑备份,热备
  • cp - 物理备份,冷备

MySQL运转施行

5.5-MySQL主从复制

binlog管理

  • 主要参数
max_binlog_size = 100MB
expire_logs_days = 7
  • binlog始终身成新文件,不会引用

  • 手工业清理binlog

purge binary logs to 'mysql-bin.000009';
purge binary logs before '2016-4-2 21:00:40'

Redo log有怎样难题

  • 若果写入频仍导致Redo log里对应的最老的多少脏页还从未刷新到磁盘,此时数据库将封堵,强制刷新脏页到磁盘
  • MySQL私下认可配置七个文本才10M,非常轻易写满,生产条件中应适当调解大小。

总结

  • 服务器配置要合理(内核版本、磁盘调解计谋、RAID卡缓存)
  • 眼观四路的监察类别,提前意识标题
  • 数据库版本要跟上,不要太新,也不用太老
  • 数据库品质优化:
    • 询问优化:索引优化为主,参数优化为辅
    • 写入优化:业务优化为主,参数优化为辅

询问日志的输出与公事切换

  • 日记输出参数

log_output={file|table|none}

  • 设若日志文件过大,能够定时截断并切换新文件

flush log;

表结构改换注意事项

  • 在低峰期做
  • 表结构退换是不是会有锁?(5.6包罗online ddl成效)
  • 选用pt-online-schema-change实现表结构改换
    • 能够幸免主从延时
    • 能够制止负载过高,能够限制速度

innodb_buffer_pool_size

  • InnoDB存款和储蓄引擎本人维护一块内部存款和储蓄器区域完结新老多少的更迭
  • 内部存款和储蓄器越大越能缓存越来越多的数据

RAID5 VS RAID10

  • RAID 5 - Block Striped. Distributed Parity.(起码三块盘,每块里有多个数据块和多少个校验块)
  • RAID 10 - Block Mirrored.(每两块盘做RAID1,然后再按组做RAID0,起码四块盘)

MySQL主从复制用途

  • 实时灾备,用于故障切换
  • 读写分离,提供查询服务
  • 备份,制止影响工作

常用工具及用法 - mysqldump

MySQL官方自带的命令行工具

一言九鼎示例:

  • 示范使用mysqldump备份表、库、实例
# 备份所有数据库
mysqldump -uroot -p123456 --socket=/var/run/mysqld/mysqld.sock --all-databases > /dbbackup/all_db.sql
# 备份指定的数据库
mysqldump -uroot -p123456 --socket=/var/run/mysqld/mysqld.sock --databases db2 > /dbbackup/db2.sql
# 备份单个表
mysqldump -uroot -p123456 --socket=/var/run/mysqld/mysqld.sock db2 t1 >/dbbackup/db2_t1.sql
# 还原表
mysql > source /dbbackup/db2_t1.sql
  • 身体力行使用mysqldump制作一致性备份
mysqldump --single-transaction -uroot -p123456 --all-databases > /dbbackup/add_db_2.sql
  • 演示使用mysqldump远程备份二个数据库
mysqldump -utest -ptest -h192.168.0.68 -P3306 --all-databases > /dbbackup/remote_bakall.sql
  • 亲自过问使用mysqldump导出多少为csv格式
mysqldump -uroot -p123456 --single-transaction --fields-terminated-by=, db1 -T /tmp

MySQL升级

  • 下载MySQL5.6安装包并配置MySQL5.6安装包安装路线
  • 闭馆MySQL5.5实例,修改部分参数,使用MySQL5.6软件运转
  • 执行MySQL5.6路径下mysql_upgrade脚本
  • 表达是不是中标进级

反转SQL语句

例:

t1(id primary key, a int)

反转SQL语句:

insert into t(id, a) values(1, 1) -> delete t1 where id=1 and a=1
update t1 set a=5 where id=1 -> update t1 set a=1 where id=1
delete from t1 where id=1 -> insert into t(id, a) values(1, 1)

MySQL线上配备

思索因素:

  • 本子选取, 5.1、5.5依然5.6?
  • 分段选取,官方社区版? percona server? Mariadb?
  • 安装方式,包安装?二进制包安装?源码安装?
  • 路子配置,参数配置(尽量模板化、规范化)
  • 三个实例四个库 or 四个实例单个库?

写优化

  • 表结构划设想计上选用自增字段作为表的主键
  • 只对方便的字段加索引,索引太多影响写入品质
  • 监督检查服务器磁盘IO情状,借使写延迟十分的大则须求扩容
  • 选用准确的MySQL版本,合理设置参数

安插MySQL并行复制

并行复制

  • 社区版5.6中新增
  • 相互之间是指从库三多线程apply binlog
  • 库等第并行应用binlog,同三个数据库退换依然串行的(5.7版并行复制基于事务组)

设置

set global slave_parallel_workers=10; 设置sql线程数为10

innoDB_flush_log_at_trx_commit

  • 决定InnoDB事务的基础代谢方式,一共有四个值:0,1,2
    • N=0 - 每隔一秒,把专门的学问日志缓存区的数码写到日志文件中,以至把日志文件的多少刷新到磁盘上(高效,但不安全)
    • N=1 - 各类专门的学问提交时候,把作业日志从缓存区写到日志文件中,而且刷新日志文件的数码到磁盘上,优先利用此格局保证数据安全性(低效,特别安全)
    • N=2 - 每专门的学问提交的时候,把事情日志数据从缓存区写到日志文件中;每间距一秒,但不必然刷新到磁盘上,而是留意操作系统的调解(高效,但不安全)

基本知识 - 全量备份与增量备份

  • 全量备份
    • 备份完整的数据库
  • 增量备份
    • 只备份上二回备份以来发出修改的多少

根本影响MySQL写质量的五个参数

  • innoDB_flush_log_at_trx_commit
  • sync_binlog

MySQL复制存在的标题

存在的题目

  • 长机宕机后,数据或者放弃
  • 从库唯有二个sql thread,主库写压力大,复制一点都不小概延时

化解措施:

  • 半协助进行理并答复制
  • 并行复制

innodb_thread_concurrency

  • innoDB内部并发调节参数,设置为0意味着不做决定
  • 一经出现央浼比较多,参数设置非常小,后跻身的乞请将会排队

Insert Buffer

  • 逐个读写 VS 随机读写
  • 放肆央浼品质远小于顺序央求

用尽了全力多的随机央浼合併为种种央浼才是增加数据库质量的尤为重要

  • MySQL从5.1本子开头支持Insert Buffer
  • MySQL5.5本子之后同有时候扶植update和delete的merge
  • Insert Buffer只对二级索引且非独一索引有效

Write Back VS Write Through

  • write Back 质量优越 Write Through
  • Write Through 比 Write Back安全性高

详见示例疏解

  • 苏醒某几条误删数据
  • 回复误删表、库
  • 将数据库复苏到指按期间点

MySQL日志的分类

  • 服务器日志
    • 笔录进度运行运作进程中的特殊事件,扶持深入分析MySQL服务蒙受的标题
    • 基于须求抓取特定的SQL语句,追踪品质恐怕存在的难题的政工SQL
  • 事务日志
    • 记录应用程序对数据的保有更动
    • 可用以数据恢复生机
    • 可用于实例间数据同步
分类 日志名称
服务器日志 服务错误日志
服务器日志 慢查询日志
服务器日志 综合查询日志
事务日志 存储引擎事务日志
事务日志 二进制日志

查看binlog内容

  • 日志
show binlog events in 'mysql-bin.000011';
show binlog events in 'mysql-bin.000011' from 60 limit 3;
  • mysqlbinlog工具
mysqlbinlog c:/tmp/mylog/mysql-bin.000001
--start-datetime | --stop-datetime
--start-position | --stop-position

xtrabackup备份原理

  • 基于InnoDB的crash-recovery功能
  • 备份时期允许客商读写,写必要发生redo日志
  • 从磁盘上拷贝数据文件
  • 从InnoDB redo log file实时拷贝走备份时期发生的保有redo日志
  • 还原的时候 数据文件 + redo日志 = 一致性数据

MySQL参数调优

  • 干什么要调解MySQL的参数
    • MySQL是通用数据库,但职业是产生的,暗许参数不能够满意全体业必得要
    • MySQL内部一些参数是在MySQL一些很老的本牛时候做的,也许在此之前是做限流和掩护用的,但随着机器品质的加强,那些爱惜类的参数也许会造成质量瓶颈

InnoDB事务日志重用机制

  • InnoDB事务日志选取两组文件交替重用

innobackupex备份中央流程

start xtrabackup_log -> copy .ibd; ibdata1 -> FLUSH TABLE WITH READ LOCK -> copy .FRM; MYD; MYI; misc files -> Get binary log position -> UNLOCK TABLES -> stop and copy xtrabackup_log

加权限及注意事项

  • 只给切合须求的最低权限
  • 幸免授权时修改密码
  • 幸免给使用账号super权限

导数据及注意事项

  • 多少最终方式(csv、sql文本 照旧直接导入某库中)
  • 导数据情势(mysqldump、select into outfile)
  • 导数据注意事项
    • 导出为csv格式要求file权限,况兼不得不数据库本地导
    • 幸免锁库锁表(mysqldump使用——single-transaction选项不锁表)
    • 幸免对事情产生影响,尽量在镜像库做

重振旗鼓误删表、库

case:业务被黑,表被删去了(drop teble user)

急需:将表复苏

前提:备份 + 备份以来完整binlog

innobackupex --apply-log /dbbackup/filename
# 查看binlog的位置点
cat xtrabackup_binlog_info
# 查看结束点
mysqlbinlog -vv filename

mysqlbinlog -vv --start-position=2556990 -- stop-position=2776338
mysqlbinlog -vv --start-position=2556990 -- stop-position=2776338 | mysql -uroot -p123456 --sock=/dbbackup/mysql_3309/mysqld.sock

基本知识 - 冷备份与热备份

  • 冷备份
    • 关闭数据库服务,完整拷贝数据文件
  • 热备份
    • 在不影响数据库读写服务的情景下备份数据库

本文由365bet网投发布于互联网,转载请注明出处:运行实行,MySQL运行经验

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。