L011-oldboy-mysql-dba-lesson11

[root@ab01 ~]# mysqladmin -i 1 -r status     #mysqladmin监控的命令

Uptime: 674695  Threads: 47  Questions: 1417844  Slow queries: 118  Opens: 102457  Flush tables: 1393  Open tables: 4  Queries per second avg: 2.101

Uptime: 674696  Threads: 47  Questions: 1417844  Slow queries: 118  Opens: 102457  Flush tables: 1393  Open tables: 4  Queries per second avg: 2.101

[root@ab01 ~]# mpstat -P ALL 1 1000

Linux 2.6.32-431.el6.x86_64 (ab01.com)  06/16/2016      _x86_64_        (1 CPU)

03:55:19 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle

03:55:20 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

03:55:20 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

特别重点

给出表的数据类型的优化建议,具体百度:PROCEDURE ANALYSE

MySQL 5.6 基于GTID及多线程的复制详解:

http://freeloda.blog.51cto.com/2033581/1282879

1.分库分表策略

出现性能瓶颈的解决思路:

(1)scale-up:先考虑硬件能否解决。

(2)scale-out:sharding

Scale-up->scale-out->scale-up

sharding分两种:

1.垂直拆分(功能拆分)

2.水平拆分

先做1,在做2

水平拆分:

1.hash(uid/mod 4,port: mod 128;总共4*128张表)

2.range(1-1000万,1001-2000万,....)

3.lookup table

>=1000万 1port

<1000>=2000 2port

>2000<=3000 4port

4.几种策略混合使用

hash + db(时间维度)

UID:

port3306

db(tb_1410,tb_1411,tb_1412)

port3307

db(tb_1410,tb_1411,tb_1412)

port3308

db(tb_1410,tb_1411,tb_1412)

port3309

db(tb_1410,tb_1411,tb_1412)

hash+hash

port3306

db(tb_1,tb_2,tb_3....tb_128)

port3307

db(tb_1,tb_2,tb_3....tb_128)

port3308

db(tb_1,tb_2,tb_3....tb_128)

port3309

db(tb_1,tb_2,tb_3....tb_128)

partition key

mysql监控:

1.应用日志(>10s的语句记录下来)

2.mysql监控

3.OS监控

MySQL监控:

1.是否存活

2.sql_thread, io_thread(yes)

3.second_behied_master(insert heatbeat)

4.使用业务账号进行insert test判断是否可写。

5.pool buffer, select/update/delete/create每秒查询量。

6.连接数.......show global status\G

OS监控

1.ping

2.io,swap,disk, cpu, load, net_in/out

监控的视角:业务视角,管理员视角

监控数据以API的方式提供,业务可以自己的维度展示。

MySQL的安全管理

1.服务器端

2.系统级来说。

服务器端:

1.使用内网(bind-address=internal ip)。

2.username@ip password,权限给最小权限,包括复制账号。

3.要注意备份安全。

4.root一定要设置密码,并且不能在程序里面使用root.

5.数据的导入导出流程。

6.在SQL注入方面要建议开发做prepare statement,同时对一些输入框做比较多的判断。

7.用户登录权限限制。

8.重要的数据要加密存储。

系统级:

1.账号管理,最好堡垒机。

2.关闭没有的服务。

3.建议iptables开启。

4.时长关注或者订阅安全漏洞报告。

5.密码要复杂,有时可以22换了。

MySQL升级注意什么?

版本选择:

用最新版本,或使用最多版本。

mysql5.0->mysql5.1->mysql5.5.xx

先把slave升级为高版本,保持和主库replication。

然后做切换。

如果有问题,需要用逻辑备份导出数据,然后再新版本上恢复。

mysqldump > XXX.sql

mysql> source XXX.sql

升级步骤:

1.利用线上数据测试有没有问题。

2.最好也做一次alter table xxx engine=innodb;

3.mysql55/mysql56目录。

4.mysql_upgrade

5.启动时观察error log。

6.如果出现问题,使用老版本启动。

7.集群方面的,先升级slave,再升级主。

8.测试周边工具是否可用。

09

L011-oldboy-mysql-dba-lesson11的更多相关文章

  1. 我心中的MySQL DBA

    原文网址链接:http://wangwei007.blog.51cto.com/68019/1718311 MySQL是一个跨平台的开源关系型数据库管理系统,目前MySQL被广泛地应用在Interne ...

  2. 招聘前端、Java后端开发、测试、Mysql DBA

    公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...

  3. MySQL DBA的个人修养

    做为一个MySQL DBA,必须具有以下的素质: 一, 身体素质 DBA必须接收和处理各种报警,不论是中午在吃饭或者凌晨三点已经进入深度睡眠.接到报警需要立即进入应急状态,找到电脑,联上网络,快速定位 ...

  4. MySQL DBA面试全揭秘

    来源:http://ourmysql.com/archives/1426 本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA ...

  5. Mysql DBA 20天速成教程,DBA大纲

    Mysql DBA 20天速成教程 基本知识1.mysql的编译安装2.mysql 第3方存储引擎安装配置方法3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点4.字符串编 ...

  6. MySQL DBA教程:Mysql性能优化之缓存参数优化

      在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感 ...

  7. MySQL DBA修炼秘籍

    0.导读 本文主要写给那些立志成为MySQL DBA,以及正在学习MySQL的同行们,结合个人及业内其他同行的职业发展经历给大家一些参考,如何成为合格的MySQL DBA. 1.什么是MySQL DB ...

  8. “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX

    "快的打车"创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - ...

  9. 【转】MYSQL DBA知识了解-面试准备

    http://www.itpub.net/forum.php?mod=viewthread&tid=1825849 公司招聘MySQL DBA,也面试了10个2年MySQL DBA工作经验的朋 ...

  10. MySQL DBA工作角色和职责介绍

    MySQL DBA分架构DBA,运维DBA和开发DBA三种角色,职责介绍如下:

随机推荐

  1. apue.h

    [root@localhost unix_env_advance_prog]# cat apue.h #ifndef _APUE_H #define _APUE_H #define _XOPEN_SO ...

  2. ASP.NET 去除所有HTML标记的方法

    using System.Text.RegularExpressions /// <summary> /// 去除HTML标记 /// </summary> /// <p ...

  3. javascript数组总结(0504)

    一:数组复制 //方法一//slice()函数将会返回一个新的数组对象 var arr = [1,2,3,4]; var clone = arr.slice(0); arr.splice(1,2);/ ...

  4. C# 之 未能映射路径

    在开发中遇到此问题,如下原码,报错:未能映射路径: string filename = Server.MapPath("/logs/log.txt"); 解决方法,从根目录开始: ...

  5. python multiprocess不能完全关闭socket的验证

    近日项目有原来的多线程升级成为多进程模型后,但出现了个问题,在持续运行一天左右系统处理能力开始变慢,并不时打印以下信息: too many opened files 修改ulimit中open fil ...

  6. [改善Java代码]小心switch带来的空值异常

    使用枚举定义常量时,会伴有大量的switch语句判断,目的是伪类每个枚举项解释其行为,例如: public class Client { public static void main(String[ ...

  7. poj 3278 Catch That Cow 优化深搜

    这题的思想很简单,就是每次找出队列里面花费时间最少的来走下一步,这样当我们找到k点后,所花费的时间一定是最少的. 但要用一个标记数组vis[200010],用来标记是否走过.否则会内存溢出. #inc ...

  8. 【ANT】ant概述

    ANT是集软件测试.编译.打包.部署等自动化构建工具,是Apache软件基金会JAKARTA目录中的一个子项目,具有以下优点: 跨平台性 ANT是由Java语言编写,具有很好的跨平台性. 操作简单 A ...

  9. ASP.NET播客(留言时间,投票IP,留言限字数,上传视频)

    留言发布时间功能: 界面: 前台代码: 在Datalist控件中: 在<%#getIsDate(Convert.ToString(Eval("issuanceDate"))) ...

  10. 牛客_Java_值传递(拷贝)不该表原来变量+传引用的话会一起改变

    总结: 许多编程语言都有2种方法将参数传递给方法------按值传递和按引用传递.  与其他语言不同,Java不允许程序员选择按值传递还是按引用传递各个参数,基本类型(byte--short--int ...