mysql 数据库运维管理基础知识
DESCRIPTION
MySQL 数据库运维管理基础知识. 金官丁 136 6166 8096 [email protected]. 2013 年 7 月. 目录. 数据库版本选择 数据库监控体系 数据库备份恢复策略 大数据量 DML 操作的技巧 DDL 变更注意事项和变更技巧 在线数据库迁移的技巧. 数据库版本选择. MySQL 数据库分支. 数据库版本选择. MySQL 数据库版本种类. 版本号小于 5.0 : MySQL3.X MySQL4.X 等 MySQL5.0.X - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/2.jpg)
2
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 3: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/3.jpg)
3
数据库版本选择 MySQL 数据库分支
![Page 4: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/4.jpg)
4
数据库版本选择 MySQL 数据库版本种类 版本号小于 5.0 : MySQL3.X MySQL4.X 等 MySQL5.0.X
MySQL5.1.X+Build-in InnoDB 存储引擎 MySQL5.1.X+Plug-in InnoDB 存储引擎 MySQL5.5.X
MySQL5.6.X
MySQL Cluster 6.2.X 和 MySQL Cluster 6.3.X
MySQL Cluster 7.0.X
MySQL Cluster 7.1.X
MySQL Cluster 7.2.X
MySQL Cluster 7.3.X
![Page 5: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/5.jpg)
5
数据库版本选择 挑选版本的技巧
大版本发布,至少要大于或等于 18 个版本号
最新版本号倒退 1-2 个版本号
假设选择版本号为 MySQL5.5.31
看版本号 MySQL5.5.31 修复的 BUG 数和新增功能
看版本号 MySQL5.5.32 修复的 BUG 数
看版本号 MySQL5.5.30 修复的 BUG 数和新增功能
![Page 6: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/6.jpg)
6
数据库版本选择 版本定型的过程 内部的功能测试,以用到的 MySQL 功能为测试基准
针对用到的 MySQL 功能做基准的压力测试
内部开发环境试用
内部产品的功能和性能测试环境试用
稳定性要求不高且请求量一般的生产环境试用
稳定性要求中等且请求量高的生产环境试用
生产环境正式试用
![Page 7: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/7.jpg)
7
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
大表 DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 8: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/8.jpg)
8
数据库监控体系 数据库服务是否正常 数据库的性能 数据库的逻辑 IO 和物理 IO
数据库的业务量 数据库的数据与二进制日志的增长量 主机的 CPU 、 IO 、内存、网卡流量、数据增长 数据库的日志 主机系统的日志
![Page 9: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/9.jpg)
9
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
大表 DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 10: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/10.jpg)
10
数据库备份恢复策略 数据故障恢复指标 业务中断小于 10 秒钟,则在线热备 业务中断小于 5 分钟,则在线延迟恢复热备 业务中断小于 2 小时,则完整备份 + 二进制日志备份
数据库备份恢复规划 双主在线热备 双主在线热备 + 延迟恢复备库 每天完整备份 + 每小时二进制日志备份
数据库备份恢复软件组合 开源工具: mysqldump
开源工具: xtrabackup 或 收费工具: InnoDB hot backup
![Page 11: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/11.jpg)
11
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
大表 DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 12: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/12.jpg)
12
大数据量 DML 操作的技巧
大数据量 INSERT
大数据量 UPDATE
大数据量 DELETE
![Page 13: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/13.jpg)
13
大数据量 DML 操作的技巧
大数据量 INSERT
INSERT INTO … VALUES(),(),()….
LOAD DATA ….
写入临时表,再 INSERT … SELECT … 或循环判断写入
![Page 14: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/14.jpg)
14
大数据量 DML 操作的技巧
大数据量 UPDATE
SELECT 唯一字段,变更字段
查询结果集写入临时表
给临时表创建组合索引
循环临时表的每条记录
依据临时表的唯一字段值,更新目标表的相关字段值
![Page 15: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/15.jpg)
15
大数据量 DML 操作的技巧
大数据量 DELETE
若是定期且特殊规则删除大批量的数据,则建议采用分区表
若是定期且无特殊规则删除大批量的数据,则分区表 +UPDATE
若是上述 2 种方式无法使用,则可以主备轮流删除 + 数据服务
切换
若是上述 3 种方式无法使用
调整参数…,直接执行 DELETE 批量语句
先查询出要删除数据的唯一标识写入临时表,然后游标循环删除
![Page 16: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/16.jpg)
16
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
大表 DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 17: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/17.jpg)
17
大表 DDL 变更注意事项和变更技巧
变更注意事项
表级锁
InnoDB 存储引擎的数据字典锁
DDL 加速技巧
![Page 18: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/18.jpg)
18
大表 DDL 变更注意事项和变更技巧
变更注意事项 增加字段必须要有默认值例如 :ALTER TABLE tmp_test ADD COLUMN gmt_CreateDate TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00’;
增加的字段不能指定字段顺序,必须默认尾部增加模式例如:增加一个字段到表对象的头部ALTER TABLE tmp_test ADD COLUMN age TINYINT UNSIGNED NOT NULL DEFAULT 0 FIRST;
这是我们强烈反对的行为,可能导致需要更多时间用于数据重整,以及对复制同步可能造成数据错乱,应该写成:ALTER TABLE tmp_test ADD COLUMN age TINYINT UNSIGNED NOT NULL DEFAULT 0;
![Page 19: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/19.jpg)
19
大表 DDL 变更注意事项和变更技巧
变更注意事项 建议表设计都设置为 NOT NULL 且默认值 非 NULL 且有默认值的字段属性,有利于提高数据比对检索的性能,更加有利于索引结构的优化 同一表增加多个字段,不分多条语句,而应只用一条变更语句例如:ALTER TABLE tmp_test ADD COLUMN age TINYINT UNSIGNED NOT NULL DEFAULT 0;
ALTER TABLE tmp_test ADD COLUMN gmt_CreateDate TIMESTAMP NOT NULL DEFAULT ‘0000-00-00’;
应该改写成:ALTER TABLE tmp_test
ADD COLUMN age TINYINT UNSIGNED NOT NULL DEFAULT 0,
ADD COLUMN gmt_CreateDate TIMESTAMP NOT NULL DEFAULT '0000-00-00';
![Page 20: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/20.jpg)
20
大表 DDL 变更注意事项和变更技巧 表级锁
InnoDB 存储引擎的数据字典锁
![Page 21: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/21.jpg)
21
DDL 变更注意事项
DDL 加速技巧 DDL 操作的过程① 申请表对象加锁,只允许读不允许更新② 复制一份变更对象表的结构代码③ 原数据结构基础之上修改,新建一组临时文件, MyISAM 引擎和 InnoDB 引擎 的文件有所不同,分别为: #***.frm 、 #***.MYD 、 #***.MYI, #***.frm 、 #***.ibd
④ 变更对象表中的数据写入到临时表中⑤ 数据读写完毕的情况下,完全锁定被变更的表,并且删除被变更表⑥ 对临时文件执行 RENAME 操作⑦ 刷新数据字典信息⑧ 释放锁
![Page 22: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/22.jpg)
22
DDL 变更注意事项
DDL 加速技巧
调整的 SESSION 变量① 建议增加 SESSION 级别的 sort_buffer_size 值,以加速 DDL 过程 需要做的排序操作② 建议增加 SESSION 级别的 read_buffer_size 值,增加顺序读的速度③ 建议增加 SESSION 级别的 tmp_table_size 和 max_heap_table_size
值,增加内存缓存数据的能力④ 若是存在 InnoDB 引擎转MyISAM 的操作,建议在线增加 key_buffer_size 的值,增加索引数据的缓存能力
![Page 23: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/23.jpg)
23
DDL 变更技巧
大表删除
创建被删除表的硬链接
执行 DROP TABLE 语句
业务低谷期删除磁盘上真实的数据文件
![Page 24: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/24.jpg)
24
DDL 变更技巧
主备切换变更 业务低谷期,备库上创建连接,设置 SESSION.sql_log_bin=0
备库上执行 DDL 变更命令 待备库执行完毕,切换数据服务的主备库关系 新备库上创建连接,设置 SESSION.sql_log_bin=0
新备库上执行 DDL 变更命令 变更完毕
![Page 25: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/25.jpg)
25
数据库版本选择
数据库监控体系
数据库备份恢复策略
大数据量 DML 操作的技巧
大表 DDL 变更注意事项和变更技巧
在线数据库迁移的技巧
目录
![Page 26: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/26.jpg)
26
数据迁移服务
数据库实例迁移
![Page 27: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/27.jpg)
27
数据迁移服务
数据库迁移 目标数据库服务器安装、配置、初始化 目标数据库服务器加载完整备份与重新初始化 搭建目标数据库服务器与迁移数据库服务器之间的主从复制关系 暂停迁移数据库的业务应用访问 修改应用访问连接地址 目标数据库服务器提供数据服务 断开目标数据库服务器与迁移数据库服务器之间的主从复制关系 特殊技术删除迁移数据库服务器上多余的数据库
![Page 28: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/28.jpg)
28
数据迁移服务 异构数据库迁移到 MySQL 数据库 业务模型分析 数据容量预估与拆分规则 目标业务模型的 POC
数据库结构设计与优化 模拟生产环境的性能测试 全量数据导出与加载到 MySQL 数据库 实时同步原异构数据库的变更到 MySQL 数据库 数据读服务切换到 MySQL 数据库 数据写服务切换到 MySQL 数据库 数据服务质量检测与优化调整
![Page 29: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/29.jpg)
29
个人介绍 2003 年 -2006 年 主攻 SQL Server
2005 年 - 至今 主攻MySQL
2008 年 -2010 年至少帮助过 3000名不同技术人员解答疑难问题
2010 年 -2012 年培养 “门生”超过 30名,现分布各大互联网公司
2012 年 - 至今,以独立顾问身份,负责惠普 - 中国联通 U-Cloud
项目的数据库平台 DaaS 的架构设计、研发和实施 曾加盟阿里巴巴,推动数据库平台转型 MySQL ,组建 MySQL
团队、规范、标准、流程等,参与研发的项目超过 50 个 开心农场早期员工,日活跃用户数超过 5000万,负责技术研发
部 现任上海热璞网络科技有限公司的 CTO兼创始人
![Page 30: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/30.jpg)
30
业务范围:数据库服务 数据迁移 运维服务 整体解决方案软件开发 企业培训
服务宗旨:解决企业当下的疑难帮助企业规避未来可能发生的故障借助技术和经验为企业降低成本
企业文化:诚信是立足之本,口碑是客户认可的标志, 技术、服务、信誉是核心竞争力
上海热璞网络科技有限公司
![Page 31: MySQL 数据库运维管理基础知识](https://reader036.vdocuments.site/reader036/viewer/2022081415/5681309d550346895d968da7/html5/thumbnails/31.jpg)
财务管理渗透于业务活动信息系统支撑流程化管理
李福申
中国联通 集团副总裁
2011 年 4 月 27 日
谢谢!