【数据库】运维必备技能-MySQL篇

时间:2023-02-14 21:53:13

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

【数据库】运维必备技能-MySQL篇

 

 

运维必备技能-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)