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