- 博客(640)
- 收藏
- 关注
原创 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
原创 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
原创 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
原创 从 “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
原创 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
原创 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
原创 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源码学习(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关注的人