数据库
首页 > 数据库> > 赞!7000 字学习笔记,MySQL 从入到放弃

赞!7000 字学习笔记,MySQL 从入到放弃

作者:互联网

赞!7000 字学习笔记,MySQL 从入到放弃

MySQL数据库简介

MySQL近两年一直稳居第二,随时有可能超过Oracle计晋升为第一名,因为MySQL的性能一直在被优化,同时安全机制也是逐渐成熟,更重要的是开源免费的。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

如果不会安装MySQL请移步:MySQL服务安装

MySQL InnoDB存储引擎

InnoDB存储引擎的优势:

1、事物(Transaction)
2、MVCC(多版本并发控制)
3、行级锁(Row-level Lock)
4、支持外键
5、ACSR(Auto Crrash safe Recovery)自动的故障安全恢复
6、支持热备份

MySQL复制集群原理与实战

MySQL复制有两种方法:

  • 传统方式:基于主库的bin-log将日志事件和事件位置复制到从库,从库再加以 应用来达到主从同步的目的。

MySQL数据库主从同步实战过程

MySQL 主从同步架构中你不知道的“坑”(上)

MySQL 主从同步架构中你不知道的“坑”(下)

数据备份多种方式:

送你一份生产数据库备份方案高逼格企业级MySQL数据库备份方案

MySQL数据库物理备份方式Xtrabackup实现数据的备份与恢复

MySQL复制有多种类型:

MySQL主从复制延迟解决方案高可用数据库主从复制延时的解决方案

MySQL高可用架构设计与实战

先来了解一下MySQL高可用架构简介:浅谈MySQL集群高可用架构
MySQL高可用方案:MySQL 同步复制及高可用方案总结
官方也提供一种高可用方案官方工具|MySQL Router 高可用原理与实战

MHA

MHA高可用方案实战MySQL集群高可用架构之MHA

MGR

MySQL性能优化

史上最全的MySQL高性能优化实战总结!
MySQL索引原理:MySQL 的索引是什么?怎么优化?

MySQL表分区介绍一文彻底搞懂MySQL分区

MySQL分库分表

数据库分库分表概述数据库分库分表,何时分?怎样分?

Mysql分库分表方案MySQL 分库分表方案,总结的非常好!

Mysql分库分表的思路解救 DBA—数据库分库分表思路及案例分析

MySQL数据库读写分离高可用

海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力。

MySQL读写分离高可用架构实战案例:

ProxySQL+Mysql实现数据库读写分离实战

Mysql+Mycat实现数据库主从同步与读写分离

MySQL性能监控

MySQL性能监控的指标大体可以分为以下4大类:

对于MySQL性能监控,官方也提供了相关的服务插件:MySQL-Percona,下面简单介绍一下插件的安装


[root@db01 ~]# yum -y install php php-mysql

[root@db01 ~]# wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm

[root@db01 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

Preparing... ################################# [100%]

Updating / installing...

   1:percona-zabbix-templates-1.1.8-1 ################################# [100%]

Scripts are installed to /var/lib/zabbix/percona/scripts

Templates are installed to /var/lib/zabbix/percona/templates

最后,可以配合其它监控工具来实现对MySQL的性能监控。

MySQL服务器配置插件:


[root@db01 ~]# sed -i '30c $mysql_user = "monitor";' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
[root@db01 ~]# sed -i '31c $mysql_pass = "123456";' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
[root@db01 ~]# sed -i '33c $mysql_socket = "/tmp/mysql.sock";' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

测试是否可用( 可以从MySQL中获取到监控值 )

[root@db01 ~]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
gg:12

# 确保当前文件的 属主 属组 是zabbix,否则zabbix监控取值错误。
[root@db01 ~]# ll -sh /tmp/localhost-mysql_cacti_stats.txt
4.0K -rw-rw-r-- 1 zabbix zabbix 1.3K Dec 5 17:34 /tmp/localhost-mysql_cacti_stats.txt

移动zabbix-agent配置文件到 /etc/zabbix/zabbix_agentd.d/目录


[root@db01 ~]# mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@db01 ~]# systemctl restart zabbix-agent.service

导入并配置Zabbix模板与主机:
默认模板监控时间为 5分钟 ( 当前测试修改为 30s) 同时也要修改Zabbix模板时间

# 如果要修改监控获取值的时间不但要在zabbix面板修改取值时间,bash脚本也要修改。
[root@db01 scripts]# sed -n '/TIMEFLM/p' /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
if [ `expr $TIMENOW - $TIMEFLM` -gt 300 ]; then   
# 这个 300 代表 300s 同时也要修改。

默认模板版本为 2.0.9,无法在4.0版本使用,可以先从3.0版本导出,然后再导入4.0版本 。

其实,在实际生产过程中,还是有相关的专业监控数据库的第三方开源软件的,民工哥之前也写过相关的文章,今天发出来供大家参考:强大的开源企业级数据库监控利器Lepus

MySQL用户行为安全

学完了就需要出去练一练,最后给大家一些企业面试题供大家练练手:24 个必须掌握的数据库面试问题!

注:本文由作者原创投稿,老A- 运维背锅侠,来自山东省,从事一线应用运维与数据库运维。擅长 MySQL 数据库,曾就职于山东省计算中心(国家超级计算济南中心)云计算部门。现就职于国内MySQL数据库知名厂商。原文:https://dbawsp.com/626.html,民工哥进行相关改编,版权归原作者所有

end

标签:数据库,mysql,从入,索引,zabbix,MySQL,7000,备份
来源: https://blog.51cto.com/15127557/2665127