自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AWS MySQL 升级(三)—— TAZ - 近0停机的小版本升级方案

与AWS交流了解到的新方案,没有实际试过,所以本篇主要是些原理。

2024-10-07 16:48:35 1598

原创 elasticsearch ES DBA常用语句

curl -uelastic 连接串:端口/_cat/indices?curl -uelastic 连接串:端口/_cluster/health?curl -uelastic 连接串:端口/_cat/allocation?集群健康有三种状态:green,yellow,red。查看各节点大小数据(主要看数据是否分布不均)可以按索引名称或其他字段排序。

2024-10-06 22:05:33 1337 1

原创 AWS MySQL 升级(二)—— MySQL API逻辑同步升级操作步骤

停复制进程,记录 Master_Log_File 和 Exec_Master_Log_Pos,建议执行2次。源库的IP地址,需要ping 源库的连接串获取,并且将此ip添加到新库的安全组中。选择创建只读副本,等待创建完成即可,大库耗时较长,建议提前操作。DBA检查连接切换情况,是否都已切换至通过Nginx代理连接。将新从库连接串重命名为旧从库连接串,避免从库业务需重新配置。将Nginx中连接串配置为旧主库连接串,重启Nginx。业务修改连接串至新主库,DBA检查连接情况。登录旧主库检查,业务是否仍有连接。

2024-09-01 10:50:43 2272

原创 AWS MySQL 升级(一)—— 对比各类方案及原理

搞了好几个月的MySQL升级终于接近尾声,进入总结梳理阶段~

2024-08-17 12:29:37 5462 2

原创 MySQL 导出导入的101个坑

最近接到一个业务自行运维的MySQL库迁移至标准化环境的需求,库不大,迁移方式也很简单,由开发用myqldump导出数据、DBA导入,但迁移过程坎坷十足,记录一下遇到的各项报错及后续迁移注意事项。

2024-06-02 12:16:58 2229 1

原创 MySQL从库1236报错Client requested master to start replication from position > file size

主库断电后主从同步断了?

2024-04-30 18:18:16 2950 1

原创 my2sql —— go语言版binlog解析及闪回工具

之前学习过python语言版binlog解析及闪回工具最近听同事介绍有了新的go语言版的my2sql。优点是不需要安装一大堆依赖包,直接可以安装使用,并且解析更高效,试用一下。

2024-03-20 17:32:09 2987 1

原创 Oracle 主从切换脚本

【代码】Oracle 主从切换脚本。

2024-03-13 11:25:33 2089 1

原创 由PG序列监控,看三种列自增方式

PG SEQUENCE、SERIAL 和 IDENTITY的相似和不同

2024-03-09 12:19:23 2727 1

原创 Linux中的各类时间 与 find命令的常用参数

之前研究wal日志清理的副产物,wal日志名被修改后文件的哪个时间会变?应该如何删除?由此整理一下Linux中atime、mtime、ctime的区别,以及find的常见用法。

2024-02-22 17:28:46 2808 1

原创 延迟恢复了? pg重启后pg_stat_replication中的延迟信息会如何变化?

之前重启数据库时遇到一个问题,本来主从间有超过2小时的延迟,重启db后监控突然提示延迟为0,告警恢复。一段时间后,监控又显示延迟逐渐增加,直至逐渐回到2小时。这是为什么?

2024-02-14 22:01:42 1862 1

转载 MySQL 轻量级Online DDL工具 —— gh-ost

一、gh-ost 介绍gh-ost是 GitHub 发布的一款用于 MySQL 的无触发器在线模式迁移解决方案。它是可测试的,并提供暂停,动态控制/重新配置,审计和许多操作特权。它在整个迁移过程中,对主服务器产生的工作量很少,与已迁移表上的现有工作分离。此外,它还提供了许多可操作的特权,使其更安全、可信赖且易于使用。gh-ost操作方式与现有的在线模式更改工具类似:它们以与原始表相似的方式创建幽灵表,将数据从原始表缓慢且增量地复制到幽灵表,同时应用正在进行的更改(INSERT,DELETE,UP..

2024-02-14 21:35:54 2987 1

转载 PG fast模式停库 在归档过慢及有发送延迟 会被阻塞

尝试停库时遇到的两个现象:当archiver process仍有.ready文件待处理时,执行fast模式执行stop时,必须等其处理完当walsender进程仍有wal日志未发送至从库时,必须等其发送完

2024-02-12 21:30:12 1224

原创 postgresql 手动清理wal日志的101个坑

新年的第一天,总结下去年遇到的关于WAL日志清理的101个坑,以及如何相对安全地进行清理。前面是关于WAL日志堆积的原因分析,清理相关可以直接看第三部分。

2024-02-10 23:12:42 3919 3

原创 常用的文件系统、存储类型小整理

最近接触到了五花八门的文件系统、存储类型,名词听得头大,趁假期整理学习一番~

2024-02-07 22:09:49 3473

原创 从 “template1“ is being accessed 报错,看PG数据库的创建过程

报错原因、解决方法、以及PG数据库的创建过程到底会干些什么?

2023-12-13 18:01:29 2889 2

原创 会长期锁表吗?PostgreSQL add column default 在各版本的优化

pg如何处理新增列的默认值,与Oracle有何区别

2023-12-01 19:42:20 2691 1

原创 会长期锁表吗?Oracle add column default 在各版本的优化

Oracle add column default 在各版本的优化

2023-11-29 14:55:43 4661

原创 PostgreSQL日志中的SQL记录时机 —— log_statement 和 log_min_duration_statement

log_statement 和 log_min_duration_statement 的作用及注意事项、源码学习

2023-11-28 21:05:11 4350 1

原创 PostgreSQL create or replace view和重建视图 有什么区别?

遇到开发提了个问题,create or replace view和重建视图(drop+create)有什么区别,查询资料整理了一下。replace后不影响权限和依赖于该视图的对象。来看看replace操作到底在干些啥 ˇˍˇ。

2023-11-22 19:51:54 2776

原创 从物理磁盘到数据库 —— 存储IO链路访问图

存储服务器、交换机、物理机、虚拟机、数据库

2023-11-05 00:03:29 2673 1

原创 pgbackrest归档目录满,清理后写入仍报错,分析及处理

pgbackrest配置的归档目录/backup被写满,清理后归档仍报错 No space left on device

2023-10-17 15:26:17 2058

原创 pg ash自制版 —— pg_active_session_history

由于pgsentinel插件存在严重的内存占用问题,本篇改为自行实现,但其语句仍可以参考pgsentinel插件。v1.0 根据pg 14版本设计及测试,仅支持收集主库信息。默认每10秒收集一次 active与idle in transaction 状态会话信息,保留两个月。参考 pgsentinel插件的pg_active_session_history视图及pg pg_stat_activity视图,根据不同版本,其中部分字段的值可能为空。列名数据类型字段含义。

2023-10-15 13:06:08 3049

原创 PostgreSQL ash —— pgsentinel插件 学习与踩坑记录

众所周知,pg是没有像oracle那样的ash视图的,因此要回溯历史问题不太方便。pgsentinel插件会将pg_stat_activity与pg_stat_statements视图内容定期快照,并存入pg_active_session_history和pg_stat_statements_history视图中。与对应版本的pg_stat_statements视图字段含义相同。也可以直接在postgresql.conf中修改。若未配置,查询会报错。

2023-10-05 00:41:38 2849 1

原创 PostgreSQL unloged表测试及记录

不写WAL日志,因此性能优于普通表从库查询unloged表会报错非crash安全:数据库crash或以immediate方式关闭,unloged表数据会被自动清空

2023-09-14 19:56:09 2621 1

原创 娱乐时间 —— 用python将图片转为excel十字绘

图片的每一个像素点都可以数值化,那么将构成图片的每一个像素点填充到excel的单元格中去,然后合理调整单元格长宽比便可以拼成一副画。反过来想,用一张单元格足够小的excel表格将图片蒙上一层,犹如用 一张网去切割这张图片,图片被切割成一小块一小块 ,如果网格足够细,每一小块里面的颜色几乎只有一种,这样就可以用一个三元组(RGB)来刻画 ,这样一张图片就可以由一个很大的矩阵来刻画 ,矩阵中的每一个元素都是一个 RGB三元组。最近看蛮多朋友在玩,要么只能画比较简单的,要么非常花时间。

2023-09-10 17:20:21 2284 1

原创 记一次前端页面加载方式调整导致的数据库连接数暴增

前端代码也会导致数据库问题?

2023-09-04 21:10:45 1503 1

原创 clickhouse ssb-dbgen数据构造 及 clickhouse-benchmark简单压测

s 100 lineorder表会生成6亿行数据(约67G),-s 1000则会为其生成60亿行数据(约670G),需要大量空间和时间,注意控制。clickhouse-benchmark是自带的一个简单压测工具,可以控制执行SQL的次数、并发度等。相对来说 ssb-dbgen工具 生成的表比较简单,数据量也可以自己控制,更加方便。ssb-dbgen工具指定参数可以生成如下表的数据,其中lineorder是最大的。测试表可以都用,也可以调一些,官方文档只建了4个。查询执行时间的百分比。

2023-08-24 21:37:59 2551

原创 Oracle 主从库目录不一致(异路径)的n种处理方案及效果

db_create_file_dest db_file_name_convert log_file_name_convert 与 不设置

2023-08-20 18:49:43 1954

原创 定位postgresql中疯狂执行DML的表&原理学习

定位一段时间内DML量最大的表,并稍微改动监控每天表变化量。另外,也通过源码学习学习相关字段究竟是从何获取的。

2023-08-15 21:41:51 2222 1

原创 记一次空间告警与pg_rman keep-data-days参数研究

keep-data-days参数明明只设置了1,为什么本地会出现3份备份(保留了3天的备份)?

2023-08-09 22:39:13 2168

原创 clickhouse DBA入门常用SQL

clickhouse DBA入门常用SQL

2023-08-03 10:51:27 1653 1

原创 pg_archivecleanup清理wal日志

pg_archivecleanup代码中仅进行了wal日志文件名的对比,没有实现对WAL日志名及对应生成时间的判断。在WAL日志未被重命名时,时间与日志名顺序名一致,没有问题。一旦WAL日志被重命名,pg_archivecleanup清理就可能清理掉比指定文件更新的WAL日志。因此,在涉及主从尤其是有lag的情况下,非必要不建议使用。真正到了必要的时刻,例如剩余磁盘空间已不足10%甚至5%,必须先检查从库所需日志与待清理日志间的新旧。

2023-07-26 21:21:32 3082 1

原创 postgresql源码学习(58)—— 删除or重命名WAL日志?这是一个问题

最近因为WAL日志重命名踩到大坑,一直很纠结WAL日志在什么情况下会被删除,什么情况下会被重命名,钻研一下这个部分。首先无用WAL日志的清理发生检查点执行时,检查点执行核心函数为CreateCheckPoint。其中核心调用栈为CreateCheckPoint函数很复杂,从外往里看会很容易晕,所以我们倒过来,先从最内层的RemoveXlogFile开始研究。因为debug跑了很多次,后文各日志段号等不会完全一致,但本质是相同的。注意这个跟踪属于高危操作,db进程有可能挂掉,千万别在生产环境随便执行。

2023-07-22 23:20:08 2625

原创 postgresql_internals-14 学习笔记(七)—— parallel 并行

不完全来自这本书,把查到的和之前的文章重新汇总整理了一把。参考:PostgreSQL: Feature Matrix例外命令:以下语句可以在查询部分用到并行 CREATE TABLE ... AS,SELECT INTO,CREATE MATERIALIZED VIEW,REFRESH MATERIALIZED VIEW 计划中可并行部分越多,潜在的性能增益就越大。然而,某些操作仅能由leader进程严格顺序执行,即使它们本身不会干扰并行化。换句话说,它们不能出现在Gather节点下面的计

2023-06-27 23:55:59 5119 1

原创 postgresql_internals-14 学习笔记(六)—— 统计信息

不完全来自这本书,把查到的和之前的文章重新汇总整理了一把。

2023-06-24 22:55:00 6499

原创 postgresql源码学习(57)—— pg中的四种动态库加载方法

pg中四种动态库加载方法及源码学习

2023-06-24 12:57:52 3013

原创 postgresql源码学习(56)—— explain是如何快速估算pg表行数的

但是这个字段的值需要收集统计信息后才有,如果统计信息过旧,也会不准确。但是注意不要EXPLAIN SELECT count(*),相差很大。如果没有统计信息或者比较旧了,又不想收集,可以使用explain。加::numeric是为了防止数字太大,变成科学计数法。为了方便获取预估值,可以将执行计划输出转为json格式。看到在完全没有统计信息的情况下,偏差大概在10%左右。,类似oracle的num_rows。收集之后,偏差明显减少。

2023-06-15 19:01:20 2661

原创 ORA-01795 Oracle in中超过1000个值处理方法汇总

最近又又又遇到了开发同事问Oracle 中in超过1000个值遇到ORA-01795: maximum number of expressions in a list is 1000怎么处理,之前也陆陆续续查过一些方法,汇总整理一把。当然,其中的一些方法只是保证它不报错,性能可能堪忧,尽量少用。

2023-06-03 19:46:38 9673

原创 postgresql源码学习(55)—— 列中的NULL值是如何存储和判断的?

在pg元组头数据中,有一个t_bits数组,用于存储空值位图。当元组中没有null值的时候,t_bits可以被认为是空的,当元组有null值的列时,t_bits使用一个bit来表示列是否为null。可以看到,表中已删除列会被视为空列。当表中有许多列时,删除列将为每条记录生成额外的t_bit,这将导致存储膨胀。100000,注意实际存储的时候值是颠倒的,所以是000001。为了看t_bits数组更清晰,我们加多几列。10000,颠倒后为00001。,所以第一列非空,与实际一致。判断字段是否为空代码在。

2023-05-13 21:53:04 3461 1

空空如也

空空如也

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

TA关注的人

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