• L011-oldboy-mysql-dba-lesson11


     

     

    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.分库分表策略

     

     

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

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

    2scale-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 statusG

     

    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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     





  • 相关阅读:
    mysql高效分页
    mybatis插入值为空时需要制定类型
    NoClassDefFoundError
    mybatis动态sql中的两个内置参数(_parameter和_databaseId)
    Java位运算在程序设计中的使用:位掩码(BitMask)
    基于netty的聊天室(保持和获取客户端channel)
    Netty自定义协议半包编解码
    位运算基础
    JAVA加密系列(四)- 位运算加密(异或加密)
    位运算基础
  • 原文地址:https://www.cnblogs.com/bolinzhihua/p/5650824.html
Copyright © 2020-2023  润新知