自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 收藏
  • 关注

原创 MongoDB 复制集实战

MongoDB 复制集实战。

2025-04-02 18:06:50 1165

原创 深入浅出Redis主从架构:持久化、级联复制与哨兵监控实战

在主从复制首次完成全量同步之后再次需要同步时,从服务器只要发送当前的offset位置(类似于MySQL的binlog的位置)给主服务器,然后主服务器根据相应的 将之后的数据(包括写在缓冲区的积压数据)发送给从服务器,再次将其保存到从节点内存即可,即首次全量复制之后的复制基本增量复制实现。在关闭主服务器上的持久化,并同时开启自动拉起进程的情况下,即便使用Sentinel来实现Redis的高可用性,也是非常危险的。Redis的主从同步是非阻塞的,即同步过程不会影响主服务器的正常访问。

2025-03-19 18:31:38 840

原创 Redis 持久化机制:AOF 与 RDB 详解

Redis 是基于内存型的 NoSQL,和 MySQL 是不同的,使用内存存储进行数据缓存。如果想要实现数据的持久化,Redis 也可支持将内存数据保存到硬盘文件中。以MySQL 做类比RDB类似MySQL dump,AOF类似 MySQL binlog。

2025-03-17 18:09:00 1040 2

原创 Keepalived 多主模型与 LVS 高可用

如上图,keepalived主从架构性能损耗较严重,如果业务分类明确,则可以配置keepalived多主模型降低损耗,两台keepalived互为主备,如:订单业务走keepalived1,keepalived2做备,商品业务走keepalived2,keepalived1做备。也就是keepalived1和keepalived2各拿一份vip。

2025-03-16 00:17:04 357

原创 Keepalived高可用架构实战:从安装配置到高级应用详解

提供的解析器,完成 Keepalived 配置针对网络吞吐的优化的自适应连接组件为某些通用的内存管理功能(例如分配、重新分配、发布等)提供访问权限。

2025-03-15 18:17:45 1122

原创 5 分钟搭建 Prometheus + Grafana 监控

这个 1860 对应的模板地址是 https://grafana.com/grafana/dashboards/1860-node-exporter-full/在被监控机器上下载 mysqld_exporter。导⼊⽅式同上,只不过对应的 ID 是 7362。在被监控机器上下载 node_exporter。重启 mysqld_exporter。初始账号密码:admin/admin。启动 node_exporter。检查 Targets。下载 Grafana。启动 grafana。登录 grafana。

2025-03-14 12:16:32 483

原创 MySQL 逻辑 & 物理备份全攻略:指令大全 + 实战指南

增量备份是基于全备的,第一次增量备份的数据是基于上一次全备,之后的每一次增量都是基于上一次的增量,最终达到一致性的增备。增备的过程中,和全备很类似,区别在于第二步。mysqlpump -B test --exclude-tables=test1,test2 #备份过滤test库中的test1、test2表。mysqlpump --exclude-tables=test1,test2 #备份过滤所有数据库中test1,test2表。MySQL5.7之后多的一个备份工具:mysqlpump。

2025-03-13 17:12:27 1100

原创 告别复杂日志解析 用bin2sql轻松实现MySQL数据闪回

此时: 通过命令可以看到所有产出的binlog日志:查看binlog内容按照时间读取按照点位读取。

2025-03-12 18:04:10 712

原创 InnoDB 页的结构与一条记录的存储过程

页是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB。

2025-03-11 17:46:26 1100

原创 Mysql InnoDB 行格式解析

InnoDB 是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还 需要把内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我 们想从表中获取某些记录时,InnoDB 存储引擎需要一条一条的把记录从磁盘上读出来么?

2025-03-10 18:26:28 796

原创 Oracle 深入理解Lock和Latch ,解析访问数据块全流程

我们在谈到性能优化的时候,通常是讲系统缓慢的时候需要性能优化,系统缓慢通常是由什么原因导致的呢?大概上讲分为两种系统的资源耗尽了(cpu耗尽了,IP,吞吐量上不去)性能枯竭,性能达到了极限。锁定,阻塞,发现系统性能很高,但应用程序性能就是上不去,这种情况通常来讲是阻塞。

2025-02-21 17:49:48 1041

原创 JumpServer堡垒机管理服务器与数据库资产

JumpServer 是一款开源的堡垒机(运维安全审计系统),专注于解决企业 IT 资产的安全访问与权限管控问题。它通过 Web 化统一入口,提供 SSH、RDP、数据库等协议的代理访问,支持细粒度权限分配、操作审计、会话录像等功能,适用于多云混合环境下的运维安全管理。相比之下,OpenVPN 是专注于建立加密网络隧道的工具,主要用于远程访问内网资源,但缺乏细粒度权限控制和审计能力。维度JumpServerOpenVPN核心定位运维安全与审计网络层加密通信权限粒度用户→资产→命令级控制。

2025-02-07 17:32:51 653

原创 Docker 镜像制作原理 做一个自己的docker镜像

创建一个容器查看alpine ,以及更换镜像源,以及安装想要安装的工具(curl,vim,tree等) alpine 更新源使用的是apk update。启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。更换一下国内的源,docker cp 可以把本机的源拷贝到容器,我这里直接用了容器的源。运行我们构建的镜像: 可以看到刚才安装的工具已经都有了。包装完之后退出,可以基于这个容器生成一个镜像。基于自己做的镜像,创建容器,看看工具有没有。

2025-01-15 21:40:12 1059

原创 Linux文件删除奥秘:无备份如何利用进程恢复删除的数据库表?

Linux 的文件系统是通过link的数量来控制文件删除的,一般来说,每个文件都有2个link计数器i_count和i_nlink。

2025-01-10 08:30:00 717

原创 从零开始学TiDB(8) TiFlash 主要架构

T0 时刻从客户端写入两行数据分别写入到了两个region,并且产生raft log此时TiFlash还没有TiKV的这两行数据此时TiFlash同步了key=1 value=100的数据还没有同步 key=999 value=7的数据读取TiFlash中的key=1和key=999又进行了一次写入 key=1 value=200此时raftlog idx=122确认TIKV的raft log idx号并且记录在TiFlash此时,idx=31 从TIKV记录的日志。

2025-01-02 18:56:04 580

原创 从零开始学TiDB(7)TiDB 的MPP架构概述

TiDB的MPP架构充分利用了TiFlash并行计算的功能, 当一个复杂的SQL语句过来的时候(能够使用MPP),先利用表连接的条件把连接条件Hash值相同的数据放到一个节点上,防止网络交换严重,处理了过滤条件后,如有聚合条件,再利用聚合条件的字段进行数据交换,把聚合条件字段hash值相同的数据放到同一个数据节点中,最后每个TiFlash把计算好的数据返回给TiDB Server。

2024-12-26 18:20:13 769

原创 Python 根据TikTok,YouTube 主页链接批量修改粉丝数

数据库里面的博主粉丝数是静态的,一定时间就要进行更新,所以需要获取tiktok和youtube上博主的粉丝数,数据库中已有博主主页链接,根据主页链接爬取粉丝进行修改,没啥技术含量,主要是正则要写的好。

2024-12-18 16:07:00 271

原创 从零开始学TiDB(6)深入学习Placement Driver(PD)

首先TSO的分配涉及到TiDB Server 和 PD组件但如果此时TSO有一百个请求,PD Client不会 一次次的请求PD,则PD Client会把这一百个请求变成一个批处理请求发送给PD相关优化:PD leader解决性能问题的方法PD 的高可用如果此时TiDB Server请求的是704此时PD ledaer宕机,则切换leader PD,开始一次新的3s计时(即TiDBServer 请求的TSO会有断层,代表此时PD leader 宕机了) ,即保证不了连续性。

2024-12-18 15:57:46 792 1

原创 从零开始学TiDB(5)Raft与Multi Raft

leader是集群中领导者,所有的读写都是走leader,follower副本不参加读写,leader会周期性的向follower发出心跳,同时也会把自己的日志同步给follower。follower不参与读写,只会对其它服务做出相应,并同步leader的日志。如果长时间收不到leader的心跳信息,这时候follower会把自己的角色变为condidate(候选者),并发起投票。其中一个region 及其两个副本 构成一个raft group ,多个raft group 构成了multi raft。

2024-12-13 18:01:51 681

原创 Python3 insloader库爬取博主视频粉丝量,点赞,互动率,国家等信息

写在题前:之前搞Java的,今天部门的人给了我一批视频链接,问问有没有办法爬出来这一批视频链接的博主的粉丝量,以及该视频的互动率等信息。经过一番探索之后了解了insloader库。真不不得不感叹python的强大。输出结果如下:

2024-12-12 18:20:26 588 1

原创 从零开始学TiDB(4)TiKV 分布式事务

读操作先从Write 列簇中读取最近一次提交信息,找到最近一次提交信息的事务开始时间,直接去Default中去读写操作也是先从Write 列簇中读取最近一次提交信息,找到最近一次提交信息的事务开始时间,之后要去Lock列簇中查看写是否被阻塞。如果没阻塞才可以去Default列簇中去读

2024-12-11 18:16:01 1057

原创 从零开始学TiDB(3)TiKV 持久化机制

下图总结了RocksDB 写操作的流程。可以看出LSM Tree对写操作进行了很大力度的优化,所以LSMTree对写很友好,但对读不那么友好,如果数据在mem Table中还好说,但如果不在Mem Tble中 下一步应该去immutable 中去中,如果immutable中没有 又会到磁盘中去找。

2024-12-10 18:16:35 343

原创 从零开始学TiDB(2)深入了解TiDB Server模块

TiDB Server 架构。

2024-12-06 18:29:50 1244

原创 从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7。

2024-12-06 15:43:35 1168

原创 崖山YCP 实操习题来啦! 关注我领取word文档!

崖山YCP 实操习题来啦! 关注我领取word文档!

2024-11-23 16:53:28 693

原创 计算机专业苦于毕业设计? 近百套系统源码免费领取!

kk的DBA随笔

2024-11-21 16:50:39 190

原创 Oracle 表连接的三种方式,带你深入了解表连接

示例:假设有两个表:(订单表,有上百万条记录)和 (客户表,有几千条记录),我们需要查询每个订单对应的客户信息。查询如下:在这种情况下, 表可能会被选择为驱动表,因为它记录数较少,每个客户的信息在 表中可能会有多条记录。通过将小表 作为驱动表,可以减少嵌套次数,从而提升连接效率。Merge Join示例:看上去合并排序连接要比NL连接更耗时,其实不然,对于相当大的表来说,对于NL,驱动表返回多少条记录就等于访问了多少次被驱动表,但对于排序合并连接来说,顺序扫描减少了随机访问的需求,适合大

2024-11-20 17:34:44 1158

原创 文本列的性能优化?深入Oracle全文索引

全文索引通过分析和处理文本,将文档中的单词分解为词条(tokens),然后存储词条与其所在文档的映射关系。这使得数据库可以快速定位包含特定关键字的记录,而不必对所有文本逐字匹配。

2024-10-29 18:54:39 809

原创 Oracle 教你用DG Broker快速搭建DataGuard

DataGuard Broker能更加容易的管理和维护多个Standby Database。如果有多个备库或者RAC数据库中有个多个实例,如果进行手工配置管理,就会太过于麻烦,Oracle提供了DataGuard Broker工具,可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。Failover和Switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。

2024-10-27 16:59:08 1351

原创 Oracle 使用位图索引 Cost降低200倍! 探讨位图索引的利与弊

在会话一中,我们做了插入status列 为invalid, 在会话二中,我们做了插入status 列为invalid 造成sql等待,又做了插入status 列 为 valid 反而插入成功,继续做插入不涉及status列 也可以更新成功。结合位图索引结构与存储方式,发现。

2024-10-18 18:13:47 1142

原创 Oracle 常见索引扫描方式概述,哪种索引扫描最快!

而 INDEX FULL SCAN(MIN/MAX)扫描也是基于索引的存储结构实现的,B Tree 的所有数据都存储在叶子节点,而叶子节点的数据是有序的,如果遇到查询最大值/最小值的场景,正常来说 INDEX FULL SCAN(MIN/MAX) 速度是最快的,因为在扫描时,只需要扫描B Tree的第一个块和最后一个块即可,这样就直接找到了最大值/最小值。distinct 是有排序的操作的 如果使用INDEX FAST FULL SCAN 一次性读取多个数据块是难以保证 有序的。并且,我们使用了索引。

2024-10-17 18:30:40 1242

原创 Oracle 表空间异构传输

已经有了表空间的数据文件,和元数据dump文件,如何把这个表空间传输到异构表空间中?

2024-10-06 13:05:21 585

原创 Oracle 星型查询转换实践

星型查询是一种业务的应用,星型查询转换的核心思想是将原本的星型连接查询重写成更高效的形式。有些业务刚好满足如下的结构,我们可以使用星型查询。

2024-10-03 19:22:01 110

原创 Oracle SQL语句没有过滤条件,究竟是否会走索引??

因为虽然查询的这三个列都被覆盖索引包含在内,但这三个列都可为null,正如开篇所说——Oracle不会为全都为null的行走索引。答案是:可能走索引也可能不走索引,具体要看列的值可不可为null,Oracle不会为所有列nullable属性都为Y的sql语句走索引。可以看到这三个列虽然都有索引,但这三个列的nullable属性都是Y,也就是都可为空,所以索引将失效,该语句将走全表扫描。这样就保证了每一行都将在索引中。再次查询同样的SQL语句,可以看到没有where条件的SQL语句也走了索引。

2024-10-03 17:14:29 1082

原创 Oracle控制文件全部丢失如何使用RMAN智能恢复?

【代码】Oracle控制文件全部丢失如何使用RMAN智能恢复?

2024-09-30 16:51:59 587

原创 Oracle 闪回版本(闪回表到指定SCN)

在这个脚本中,有两个事务,我们尝试保留insert的事务,回滚update的事务。可以看到最下面的几行是刚才执行脚本所做的操作。update操作被回滚了。

2024-09-30 16:19:12 819

原创 Oracle 日志文件多路复用

多路复用 PRODCDB 数据库的所有日志组中的 redo log 文件,存放目录: /u01/app/oracle/oradata/MREDO。

2024-09-30 15:35:36 528

原创 Oracle 表空间时间点恢复

已有一个数据库全备,在PDB中恢复被drop掉的表空间。

2024-09-29 18:53:43 692

原创 Oracle 配置恢复目录catalog

Oracle中使用RMAN备份的数据我们分为两类Oracle默认把 RMAN知识库 放在目标数据库的控制文件中,在以后进行恢复的时候 我们要先读知识库的信息然后才能恢复。但这样就产生了一个问题,知识库放在了控制文件上,控制文件如果丢失,那么知识库的信息也丢失了,进而无法恢复数据。所以我们需要保护这个控制文件,一般有两种办法。知识库包含的内容:目标数据库的结构归档日志的记录每次备份的备份集与备份镜像。

2024-09-29 16:52:40 925

原创 Oracle 19c 使用EMCC 监控当前所有数据库

EMCC,全称Oracle Enterprise Manager Cloud Control,是Oracle提供的一套集中化监控工具,可以对数据库、操作系统、中间件等进行监控,通过OMS(Oracle Management Service)收集监控数据并将监控信息存入对应Oracle资料数据库并对收集的数据进行处理与展示;使用agent部署在受监控机或远程监控实现监控采集。可实现短信、邮件、SNMP等多方式实现实时告警。同时EMCC在监控Oracle数据库方面,是功能最全面、最强大的存在。

2024-09-25 15:23:28 829

OceanBase企业版v3部署,其中总结了部署过程的各种问题

注意:测试环境单机部署服务器最低配置为 2 台 16 CPU 64G 内存 500G 存储,其中 1 台 OAT/OCP,1 台 OBServer。低于此配置部署或测试时将出现资源不⾜等问题,建议增加配置或考虑其他部署⽅案。 在最⼩化部署时,⼀般需要 4 台服务器,即 3 台 OBServer 服务器安装 OceanBase 集群和 1 台单独的服务器安装 OCP ⽤于管理 OceanBase 集群。 根据官⽹,服务器应满⾜的最低配置要求如下表所示: OCP 管控服务器,1台,32C,128 GB,1.5 TB 存储 (包含 OAT 与 ODC 所需资源) OceanBase 计算服务器,3台,16C,64 GB,1.2 TB 存储 以 1-1-1 OceanBase 集群为例。

2024-06-10

数据RAC11g 升级到 RAC 19c

首先在源数据库创建自己的用户(三个自己创建的用户)、表空间(三个自己创建的表空间),角色(role)(三个控制权限的角色,通过角色控制是否读写的权限),然后自己生成测试数据。特别要求:数据库内必须有一个表的数据量超过5千万,并有三个复合索引,一个表数据量超过1亿,并且是分区表,并包含三个全局索引。2、(重点)用一个或者多个并发的程序或者代码,不停的对数据库有DML操作,就是数据库的业务不能停,对所有人要求可以停1分钟;3、然后通过Rman恢复方式或者其他方式(具体方式由项目方案确定),仅仅一分钟,生产库由11g升级为19C;

2024-02-06

对于oracle11g 各种进程进行详解,进程与内存结构的关系,SGA的讲解

数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的进程结构,内存区域和后台进程合称为一个Oracle实例。

2024-01-26

linux中对于springboot程序生成火焰图,并对火焰图进行解析

Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

2024-01-26

linux文件系统,inode,datablock,superblock,Filesystem Description等详解

每个块都可能含有superblock,但是我们也说一个文件系统应该仅有一个superblock 而已,那是怎么回事?事实上除了第一个块内会含有superblock 之外,后续的块不一定含有superblock,而若含有superblock则该superblock主要是做为第一个块内superblock的备份,这样可以进行superblock的救援

2024-01-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除