mysql设计规范之运维规范

﹥>﹥吖頭↗ 提交于 2020-03-01 21:06:22

运维管理 – 运维规范
硬件、系统、引擎、字符集选择
硬件
性能差不多,关键是可靠性
上线前烤机测试非常重要
监控预警可有效预防故障
避免使用外部阵列
最好是2U机型,并且配备RAID卡(with BBU)
系统
一般选择RHEL、CentOS
拒绝使用32位系统
不追新,稳定、高性能压倒一切
版本一致,批量部署,管理方便
硬件、系统、引擎、字符集选择
引擎
默认使用InnoDB
可考虑MyISAM/InfiniDB/Infobright
Blackhole可用于复制中继
字符集
默认使用latin1
减少使用utf8
避免CJK问题
mysqldump字符集参数
连接串设置

安装配置
所有磁盘组建大阵列,不降低IOPS
默认阵列级别为:raid 1+0
结合业务特征设置主机名,唯一命名
合理利用hosts/dns,可用于应用授权管理
master和slave命名区分开
/tmp使用/dev/shm & tmpfs
swap至少是16G
部署基本工具包:sysstat、oprofile等

监控预警
重点:先可用性而后才是性能
选择自己熟悉的:nagios、zabbix、cacti
作为补充,需要增加辅助监控
数据安全
关闭公网,只留私网
密码足够长度、复杂度
开启iptables策略
只开放必要的授权许可
使用普通账号管理mysqld(结合sudo)
集成定期安全检查到监控系统中

备份恢复
利用slave执行备份
定期全备+及时增备
不定期随机做恢复测试
二进制内容备份使用 --hex-blob
备份方式:mysqldump VS XtraBackup
如何快速备份/恢复?(并发?快照?)

高可用
Keepalived + LVS
Heartbeat + LVS
Master + Slave
多Master共享存储
故障处理
复制报错:主键冲突
硬件、系统崩溃:数据页损坏
误操作:数据误删除
硬件故障:阵列卡(掉线、IO性能下降)、CPU、内存

运维管理 – 工具集

Percona、其他工具
Xtrabackup
ioprofile
pt-online-schema-change
pt-table-checksum
pt-query-digest
mysqldumpslow
mysqlsla

运维管理 – FAQ
数据库安装完后,无法启动
首先,看日志
一般因为权限不正确、未初始化、配置选项不正确
如何进行基准、压力测试
基准测试:tpcc、sysbench
压力测试:mysqlslap、前端加压
如何在线动态抓取SQL
tcpdump -i eth0 -s 0 -l -w - dst port 3306|strings
如何执行在线热备
mysqldump --single-transaction或Xtrabackup
运维管理 – 运维规范
硬件、系统、引擎、字符集选择
硬件
性能差不多,关键是可靠性
上线前烤机测试非常重要
监控预警可有效预防故障
避免使用外部阵列
最好是2U机型,并且配备RAID卡(with BBU)
系统
一般选择RHEL、CentOS
拒绝使用32位系统
不追新,稳定、高性能压倒一切
版本一致,批量部署,管理方便
硬件、系统、引擎、字符集选择
引擎
默认使用InnoDB
可考虑MyISAM/InfiniDB/Infobright
Blackhole可用于复制中继
字符集
默认使用latin1
减少使用utf8
避免CJK问题
mysqldump字符集参数
连接串设置

安装配置
所有磁盘组建大阵列,不降低IOPS
默认阵列级别为:raid 1+0
结合业务特征设置主机名,唯一命名
合理利用hosts/dns,可用于应用授权管理
master和slave命名区分开
/tmp使用/dev/shm & tmpfs
swap至少是16G
部署基本工具包:sysstat、oprofile等

监控预警
重点:先可用性而后才是性能
选择自己熟悉的:nagios、zabbix、cacti
作为补充,需要增加辅助监控
数据安全
关闭公网,只留私网
密码足够长度、复杂度
开启iptables策略
只开放必要的授权许可
使用普通账号管理mysqld(结合sudo)
集成定期安全检查到监控系统中

备份恢复
利用slave执行备份
定期全备+及时增备
不定期随机做恢复测试
二进制内容备份使用 --hex-blob
备份方式:mysqldump VS XtraBackup
如何快速备份/恢复?(并发?快照?)

高可用
Keepalived + LVS
Heartbeat + LVS
Master + Slave
多Master共享存储
故障处理
复制报错:主键冲突
硬件、系统崩溃:数据页损坏
误操作:数据误删除
硬件故障:阵列卡(掉线、IO性能下降)、CPU、内存

运维管理 – 工具集

Percona、其他工具
Xtrabackup
ioprofile
pt-online-schema-change
pt-table-checksum
pt-query-digest
mysqldumpslow
mysqlsla

运维管理 – FAQ
数据库安装完后,无法启动
首先,看日志
一般因为权限不正确、未初始化、配置选项不正确
如何进行基准、压力测试
基准测试:tpcc、sysbench
压力测试:mysqlslap、前端加压
如何在线动态抓取SQL
tcpdump -i eth0 -s 0 -l -w - dst port 3306|strings
如何执行在线热备
mysqldump --single-transaction或Xtrabackup
运维管理 – 运维规范
硬件、系统、引擎、字符集选择
硬件
性能差不多,关键是可靠性
上线前烤机测试非常重要
监控预警可有效预防故障
避免使用外部阵列
最好是2U机型,并且配备RAID卡(with BBU)
系统
一般选择RHEL、CentOS
拒绝使用32位系统
不追新,稳定、高性能压倒一切
版本一致,批量部署,管理方便
硬件、系统、引擎、字符集选择
引擎
默认使用InnoDB
可考虑MyISAM/InfiniDB/Infobright
Blackhole可用于复制中继
字符集
默认使用latin1
减少使用utf8
避免CJK问题
mysqldump字符集参数
连接串设置

安装配置
所有磁盘组建大阵列,不降低IOPS
默认阵列级别为:raid 1+0
结合业务特征设置主机名,唯一命名
合理利用hosts/dns,可用于应用授权管理
master和slave命名区分开
/tmp使用/dev/shm & tmpfs
swap至少是16G
部署基本工具包:sysstat、oprofile等

监控预警
重点:先可用性而后才是性能
选择自己熟悉的:nagios、zabbix、cacti
作为补充,需要增加辅助监控
数据安全
关闭公网,只留私网
密码足够长度、复杂度
开启iptables策略
只开放必要的授权许可
使用普通账号管理mysqld(结合sudo)
集成定期安全检查到监控系统中

备份恢复
利用slave执行备份
定期全备+及时增备
不定期随机做恢复测试
二进制内容备份使用 --hex-blob
备份方式:mysqldump VS XtraBackup
如何快速备份/恢复?(并发?快照?)

高可用
Keepalived + LVS
Heartbeat + LVS
Master + Slave
多Master共享存储
故障处理
复制报错:主键冲突
硬件、系统崩溃:数据页损坏
误操作:数据误删除
硬件故障:阵列卡(掉线、IO性能下降)、CPU、内存

运维管理 – 工具集

Percona、其他工具
Xtrabackup
ioprofile
pt-online-schema-change
pt-table-checksum
pt-query-digest
mysqldumpslow
mysqlsla

运维管理 – FAQ
数据库安装完后,无法启动
首先,看日志
一般因为权限不正确、未初始化、配置选项不正确
如何进行基准、压力测试
基准测试:tpcc、sysbench
压力测试:mysqlslap、前端加压
如何在线动态抓取SQL
tcpdump -i eth0 -s 0 -l -w - dst port 3306|strings
如何执行在线热备
mysqldump --single-transaction或Xtrabackup
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!