check-for-server-upgrade参数用于运行MySQL升级前检查工具,扫描当前数据库(版本5.7.42)与目标版本(8.0.41)的兼容性,识别潜在问题(如表损坏、字符集不兼容、保留关键字冲突、系统变量默认值变更等),并生成详细报告以指导用户在升级前修复或调整配置。使用:./mysqlsh -S /tmp/mysql_mysql57_1.sock -- util check-fo
对于需要管理大量时间敏感数据的应用场景,比如缓存数据、临时会话信息或实时日志,TTL(Time To Live)索引 是一种高效的解决方案。MariaDB 的 RocksDB 存储引擎提供了对 TTL 索引的支持,让开发者能够像在 MongoDB 中一样轻松设置数据的过期时间,并实现自动清理。什么是 TTL 索引?TTL 索引是一种特殊类型的索引,可以为数据设置“生存时间”。当数据的生存时间超过预
一段时间后,大多数应用程序可能由于bug而出现重复行,这不仅影响用户体验,还增加了存储需求并降低数据库性能。可以通过一个 SQL 查询来完成整个清理过程,从而有效解决这一问题。使用范例-- 创建表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(
从Oracle数据库迁移到MySQL存在一定的技术挑战,主要体现在数据类型、存储过程语法以及系统函数等方面的不兼容性。这种迁移通常需要大量的人力物力投入,包括schema重构、代码重写等工作。然而,将Oracle数据库迁移到MariaDB则是一个出人意料的高效选择。MariaDB提供了一个创新的Oracle兼容模式,只需简单配置即可实现近乎无缝的迁移。具体而言,通过设置SQL模式为Oracle模式
介绍MariaDB MaxScale的NoSQL协议模块是一个强大而独特的功能,它允许使用MongoDB协议与MariaDB数据库进行交互。以下是该模块的主要特点:协议转换: 将MongoDB的查询语言和操作转换为SQL语句。使得应用程序可以使用MongoDB的驱动程序与MariaDB/MySQL通信。无缝集成: 允许现有的MongoDB应用程序直接连接到MariaDB/MySQL,无需修改应用程
在 ProxySQL 的默认配置下,当所有从库出现故障时,查询请求不会自动切换到主库,这会导致业务中断。以下是一个示例说明:假设你的架构是一主一从,主库监听在 6666 端口,从库监听在 6667 端口。Admin> SELECT hostgroup_id, hostname, port, status, weight FROM mysql_servers; +--------------+
在绝大多数业务场景中,分布式数据库并非必需。事实上,约80%的应用程序都可以在单机环境下高效运行。对于绝大多数企业而言,数据库的数据量通常不会达到 TB 级别。在现代应用开发中,json 已成为数据交换和存储的常见格式。尽管 MongoDB 因其天然支持 json 而备受推崇,但 MySQL 也提供了强大的 json 数据类型支持,能够高效地处理 json 数据。在本指南中,我们将探讨如何使用My
是的,这个世界80%的业务都不需要分布式数据库,单机MySQL加一个读写分离足矣。今天我带你用 ProxySQL 实现 MySQL 的读写分离。功能:将 "select ... for update" 语句和增删改(insert/update/delete)语句发送到主库。将 select 只读查询语句发送到从库。如果从库的复制延迟超过10秒,ProxySQL会将查询路由到其他可用的从库,如果从库
MySQL 主从复制,在最新的9.0版本里,仍旧无法实现过滤binlog event事件,例如主库上执行drop和truncate操作,从库同步复制后,直接过滤掉drop和truncate操作。DBA、运维或者研发一旦手滑误操作,直接P0,毁灭性的伤害。而这个实用价值极高的需求,在TiDB DM里早已经实现。那么,我们需要借助ProxySQL来解决MySQL 主从复制这一缺陷。思想如果主库执行dr
数据库审计平台(简称DB Audit),实时记录用户操作数据库的行为,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。通过对用户访问数据库行为记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。目前有两种技术方案
MHA;高可用
Dockerhub地址:https://hub.docker.com/repository/docker/hcymysql/mysql_monitorGithub地址:https://github.com/hcymysql/mysql_monitorOS: Cenots7/8shell> yum install podman* container* -y1) 拉取镜像she
刷脉脉,发现一个帖子讨论幻读问题:https://maimai.cn/web/gossip_detail?src=app&webid=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlZ2lkIjoiN2JmMjA4ZDZjNzU0MTFlYWExOTk4MDE4NDRlNTAxOTAiLCJ1IjoyMjM0MjgzMTksImlkIjoyNjc0NDU3
今天网友陈俊聪跟我讨论一个参数binlog_row_image,在什么场景下设置为MINIMAL,我觉得这个案例很有意义,尤其是在生产环境中,要慎重设置这个参数。首先这个MINIMAL,只会在binlog里记录被影响的行,而不能像默认的FULL一样,记录完整的变更前和变更后的所有记录,这里就会产生一个问题,数据被误更改,无法用mysqlbinlog等工具闪回,另外大数据那边用canal抽binlo
系统版本表是SQL:2011标准中首次引入的功能。系统版本表存储所有更改的历史数据,而不仅仅是当前时刻有效的数据。举个例子,同一行数据一秒内被更改了10次,那么就会保存10份不同时间的版本数据。就像《源代码》电影里的平行世界理论一样,你可以退回任意时间里。从而有效保障你的数据是安全的,DBA手抖或程序BUG引起的数据丢失,在MariaDB10.3里已成为过去。
DBA操作规范1、涉及业务上的修改/删除数据,在得到业务方、CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆。2、所有上线需求必须走工单系统,口头通知视为无效。3、在对大表做表结构变更时,如修改字段属性会造成锁表,并会造成从库延迟,从而影响线上业务,必须在凌晨0:00后业务低峰期执行,另统一用工具pt-online-schema-change避免锁表且降低延迟执行时间。使用范例:#pt-
为了让DBA从日常繁琐的工作中解放出来,通过SQL自助平台,可以让开发自上线,开发提交SQL后就会自动返回优化建议,无需DBA的再次审核,从而提升上线效率,有利于建立数据库开发规范。借鉴了去哪网Inception的思路并且把美团网SQLAdvisor(索引优化建议)集成在一起,并结合了之前写的《DBA的40条军规》纳入了审核规则里,用PHP实现。目前在我公司内部使用。下面是首页界面:使用说明:1、
字段属性限制1、不支持CHARACTER SET语法MariaDB [test]> create table t1(id int,name varchar(10) CHARACTER SET utf8)-> engine=Columnstore;ERROR 1178 (42000): The storage engine for the table doesn’t support Th
注:本文来自真实生产案例,感谢网友小豚提供,本人加以故障重现校验。场景因想整理一下线上的独立表空间碎片,故使用了pt-online-schema-change在slave从库上执行,目的是怕影响主库的CPU,维护的时候再进行一次主从切换,然后再收缩主库上的表空间碎片。slave从库上执行的命令如下:# pt-online-schema-change -S /tmp/m
今天早上一个朋友找到了我,说他们备份失败了,使用的版本为MySQL 5.7.15报错信息如下:mysqldump: Couldn't execute 'SAVEPOINT sp': The MySQL server is running with the --transacti
当前pt-slave-restart最新版为2.2.19,当你执行下面跳过主键冲突的命令时,会报错。# pt-slave-restart --user=root --error-numbers=1062 DBD::mysql::db selectrow_arrayref failed: Unknown system&
MySQL中AES_ENCRYPT('密码','钥匙')函数 可以对字段值做加密处理 AES_DECRYPT(表的字段名字,'钥匙')函数 解密处理例,表结构:现在插入一条数据,对passwd密码字段加密。INSERT INTO credit_card(cid,NAME,email,passwd) 
MariaDB 10.0.X中,动态列(Dynamic Columns),可以支持 JSON 格式来获取数据。 为了兼容传统SQL语法,MariaDB 10和MySQL5.7支持原生JSON格式,即关系型数据库和文档型NoSQL数据库集于一身。使用说明:###表结构create table assets ( item_name var
mysqldiff该工具是官方mysql-utilities工具集的一个脚本,可以实现主从服务器表结构是否一致。数据校验需要使用Percona的pt-table-checksum工具。安装:# tar zxvf mysql-utilities-1.5.4.tar.gz # cd mysql-utilities-1.5.4 # python
今天我一个朋友,执行了stop slave,给卡死了,结果kill 进程ID也杀不死。这是由于在主库上执行了一条很耗时的大SQL,通过主从复制在从库接收过来后,SQL_THREAD开始执行,这时你只要执行了stop slave,立马就卡死,之后你再执行show slave status\G;也会被卡住,必须等待那条大SQL执行完,才会结束stop slave,除非你pkill -9 mysql进程
当我们忘记做全量备份时,并且没有开启binlog,并执行了delete from sbtest;数据全部丢失,要想恢复是很有难度的。今天,利用Percona Data Recovery Tool for InnoDB工具(仅支持InnoDB,MyISAM不支持),可以找回被删除的数据。原理:在InnoDB引擎,delete删除操作,不是真正的删除物理文件上的行,而是增加一个删除
TokuDB存储引擎,你可以把它看做是ARCHIVE存储引擎的升级版,它拥有了密集压缩,并且支持事务。压缩比:EngineCompressionTable size [MB]InnoDB none 2272InnoDB KEY_BLOCK_SIZE=8 1144InnoDB KEY_BLOCK_SIZE=4 584MyISAM
软件名称:Sequel Pro(MySQL客户端工具)官网地址:http://www.sequelpro.com/该工具在导出表数据的时候,会产生一条坑爹的SQL:/*!40000 ALTER TABLE `sbtest` DISABLE KEYS */;这条SQL是针对MyISAM引擎批量插入,为了加快插入速度,会加上ALTER TABLE t1 DISA
今天论坛打开了这个会话功能,结果很荣幸踩坑里了,连接数直接给干到2000开外。好了,直接上图说下:show processlist,满屏显示这条SQL,情急之下,立即pt-kill,先让论坛活下来。顺便想问候下discuz开发,你们真的做了测试了吗,就直接发布了?表结构:mysql> desc pre_common_session; +--------------+-------------
开发上线完以后,到早上高峰期并发压力大,有可能因某个SQL的原因把数据库给打死,参考《一个引号导致1个小时网站打不开》,这个时候你可以用pt-kill杀死,但连接数过高,CPU负载很高,这个工具根本没法去处理,数据库这个时候已经成瘫痪状态,那么应该怎么办?首先要保证数据库不能被打死,先让数据库压力降下来,这里就要做一些限制措施。我们先用iptables封死3306端口,先把压力降下来,然后tail
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号