- 博客(37)
- 收藏
- 关注
原创 MySQL各个版本root账号没有最高权限的解决方法
如下操作包含MySQL5.6.51、MySQL5.7.36、MySQL8.0.26,不同版本的操作指令细节有差别。4、清除skip-grant-tables参数,重新启动数据库实例,页面显示实例正常。4、清除skip-grant-tables参数,重新启动数据库实例。4、清除skip-grant-tables参数,重新启动数据库实例。1、配置文件中增加skip-grant-tables参数。1、配置文件中增加skip-grant-tables参数。1、配置文件中增加skip-grant-tables参数。
2024-08-21 17:48:26
309
原创 oceanbase架构、功能模块、数据存储、特性、sql流转层等概念详解
一般情况下,地域指的是 IDC 所在的城市。合并一般是由每个租户的 RS 根据写入状态或者用户设置发起调度,每个租户的每次合并都会选取一个全局的快照点,租户内所有的分区都会用这个快照点的数据做一次 Major Compaction,这样每次合并租户所有的数据都基于这个统一的快照点生成相应的 SSTable,通过这个机制不仅能帮助用户定期整合增量数据,提升读取性能,同时还提供了一个天然的数据校验点,通过全局的一致位点,OceanBase 数据库能够在内部对多副本以及主表索引表进行多维度的物理数据校验。
2024-07-19 09:44:07
1454
原创 redis压测和造数据方式
(4) GET:返回key所关联的字符串值,如果key存储的值不是字符串类型,返回一个错误;(13) LRANGE_100:返回列表key中指定区间内的元素,前100条元素;(14) LRANGE_300:返回列表key中指定区间内的元素,前300条元素;(15) LRANGE_500:返回列表key中指定区间内的元素,前500条元素;(16) LRANGE_600:返回列表key中指定区间内的元素,前600条元素;不能转换为数字则报错;(6) LPUSH:将一个或多个值value插入到列表key的表头;
2024-06-27 14:42:35
1078
原创 MySQL查看线程内存占用情况
在无法添加索引时,增加join_buffer_size的值,以获得更快的完全连接。这里会话参数调整后,需同时调整/etc/my.cnf的配置,下次服务启动永久生效,另外之前连接的会话线程由于已分配了该buffer大小,调整后内存并不会马上释放。该命令是在线打开内存统计,所以只会统计打开后新增的内存对象,打开前的内存对象不会统计,建议您打开后等待一段时间再执行后续步骤,便于找出内存使用高的线程。内存使用情况,决定着MySQL的性能,内存使用率过高会使系统响应时间变长,严重时内存耗尽还会出现OOM的情况。
2024-05-17 14:45:00
1028
原创 MySQL使用memory表导致备库重启后主备关系异常
备库重启后产生了自身的gtid,解析该gtid发现是备库主动truncated了自身的memory引擎内存表。该机制是mysql为了避免重启后主从memory表数据不一致(memory表重启后数据会丢失),会在数据库重启后自动执行该动作并写入binlog,这个机制导致了备库重启后无法change master到主库,建立主从关系。(会导致正常的表主键冲突等都不会报错 遇到主键或唯一键冲突以及主键不存在时,并不会报错,会直接覆盖数据或者忽略数据不存在,主从复制仍然正常进行。发现主库有数据,但是备库没有数据。
2024-03-25 14:08:03
452
原创 MGR报错 The START GROUP_REPLICATION command failed as the applier module failed to start.
2、解决该问题的方法是执行reset master就行,然后重新在主节点和从节点开启通道。注意reset master 生产环境不要使用,这是集群初始搭建重置binlog。1、原因环境有脏数据,或者环境多此配置mgr失败。或者环境有搭建常规主从同步的脏数据(需要取消掉主从关系 reset slave all)。
2024-02-19 11:25:13
433
原创 xtrabackup各种备份及备份恢复方式(包含应用binlog恢复步骤)
【代码】xtrabackup各种备份及备份恢复方式(包含应用binlog恢复步骤)
2024-02-18 16:10:11
656
原创 搭建MaxScale分库分表集群
1) 认证插件提供了登录认证功能,MaxScale 会读取并缓存数据库中 user 表中的信息,当有连接进来时,先从缓存信息中进行验证,如果没有此用户,会从后端数据库中更新信息,再次进行验证2)协议插件包括客户端连接协议,和连接数据库的协议3)路由插件决定如何把客户端的请求转发给后端数据库服务器,读写分离和负载均衡的功能就是由这个模块实现的4)监控插件对各个数据库服务器进行监控,例如发现某个数据库服务器响应很慢,那么就不向其转发请求了5)日志和过滤插件。
2024-01-29 19:16:52
792
原创 mysql半同步复制和MHA搭建(一文搭建出来MHA架构)
要负责保存日志、比较中继日志,选择主备 MHA会通过Node监控MySQL数据库服务地节点信息,定期检测和返回Master角色地健康状态(健康检查) MHA通过将VIP定义在Master节点上,并且数据库的访问也从此VIP进入,当Master异常时,MHA会进行"故障切换",就是VIP漂移+二进制日志保存 漂移到主备节点后,会通过脚本命令来控制MySQL服务器角色的变更。3)根据上面的内容填写(#去故障的实例执行)5)编辑manager配置文件。2)查看manager日志。8)检测manager状态。
2024-01-29 19:14:59
387
原创 MongoDB原理及功能特性
1)mongodb是一款强大,灵活,易于扩展的通用数据库。2)MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,可以添加更多的节点,来保证服务器性能。3)MongoDB 将数据存储为一个文档,数据结构由键值对组成。4)MongoDB 文档使用BSON格式;字段值可以包含其他文档,数组及文档数组。5)Mongodb的强大在于性能强;灵活在于数据存储为文档型,具有nosql的特性,没有复杂的表结构的约束;
2024-01-10 19:33:04
1364
原创 mysql clone 插件架构、特性、参数、及使用方法
特点1、Clone Plugin 是 MySQL 8.0.17 版本推出一个插件,用于进行数据库的物理备份。2、 Clone Plugin 只备份 InnoDB 存储引擎表,其他类型表不进行备份。架构从上图可以发现,Clone Plugin 很不同的一点是 redo copy 的过程非常短,不需要备份30分钟内所产生的所有 redo log。1、这意味着通过 Clone Plugin 恢复物理备份的速度要远远快于 Xtrabackup。
2024-01-10 19:25:52
478
原创 主从复制搭建
下面的俩参数 timeout 代表当前事务提交10s没有返回ack断掉变成异步复制的方式。a.各节点检查server_id、server_uuid、binlog。slave_enabled=1,代表只要一个从库复制成功就返回ack。3.1 通过mysqldump(XBK)备份构建传统主从。问题4业务比较集中的时候可以选择不设置半同步锁的事务。b.主库(51)创建复制用户和远程管理用户。selinux 关闭。
2023-12-14 19:44:27
310
原创 验证数据库字段过大报错问题(报错 MySQL server has gone away)
导入数据报错:ERROR 2006 (HY000) at line 1: MySQL server has gone away。1)源端开启参数需要重启数据库(写配置文件里面)1)源端开启参数需要重启数据库(写配置文件里面)百度网盘下载data1.txt 文件。1.开启参数需要重启数据库。百度网盘下载1.sql文件。3)目标端数据导入到目标端。2)源端创建目录并授权。4)数据库执行导入命令。
2023-12-14 19:43:12
446
原创 redis 内存
active-defrag-max-scan-fields 1000 整理碎片需要遍历,如果遇到元素超过1000(大key)的就放到单独的处理。active-defrag-threshold-lower 10碎片率小于10%不启动整理 建议 20。active-defrag-ignore-bytes 100 碎片空间小于100mb不启动碎片整理。active-defrag-cycle-min 1 最小1%CPU用于清理碎片。redis内存碎片(批量删除大量key会导致大量碎片)
2023-10-13 13:57:25
100
原创 搭建redis分片集群
4)客户端可以访问集群中任意节点(包括从节点),节点将会分析要操作的 key,找到对应哈希槽的节点,最终都会被转发到正确节点。7)Cluster bus: 集群节点都通过TCP连接(TCP bus)和一个二进制协议(集群连接,cluster bus)建立通信(在原客户端访问端口之上加上1000),节点之间使用 gossip 协议来发布广播消息,通知配置变更;2)每个主节点下都可能有1个或多个从节点,这些从节点在网络分区或者发生故障时会尝试替代主节点,同时从节点也可用于支撑大规模的读操作;
2023-10-07 18:03:31
92
原创 redis CPU高
1、实时监控(查是否有高消耗命令keys * hgetall flushall 也能查热key)redis-cli -p 端口 -a 密码 monitor >文件里面。slowlog-log-slower-than 慢于多少单位(微秒)redis-cli -p 端口 -a 密码 client list。redis-cli -p 端口 -a 密码 --hotkeys。cmd=ping和auth较多可能是短链接消耗CPU。slowlog-max-len 记录多少条慢sql。
2023-07-11 17:00:39
165
原创 TiDB概念
TiDB 会在默认是类似rr级别,但是没有间隙锁的概念。事务是在begin的时候就开启了快照。不是mysql的查询的时候就开启快照了。其他的开启,回滚方式和MySQL一样。包括显示提交隐式提交。惰性检查。类似于乐观锁机制。优化了通过批处理约束检查并减少网络通信来提升性能。tidb_constraint_check_in_place = true 禁用该行为。对于运行不同节点的事务而言,不同事务启动和提交的顺序取决于从PD获取时间戳的顺序。
2023-06-04 22:54:51
231
原创 redis面试问题总结
AOF重写fork一个子进程(先重构文件 读取当前redis数据写入到aof文件里面 覆盖源文件)重写过程中的数据需要追加到AOF文件中(写入到重写缓冲区)AOF 是以实时追加的方式持久化数据的。slow-log-slower-then 选项指定执行时间超过多少微妙。单redis并发能到10W左右。redis 支持一定的原子性。redis 不具备acid中一致性的概念。lru 算法移除最近最少使用的key。说明的时候由入队的前中后的顺序去说明。只能执行连续且无关的命令。全部执行或者全部不执行。
2023-06-04 14:06:48
67
原创 mysql 主从延时增加sql线程方式
WRITESET,表示的是对于事务涉及更新的每一行,计算出这一行的hash值,组成集合writeset。WRITESET_SESSION,是在WRITESET的基础上多了一个约束,即在主库上同一个线程先后执行的两个事务,在备库执行的时候,要保证相同的先后顺序。COMMIT_ORDER,表示的就是前面介绍的,根据同时进入prepare和commit来判断是否可以并行的策略。binlog_group_commit_sync_no_delay_count=1000 #等待多少个。组提交重复值越多越好。
2023-05-29 22:27:51
73
原创 mysql索引相关
> <= >=)在delete 和update 的时候。desc format=json select * from t100w where num=‘11’ and k1=‘222’ and k2=‘ccc’ used_key_parts 列判定。---->慢sql ------> explain sql ----->优化索引改写语句。slowlog ---->慢语句 ----> explain sql ----->索引优化、改写语句。c.主键规划,长度过长()辅助索引会用到主键索引的东西。
2023-05-06 11:27:27
196
原创 redis-sentinel(哨兵)集群模式
2、存数据时,将key做crc16(key),然后和16384进行取模,得出槽位值(0-能,同时当主节点down,实现类似于sentinel的自动failover的功能。在搭建集群时,会为每一个分片的主节点,对应一个从节点,实现slaveof的功。3、根据计算得出的槽位值,找到相对应的分片节点的主节点,存储到相应槽位。4、如果客户端当时连接的节点不是将来要存储的分片节点,分片集群会将客户。1、在多分片节点中,将16384个槽位,均匀分布到多个分片节点中。1、redis会有多组分片构成(3组)
2023-04-06 21:44:25
51
原创 mysql小记
今天遇到一个问题现场说不知道为啥所有的用户都被删掉了。然后flush privileges 之后账号登陆不了了。最后发现user 表被全量导入全量库的时候被覆盖了。改进导入数据是时候只导业务数据。1、查审计日志什么发现都没有。2、查日志也没有发现。
2023-03-23 21:56:03
40
原创 redis阻塞问题原因
2、redis-cli --stat 查看每秒钟处理命令个数(查看requests 后面+号的内容表示每秒处理数量)。如果接近每秒处理8-10W个命令个数说明redis 压力特别大。从经验来讲redis 有10G需要复制20MB的页表。在做AOF重写和生成RDB的时候(bgsave命令也是),需要fork操作创建子进程。此查询结果不包含网络延迟和命令排队时间。1、api 数据结构使用不合理经常导致慢查询和大key。2、redis-cli --bigkeys查询大key。1、网络问题(包括代理网络问题)
2023-03-20 22:02:27
352
原创 redis命令及字符类型(基础用法)
这时候就需要我们的sorted set出马了,将你要排序的值设置成sorted set。的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令。系统不会像传统方式那样“刷新”缓存,Redis实例中的信息永远是一致的。案例:在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有。对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是。在Redis中我们的最新微博ID使用了常驻缓存,这是一直更新的。incrby num 10000 #数字增加1W。
2023-03-13 23:27:41
66
原创 redis相关概念
(先fork一个子进程,然后在根据redis数据重新构建一个新的AOF文件,读取当前redis数据,同时追加实时数据到AOF缓存区。Redis只有在AOF持久化模式下,并且每写入一条更新命令都被写入AOF文件时,才是具有持久性的。aof 是以实时叠加的方式进行持久化数据的。使用的jedisPool连接池,节省大量的建立连接的connection的时间。因为Redis是在单线程下,也就是串行化的方式来执行任务的,所以它总是隔离的。exec 命令执行时实例故障,有AOF、RDB的持久话方式决定。
2023-03-06 23:38:21
69
原创 主从延时问题之sql多线程回放技术
slave_parallel_type=loglcal_clock #回放方式。slave_parallel_workers=8 #sql线程数量。风险组提交设置参数会导致主库事物延迟。表示延迟多少微妙同步到磁盘。表示延迟提交的最大事物数。主库查是否开启组提交。需要设置大于0的数字。两个参数都需要开启。
2023-03-06 22:53:31
98
原创 proxySQL安装使用
ProxySQL是基于MySQL的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持 Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置信息(无需重启 ProxySQL 服务),支持故障切换和SQL的过滤功能。相关 ProxySQL 的网站:基本架构。
2022-12-11 20:13:42
531
原创 mysql 配置日志相关参数
一、二进制日志(binlog)查询参数方法 show variables like ‘%not_using_indexes%’;临时修改文件方式 set global long_query_time=1;#临时修改之后必须需改配置文件。永久修改,改配置文件1、作用数据恢复负责2、配置方式binlog日志基础操作。
2022-10-05 18:34:21
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人