mysql数据库运维
- 数据库
- 2024-12-04
- 1

大家好,今天小编来为大家解答以下的问题,关于mysql数据库运维,MySQL数据库运维工作内容这个很多人还不知道,现在让我们一起来看看吧!文章目录: 1、mysql数据...
大家好,今天小编来为大家解答以下的问题,关于mysql数据库运维,MySQL数据库运维工作内容这个很多人还不知道,现在让我们一起来看看吧!
文章目录:
- 1、mysql数据库运维中高可用性,其年度停机时间大约为
- 2、MySQL运维实战之ProxySQL|ProxySQL和配置
- 3、MySQL运维实战|SQL_MODE之ON_FULL_GROUP_BY
- 4、深入浅出MySQL数据库开发、优化与管理维护作者简介
mysql数据库运维中高可用性,其年度停机时间大约为
分钟。MGR是为金融场景设计的,例如:支付,证券交易,保险,银行等等。因为这些场景要求数据必须做到零丢失,数据库可用性在4个9,甚至5个9年度停机时间不超过5分钟。MySQLGroupReplication,简称MGR,它是MySQL推出的基于paxos分布式一致性协议的状态机,实现了分布式下数据的最终一致性。
例如MySQL的主从集群中中其实读写会有延时的,它其实就是有一个短的时间内读写不一致。这个是数据冗余,带来的一个副作用。 第二个点是数据冗余往往会降低写入的效率,因为数据同步也是需要消耗资源的。你看单点写入,如果加了两个从库之后,其实写入的效率会受影响。
理想情况下,始终保持,但不可避免的故障可能导致服务中断。目标通常设定为999%,即年停机时间不超过76小时。例如,百度搜索的高可用性使其成为衡量网络连通性的标准,当人们能访问baidu.com,他们认为网络畅通,反之则可能怀疑网络问题。实现高可用的关键在于设计的冗余和自动故障转移机制。
“高可用性”(High Availability)通常来描述一个经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。对于高可用这个概念,基本功是程序异常处理,仅能在正常情况下运行的程序不叫高可用,在异常情况下仍然可用才行。
优点方面,MHA能够迅速进行主服务器故障转移和从服务器晋升,通常在10-30秒内完成,从而最小化停机时间。它支持基于GTID的模式,在进行故障转移时不易产生数据丢失,有助于保证数据一致性。
高可用性。如果一个服务器出现故障,备用服务器会自动接替主服务器角色并向客户端提供数据服务。故障转移的时间非常短,几乎不影响客户端的体验。数据安全。一主两备架构实现了MySQL实时数据备份,保证了数据库在崩溃时的数据完整性。大规模写入支持。
MySQL运维实战之ProxySQL|ProxySQL和配置
**配置文件**:默认配置文件位于 `/etc/proxysql.cnf`,可使用命令行参数 `-c` 指定配置文件。`datadir` 参数定义了内置数据库的存放路径。重要的是,初次启动Proxysql时,配置文件中的更改才生效。如果内置数据库已存在,后续只会从数据库中读取配置信息,此时修改配置文件不会产生效果。
实现Proxysql读写分离的步骤包括:主从同步配置、Proxysql、配置MySQL连接端口、录入MySQL用户、在Proxysql中插入用户和服务器、设置读写分离组、插入调度规则,并进行验证。整个过程涉及从主从数据库同步开始,到Proxysql配置与管理,最终实现读写分离的透明访问。
具体的配置步骤包括主从服务器的my.cnf配置,以及ProxySQL的和配置,如SQL日志记录、主从关系管理、账号设置等。ProxySQL的一个亮点是其控制台,允许修改配置,无需重启即可生效,简化了DBA工作。它支持读写映射规则,如自动主从切换,以及根据MySQL账号、库名等特性实现分库分表。
在配置文件中对ProxySQL进行初始化或重新配置时,最佳方式是通过其管理界面进行。通过SQL查询操作,用户可以在不重启的情况下配置ProxySQL,实现手动和自动配置。ProxySQL管理界面可以接受任何能够通过该界面发送的MySQL命令,并将它们发送至嵌入式SQLite3引擎以运行。
MySQL中间件 这类中间件主要起到作用,帮助管理和优化MySQL数据库的连接和操作。常见的MySQL中间件有:ProxySQL:一个高可用的MySQL中间件,具备负载均衡、故障转移、缓存和查询分析等功能。可以扩展数据库服务器的性能并提供化的。
MySQL运维实战|SQL_MODE之ON_FULL_GROUP_BY
启用ON_FULL_GROUP_BY模式与之对比,观察在未设置SQL_MODE时的SQL情况尽管非标准的查询可能在未启用模式时,但我们推荐使用ON_FULL_GROUP_BY以遵循SQL标准,确保查询的准确性和一致性。
分析发现,问题源于在 SQL 语句时违反了只全分组模式(only_full_group_by)的规则。只全分组模式是 MySQL 7 版本及之后的默认配置,其作用是严格检查 SQL 语法,确保所有 SELECT 列要么在 GROUP BY 子句中,要么使用了聚合函数。在排查过程中,运维团队确认服务器配置改动。
步骤包括找到配置文件(通常是/etc/my.cnf或mysql-rver.cnf),在[mysqld]部分后添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,保存配置文件后重启MySQL。
解决MySQL 9版本中`sql_mode=only_full_group_by`问题的方法:修改SQL查询语句 遇到`only_full_group_by`报错时,你可以修改查询语句,确保在使用`GROUP BY`子句时,所有SELECT列表中的非聚合列都包含在GROUP BY子句中。这样可以避免违反`only_full_group_by`模式的要求。
深入浅出MySQL数据库开发、优化与管理维护作者简介
翟振兴,技术部高级DBA,拥有OracleOCP认证。曾参与省级电力营销MIS的开发工作,后专注于数据库管理维护。在,负责多个核心数据库管理,拥有数据库优化、开发支持方面的深厚经验。兰丽华,技术部高级DBA,具备OracleOCP和IBMDB2DBA认证。
唐汉明,现任技术部DBA组经理。自2000年加入,他历任高级DBA、开发组经理、DBA级经理等职位。唐汉明负责管理维护多个大型核心数据库,是多个重要项目设计与实施的核心成员。他在数据库开发及管理维护方面积累了丰富的经验。在数据库开发过程中,唐汉明注重技术的深入理解和实践。
MySQL技术领域的重要人物,姜承尧以其深厚的专业背景和丰富的实践经验,被公认为资深的数据库专家。他的专长不仅限于数据库的日常管理和维护,他还深入研究了子数据库的开发,尤其对MySQL数据库的底层实现原理有深入的理解和独特的见解。
OK,关于mysql数据库运维和MySQL数据库运维工作内容的内容到此结束了,希望对大家有所帮助。
本文链接:http://www.xinin56.com/su/229699.html