专注,勤学,慎思。戒骄戒躁,谦虚谨慎

just do it

导航

#

[置顶] 一些值得收藏的数据库知识链接

摘要: postgresql 技术内幕 https://www.jiangguo.net/c/42e/dn.html Postgresql Buffer pool设置: PostgreSQL 自己的 DB buffer & 与别的人的OS cache 之 回答问题:https://cloud.tencent 阅读全文

posted @ 2017-07-23 12:02 MSSQL123 阅读(701) 评论(2) 推荐(2) 编辑

2024年9月14日 #

SQLServer 2016之后的触发统计信息自动更新阈值算法变化

摘要: 之前吐槽了很多年的统计信息自动更新阈值算法(操蛋的500 + (0.20 * n)),其实早在SQLServer 2016中就有优化过了,一直没有注意这个细节,汗颜! https://www.cnblogs.com/wy123/p/5875237.htmlhttps://www.cnblogs.co 阅读全文

posted @ 2024-09-14 14:31 MSSQL123 阅读(9) 评论(0) 推荐(0) 编辑

2024年9月4日 #

redis-cli创建Redis集群时显式指定主从节点

摘要: 背景 前些年用python写过一个Redis Cluster 自动化安装,扩容和缩容的工具,虽然当时官方的的redis-trib.rb集群创建工具提供了集群创建、 检查、 修复、均衡等命令行功能,个人接受不了redis-trib.rb,原因在于redis-trib.rb需要ruby的环境,同时无法自 阅读全文

posted @ 2024-09-04 20:31 MSSQL123 阅读(8) 评论(0) 推荐(0) 编辑

SQLServer事务复制延迟优化之并行(多线程)复制

摘要: 事务复制的延迟 在数据库的主从复制过程中,包括MySQL的主从复制,SQLServer的事务复制等等,鉴于主节点往往是并发写入的,而从节点(SQLServer中叫做订阅节点)在重放主节点的写操作的时候,往往会产生一定时间的延迟,如何降低这种复制延迟,并行复制或者说多线程复制是其中手段之一。 SQLS 阅读全文

posted @ 2024-09-04 20:24 MSSQL123 阅读(26) 评论(0) 推荐(0) 编辑

2024年8月9日 #

SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法

摘要: 问题场景 SQL Server事务复制在正常创建发布和订阅之后,log reader Job 启动异常,出现“The process could not execute ‘sp_replcmds’ on xxx”等异常日志导致代理服务无法正常启动。 异常现象 参考下图,异常日志如下 Error me 阅读全文

posted @ 2024-08-09 19:47 MSSQL123 阅读(30) 评论(0) 推荐(0) 编辑

pg_dump与pg_restore的逻辑逻辑备份还原

摘要: 整理了一下pg_dump逻辑备份还原,pg啥时候推出一个库级别的物理备份还原就好,逻辑备份能行但操作大库效率太低,就像MySQL/MSSQL一样,跨实例做库级别还原的需求太多了 pg_dump备份 pg_dump备份 -F format 参数,备份文件的格式。format可以是下列之一: p pla 阅读全文

posted @ 2024-08-09 13:49 MSSQL123 阅读(46) 评论(0) 推荐(0) 编辑

2024年8月6日 #

SQLServer 事务复制订阅节点非活动状态(inactive)错误的处理:Error in replication::subscription(s) have been marked inactive and must be reinitialized

摘要: 事务复制中订阅节点非活动( inactive)错误 在SQLServer的事务复制模型中,会出现“订阅过期”的错误,相关订阅分发代理Job的典型错误如下:"Agent SQLNYC01-Onvoices-PubInvoicesInvoices-SQLNYC01-1353 is retrying af 阅读全文

posted @ 2024-08-06 20:47 MSSQL123 阅读(20) 评论(0) 推荐(0) 编辑

2024年7月29日 #

SQLServer 事务复制在发布端(publication)和订阅端(subscription)对应的数据库还原之后复制异常问题的解决

摘要: 书接上文,在一个正常的事务复制环境中,如果发生了数据库还原,事务复制会不会出问题,出问题之后又如何恢复,如果在不删除订阅发布重建的情况下,如何在现有基础上修复事务复制的异常,这个问题可以分为两部分看: 1,如果publisher数据库发生了还原操作,事务复制会出现什么异常,该如何恢复? 2,如果是s 阅读全文

posted @ 2024-07-29 21:26 MSSQL123 阅读(32) 评论(0) 推荐(0) 编辑

2024年7月24日 #

SQLServer非默认端口下事务复制代理作业服务无法启动的处理

摘要: SQL Server事务复制的结构 SQLServer事务复制的架构如下: 1,实例层面:主要有发布服务器,分发服务器,订阅服务器三个服务器,其中发布服务器是数据源,分发服务器是数据的中转站,订阅服务器是数据的目的地2,后台进程:主要有Snapshot Agent,Log Reader Agent, 阅读全文

posted @ 2024-07-24 21:08 MSSQL123 阅读(43) 评论(0) 推荐(0) 编辑

2024年7月11日 #

PostgreSQL流复制搭建

摘要: PostgreSQL流复制 postgresql物理复制也叫流复制,通过将主节点上的是redo日志(wal日志)传送到从节点来实现数据库的同步的,参考下图(侵删),正如逻辑复制里提到的 1,物理复制数据传递的原理:传递的wal也即redo日志,从节点上通过对物理日志进行redo的方式来实现数据的还原 阅读全文

posted @ 2024-07-11 19:52 MSSQL123 阅读(82) 评论(0) 推荐(0) 编辑

2024年7月10日 #

PostgreSQL逻辑复制搭建

摘要: 复制作为一种高可用/数据同步方案,在每一种数据库中都有实现,可以借助复制功能实现数据库的高可用或者数据同步/备份方案。 复制的分类 整体上看,复制可以分为物理复制和逻辑复制,对于物理复制或者逻辑复制,没有所谓的优劣,只有各自的适应场景。所谓的物理复制,也即复制数据库的redo物理日志,通过redo日 阅读全文

posted @ 2024-07-10 21:38 MSSQL123 阅读(92) 评论(0) 推荐(0) 编辑

2024年6月25日 #

如何快速在表级别做同构或者异构数据库之间的数据迁移/备份

摘要: 与库级别的备份还原这一重量级操作套路不同,单个表或者多个表的备份还原,亦或是跨实例或者异构数据库之间的数据同步,作为DBA日常处理的最多的问题之一,如何简洁,快速,高效地实现快速,是一个值得思考的问题? 同一个实例上表级别备份还原 对于源表和目标表,如果在同一个实例上,仅从SQL的层面就可以实现表级 阅读全文

posted @ 2024-06-25 21:23 MSSQL123 阅读(50) 评论(0) 推荐(0) 编辑

2024年6月3日 #

记一次基于倒序索引的SQL优化

摘要: 本文测试环境为SQLserver2019 背景 某业务流水表,会基于固定范围内的业务编号做写入以及查询操作,热数据的量级在亿级别,一个典型的查询是基于业务编码查询最新(时间戳)某种状态的前N条数据 简化后的表结构如下 create table TestTable01 ( id bigint iden 阅读全文

posted @ 2024-06-03 19:58 MSSQL123 阅读(143) 评论(0) 推荐(1) 编辑

2024年4月9日 #

redis 无盘复制(redis repl-diskless-sync)

摘要: 无盘复制的需求背景 redis在启动后自动生成一个唯一的标识符run_id,这个run_id在持久化的时候存在于RDB文件中(如果有启用RDB或者做了RBD备份操作),但是并不存在与AOF文件中(包括混合是持久化文件),如果下次重启从RDB加载数据,那么这个run_id可以保存。如果同时启用了RDB 阅读全文

posted @ 2024-04-09 20:53 MSSQL123 阅读(542) 评论(0) 推荐(1) 编辑

2024年1月29日 #

记一次MySQL从节点服务器宕机重启后,从节点出现主键冲突异常的处理

摘要: 环境 MySQL 5.7 非GTID模式多线程复制。 现象 某MySQL数据库从节点因故障宕机(因故障直接宕机,非正常关闭),重启之后发现复制状态异常,show slave的结果中Slave_SQL_Running为No,错误代码为1062 error code,从系统表performance_sc 阅读全文

posted @ 2024-01-29 20:04 MSSQL123 阅读(162) 评论(0) 推荐(0) 编辑

2024年1月17日 #

记一次SQLServer复制监控器(replication monitor)复制延迟数值为NULL的异常处理

摘要: 现象 在SQLServer复制(订阅发布),在正常运行的情况下,发布节点一直有写入,订阅节点也正常复制到了这些数据,但分发节点的复制监控器面板(replication monitor)无法看到部分发布对象的延迟信息。如下,经过重启SQLServer服务,重启SQLServer Agent服务,重启操 阅读全文

posted @ 2024-01-17 12:08 MSSQL123 阅读(122) 评论(0) 推荐(0) 编辑

2024年1月3日 #

对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型

摘要: 开始之前: 设计某数据库表结构的过程中,收到了一个另外令人感到意外的建议:对于字符型数据类型,数据库里统一使用varchar(max)来存储,也就是所有字符数据类型都用varchar(max)字段类型,理由是ORM写代码方便?是的,你没有听错,为了ORM中写代码方便,所以建议数据库中字符型字段全部使 阅读全文

posted @ 2024-01-03 21:39 MSSQL123 阅读(1390) 评论(0) 推荐(0) 编辑

2023年12月18日 #

SQLserver AlwaysOn 提交模式与节点的可用性

摘要: 接上文:https://www.cnblogs.com/wy123/p/17905118.html,关于AlwaysOn主副本与辅助副本之间提交模式与安全故障转移的话题 参考AlwaysOn属性面板中的信息 1,主节点异步提交模式:如果主要副本配置为“异步提交模式” ,则从节点不管是同步或者异步,主 阅读全文

posted @ 2023-12-18 22:07 MSSQL123 阅读(531) 评论(0) 推荐(0) 编辑

2023年12月16日 #

SQL Server 2019 非域&非集群环境创建Always On “只读扩展可用性组”(read-scale)

摘要: 在 SQL Server 2016 (13.x) 及更早版本中,所有可用性组都需要群集。 群集用于提供业务连续性,实现高可用性和灾难恢复 (HADR)。 此外,配置次要副本以执行读取操作。 如果目标不是高可用性,配置和运行群集消耗了相当大的运营开销。 SQL Server 2017 (14.x) 引 阅读全文

posted @ 2023-12-16 21:03 MSSQL123 阅读(844) 评论(6) 推荐(0) 编辑

2023年12月12日 #

(译)MySQL中的slave_exec_mode 参数详解(MySQL从节点跳过复制错误的处理,sql_slave_skip_counter VS slave-skip-errors VS slave_exec_mode)

摘要: 原文地址:https://www.soughttech.com/front/article/7159/viewArticle 今天我偶然看到了参数slave_exec_mode。从手册中的描述可以看出,该参数与MySQL复制有关。它是一个可以动态修改的变量。默认为STRICT mode(严格模式), 阅读全文

posted @ 2023-12-12 20:22 MSSQL123 阅读(317) 评论(0) 推荐(0) 编辑

2023年12月8日 #

备份压缩 (SQL Server)

该文被密码保护。 阅读全文

posted @ 2023-12-08 13:20 MSSQL123 阅读(0) 评论(0) 推荐(0) 编辑

2023年9月7日 #

译:SQLServer 事务复制延迟诊断

摘要: 原文地址:https://www.mssqltips.com/sqlservertip/3598/troubleshooting-transactional-replication-latency-issues-in-sql-server/ 问题 我安装了几个SQL Server 2012实例的集群 阅读全文

posted @ 2023-09-07 08:47 MSSQL123 阅读(463) 评论(0) 推荐(0) 编辑

2023年8月30日 #

译:如何成功恢复TDE加密过的数据库

摘要: 原文地址: https://www.mssqltips.com/sqlservertip/3572/recovering-a-sql-server-tde-encrypted-database-successfully/ 问题: 我的任务是在具有敏感信息的SQL Server数据库上设置透明数据加密 阅读全文

posted @ 2023-08-30 08:34 MSSQL123 阅读(236) 评论(0) 推荐(0) 编辑

2023年1月6日 #

Python中使用yield实现迭代器

摘要: 遇到复杂数据处理逻辑,想到可以使用Python的yield迭代器可以优雅地实现,切实体验到了迭代器的好处,多数情况下,代码不够优雅,特别是多层循环嵌套的,都可以常使用迭代器重构。 1,减少内存的占用,正如yield的经典用途,不必把所需的数据一次性生成到内存中,可以分批生成2,明确函数职责,代码更优 阅读全文

posted @ 2023-01-06 10:42 MSSQL123 阅读(165) 评论(0) 推荐(0) 编辑

2022年12月5日 #

(译)MySQL中的直方图统计信息

摘要: 什么是直方图,在MySQL 8.0.3如何创建直方图?MySQL的直方图是如何影响执行计划生成的?创建直方图有哪些注意事项?直方图和索引对优化器的选择上有什么差异,又该如何选择?如何判断直方图对执行计划的影响?MySQL官方blog的这篇文章用非常具体的示例回答了这一系列问题,let's go。原文 阅读全文

posted @ 2022-12-05 11:10 MSSQL123 阅读(300) 评论(0) 推荐(0) 编辑

2022年8月12日 #

译:在Python调用线程中处理线程异常(如何在主线程中捕获子线程异常)

摘要: python多线程中,主线程中如果捕获子线程的异常,笔者查阅了相关资料,有一种方式是使用队列(queue)将子线程的异常写入队列,然后主进程中去遍历异常消息队列,这种方式不近需要额外引入一个q对象,要同时遍历队列和判断线程状态,实现上上非常丑陋,后来发现如下方式,通过继承threading.Thre 阅读全文

posted @ 2022-08-12 17:14 MSSQL123 阅读(4117) 评论(0) 推荐(1) 编辑

2022年4月7日 #

cluster:提升postgresql性能(译)

摘要: cluster概念澄清 postgresql中没有聚集索引的概念,表都是以堆(heap)的方式存在,可以认为数据在物理存储上是无序的。cluster:这里的cluster不是指多个机器的组成的集群,而是指表中数据行按照某种方式物理排序存储。是一种改变postgresql表的物理存储的一种方案。适应场 阅读全文

posted @ 2022-04-07 19:46 MSSQL123 阅读(554) 评论(0) 推荐(0) 编辑

2022年4月4日 #

PostgreSQL执行计划:Bitmap scan VS index only scan

摘要: 之前了解过postgresql的Bitmap scan,只是粗略地了解到是通过标记数据页面来实现数据检索的,执行计划中的的Bitmap scan一些细节并不十分清楚。这里借助一个执行计划来分析bitmap scan以及index only scan,以及两者的一些区别。这里有关于Bitmap sca 阅读全文

posted @ 2022-04-04 14:19 MSSQL123 阅读(2142) 评论(0) 推荐(0) 编辑

2021年8月15日 #

MySQL中的显式锁---MySQL用户级锁函数

摘要: 类似于postgresql的咨询锁,MySQL也有用户级锁函数,是一个比较有意思的东西,之前都没有注意过。优点:其特点是使用起来更加灵活与个性,相比MySQL隐式的行级锁不同,用户级锁函数使用的可控性更强,可以个性化指定“锁的名称”和锁的过期时间,以及探测锁的可用性等。缺点:与传统的隐式锁不同的是, 阅读全文

posted @ 2021-08-15 10:52 MSSQL123 阅读(435) 评论(0) 推荐(0) 编辑

2021年8月3日 #

使用Python装饰器的tenacity库实现异常重试机制

摘要: Python异常重试如果某些方法需要重试,之前都是自己在except里写代码,很多时候实现起来并不方便,而且复杂逻辑下大大增加代码量和影响可读性,尝试了一下tenacity库,重试机制非常简单易用且清晰,且比retrying库简洁很多。1,第一种常规方式,不借助第三方库,需要自行再except里写代 阅读全文

posted @ 2021-08-03 12:09 MSSQL123 阅读(304) 评论(0) 推荐(0) 编辑

2020年12月23日 #

Redis 6.0 多线程性能测试结果及分析

摘要: 单线程的Redis一向以简洁高效著称,但也有其阿喀琉斯之踵:阻塞!单个线程在最容易产生瓶颈的网络读写(Redis大key,也包括其他一些重量级的操作sort/sunion/zunionstore/sdiff,集中性的expired key清理,内存溢出的maxmemory-policy策略等)请求完 阅读全文

posted @ 2020-12-23 20:45 MSSQL123 阅读(3799) 评论(2) 推荐(4) 编辑

2020年12月4日 #

在Postgre中设置max_connections时,为什么需要使用连接池 (译)

摘要: 原文地址:https://www.enterprisedb.com/postgres-tutorials/why-you-should-use-connection-pooling-when-setting-maxconnections-postgres PostgreSQL是“世界上最先进的开源数 阅读全文

posted @ 2020-12-04 19:07 MSSQL123 阅读(3897) 评论(0) 推荐(0) 编辑

2020年11月19日 #

既然python的多线程是"伪多线程",那么多线程访问共享资源的时候,还需要线程锁吗

摘要: 最近处理的大多数任务都是基于python的多线程实现的,然而使用python逃避不开的一个话题就是,python的GIL(的全称是 Global Interpreter Lock)全局解释器锁是单线程的,那么是不是意味着python的多线程也是串行的?多线程对共享资源的使用就不需要锁(线程锁)了? 阅读全文

posted @ 2020-11-19 10:08 MSSQL123 阅读(1073) 评论(0) 推荐(0) 编辑

2020年11月10日 #

Debugging: MISCONF Redis is configured to save RDB snapshots(译)

摘要: 最近遇到应用程序客户端在往redis中写入数据的时候发生了一个这样一个错误:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that m 阅读全文

posted @ 2020-11-10 23:20 MSSQL123 阅读(695) 评论(0) 推荐(0) 编辑

2020年11月2日 #

MySQL集群故障转移的时候在基于python的客户端连接层自动failover实现

摘要: 数据库的集群或者是分布式,越来越成为一个趋势,对于相对较为年轻的Redis或者MongoDB集群,集群在不需要任何第三方工具,本身就可以完成高可用(自动故障转移),同时对应用程序非常友好,类似于Jedis、MongoCliet等客户端,应用端以“智能化”地判断读集群中节点的读写属性去访问数据,而无需 阅读全文

posted @ 2020-11-02 19:38 MSSQL123 阅读(556) 评论(0) 推荐(0) 编辑

2020年8月14日 #

postgresql中的咨询锁(advisory lock)

摘要: 咨询锁(advisory lock),有的地方翻译为顾问锁,作为Postgresql中一种特有的锁,关于对其介绍,仅从咨询锁的描述性定义来看,一开始还真的没明白这个咨询锁是干什么的。 暂时抛开咨询锁的概念,先说数据库中传统的锁机制。默认情况下的事务性锁,读/写会自动加锁,读/写完成后会自动解锁(加解 阅读全文

posted @ 2020-08-14 13:01 MSSQL123 阅读(5758) 评论(0) 推荐(0) 编辑

2020年8月10日 #

PostgreSQL Shared Buffers 全面指南(译)

摘要: 译者注:与MySQL设置innodb_buffer_pool_size = 80%左右的系统内存相比,也就是将操作系统大部分内存分配给Innodb的buffer pool的缓存管理机制不同,Postgresql采用数据库采用实例buffer和操作系统buffer双缓存(effective_cache 阅读全文

posted @ 2020-08-10 13:36 MSSQL123 阅读(4855) 评论(0) 推荐(1) 编辑

2020年8月5日 #

Postgres 日志监控:阻塞,死锁,Checkpoint 优化(译)

摘要: 原文地址:https://pganalyze.com/blog/postgresql-log-monitoring-101-deadlocks-checkpoints-blocked-queries 部分运维PostgreSQL数据库的人通常有很多工作要做,并且没有足够的时间来定期查看Postgre 阅读全文

posted @ 2020-08-05 13:43 MSSQL123 阅读(2955) 评论(0) 推荐(1) 编辑

2020年7月30日 #

PostgreSQL MVCC原理以及事务可见性对执行计划的影响

摘要: 先从上次遇到的一个执行计划相关的疑问入手,类似于select count(1) from table的查询,可以在即某些较小字段上的索引进行扫描来替代全表扫描来实现count优化,这是一个MySQL中传统的优化套路,但是在postgresql中类似场景总是会走全表扫描而不是预期的索引扫描,为什么同样 阅读全文

posted @ 2020-07-30 22:46 MSSQL123 阅读(1408) 评论(0) 推荐(0) 编辑

2020年7月28日 #

PostgreSQL执行计划概述

摘要: 执行计划个人理解是一个“点”,“线”,“面”的问题,关系数据库中执行计划是一个同质化的对象,串联起来还是比较容易掌握的,对于一条复杂的sql,所谓的点就是其中单个表的访问方式,线是表之间的连接\驱动顺序,面就是表与表之间的具体连接算法以及中间结果在内存缓冲区中的处理(类似于bitmap scan,中 阅读全文

posted @ 2020-07-28 23:23 MSSQL123 阅读(5435) 评论(1) 推荐(3) 编辑

2020年7月25日 #

PostgreSQL中的位图索引扫描(bitmap index scan)

摘要: 从MySQL的MRR开始 开始之前,先从MySQL入手,看一下MySQL中的MRR机制原理,也就是Multi-Range Read。MySQL中在按照非聚集索引的范围查找且需要回表的情况下,比如select * from t where c2>100 and c2<200;c2为非聚集索引。如果直接 阅读全文

posted @ 2020-07-25 17:32 MSSQL123 阅读(10176) 评论(1) 推荐(0) 编辑