运维管理 – 运维规范
 硬件、系统、引擎、字符集选择
 硬件
 性能差不多,关键是可靠性
 上线前烤机测试非常重要
 监控预警可有效预防故障
 避免使用外部阵列
 最好是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