运维必备技能-MySQL篇
By Issay
目录
认识MySQL
安装和使用MySQL服务
为MySQL把脉
解决常见的问题
使用DB运营工具分析业务的健康
日常运维工作的注意事项与告警处理
小巧但强大的数据库管理系统
小巧但强大的数据库管理系统
关系型数据库
Cs结构
结构化查询语言(SQL)
字符集
存储引擎
Free & more
感性认识MySQL-ps
感性认识MySQL-ls
ls /usr/local/mysql/
bin/ include/ info/ lib/ libexec/ man/ mysql-test/ share/ sql-bench/ var
ls /etc/my.cnf
/etc/my.cnf
感性认识MySQL-bin
ls /usr/local/mysql/bin/
comp_err* mysql_client_test* mysql_setpermission* mysqld_multi* mysqltest*
isamchk* mysql_config* mysql_tableinfo* mysqld_safe* pack_isam*
isamlog* mysql_convert_table_format* mysql_tzinfo_to_sql* mysqldump* perror*
msql2mysql* mysql_create_system_tables* mysql_waitpid* mysqldumpslow* replace*
my_print_defaults* mysql_explain_log* mysql_zap* mysqlhotcopy* resolve_stack_dump*
myisam_ftdump* mysql_find_rows* mysqlaccess* mysqlimport* resolveip*
myisamchk* mysql_fix_extensions* mysqladmin* mysqlmanager*
myisamlog* mysql_fix_privilege_tables* mysqlbinlog* mysqlmanager-pwgen*
myisampack* mysql_install_db* mysqlbug* mysqlmanagerc*
mysql* mysql_secure_installation* mysqlcheck* mysqlshow*
感性认识MySQL-netstat
netstat -anp|grep 3306
tcp 0 0 172.16.0.1:3306 0.0.0.0:* LISTEN -
感性认识MySQL-lsof
mysqld 378 mysql mem REG 8,3 5551953 2359319 /usr/local/mysql/libexec/mysqld
mysqld 378 mysql mem REG 8,1 35866 121575 /lib/libnss_compat-2.3.4.so
mysqld 378 mysql mem REG 8,1 92508 121574 /lib/libnsl-2.3.4.so
mysqld 378 mysql mem REG 8,1 1357414 121568 /lib/libc-2.3.4.so
mysqld 378 mysql mem REG 8,1 100449 121565 /lib/ld-2.3.4.so
mysqld 378 mysql mem REG 8,1 41633 121579 /lib/libnss_nis-2.3.4.so
mysqld 378 mysql mem REG 8,1 41351 121577 /lib/libnss_files-2.3.4.so
mysqld 378 mysql mem REG 8,1 21024 121576 /lib/libnss_dns-2.3.4.so
mysqld 378 mysql mem REG 8,1 73805 121583 /lib/libresolv-2.3.4.so
从源码编译安装MySQL
快速创建MySQL实例
本文MySQL实例的定义 - Host:port
一个目录、一个配置文件、几个脚本
快速创建MySQL实例-配置
MySQL服务的启动和关闭
绑定在内网ip启动
mysql/bin/mysqld_safe &
mysql/bin/mysqladmin –uroot shutdown
使用tsh启动mysql服务(start.sh)
如何在多实例服务器上连接MySQL
指定socket 文件连接
指定ip和port连接
如何在多实例服务器上连接MySQL
mysql –uuser –S /tmp/my3307.sock
mysql –uuser –h172.16.0.1 –P3307
mysql –uuser –P3307 (不正确的用法)
数据文件
数据文件
每个表在磁盘上存储成三个文件。文件的名字以表的名字开始,扩展名表示文件类型。
文件存储表定义扩展名为: .frm = format (schema) file
数据文件的扩展名为:.MYD = data file
索引文件的扩展名为:.MYI = index file 。
表的磁盘占用情况既可以通过操作系统查相应的文件(夹)的大小得知;
SHOW TABLE STATUS
配置文件-优先顺序
配置文件:my.cnf
/etc/my.cnf (全局)
datadir/my.cnf
~/.my.cnf
(如同一配置参数都存在上面的文件里,则最终生效的是~/.my.cnf的配置参数)
数据的导入导出
mysql、source、load data
mysqldump
数据备份-slave热备
数据备份-slave热备
建立DB热备操作演示
为MySQL把脉
Show processlist
Show status
Show variables
字符集处理
--default-character-set=utf8
binary
引擎选择与转换
mysqldump + 重建表结构 + 导入数据
ALTER TABLE tbl ENGINE = innodb;
解决常见的问题
2.低版本mysql客户端连接错误
解决常见的问题-低版本客户端错误
mysql4.1以后,密码的采用了新的加密算法
SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('mypassword');
解决常见的问题
3.binlog清理
解决常见的问题- binlog清理
mysql my.cnf: expire_logs_days = 5
mysql>purge master logs to ‘T-bin.000293’;
不建议使用rm命令直接删除binlog文件(危险)
解决常见的问题
5.回收innodb表空间
解决常见的问题-回收表空间
MyISAM表: optimize table ‘tbl’;
Innodb: mysqldump + mysql(删除ibdata重建)
解决常见的问题-其他
详看附件
使用DB管理平台和工具
表优化信息
授权管理
性能指标
热备同步信息
…
使用DB管理平台和工具-授权管理
使用DB管理平台和工具-性能指标
掌握业务DB性能指标的变化情况和趋势
使用DB管理平台和工具-性能指标
掌握业务DB性能指标的变化情况和趋势
使用DB管理平台和工具-备机信息
了解备机信息,关注热备状态
使用DB管理平台和工具-连接数信息
关注DB连接数的使用情况
使用DB管理平台和工具-表优化
表优化与碎片整理
使用DB管理平台和工具-表空间使用
使用DB管理平台和工具-自增字段
使用DB管理平台和工具-文件句柄
使用DB管理平台和工具-慢查询语句
与开发一起消灭慢查询语句
基础监控告警类型和处理
慢查询
最大连接数告警
数据库不可连
打开文件数
运维统计对账SQL语句
If、ifnull
case when
…
日常运维的一些注意事项-1
启动mysql绑定在内网ip
避免同时打开多个mysql终端窗口,在正式环境、测试环境来回切换时很可能误变更的正式环境的数据
手工变更正式环境DB数据前,先备份需要变更的表数据
建表时考虑业务的统计分析,最好加上变更时间戳字段
表设计成千分表或百分表,tb_xxx_00,tb_xxx_999(减少表操作的冲突,也方便日后的运营维护)
日常运维的一些注意事项-2
如果一个Db中包含Latin1、gbk、utf8 多种字符集的表,在全量导出到入数据时应该使用utf8字符集
建表时根据业务的特性预估数据的读写比例选择myisam或innodb引擎(游戏类业务建议使用innodb)
尽可能地使用简单的sql语句,select * from t where id=xxx
运维脚本从冷/热备机拉取数据
类如修改表结构,建立新索引这些锁表的操作,一定要做好评估,选择合适的时间和策略,争取把对业务用户体验的影响减少到最低
本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)