之前吐槽了很多年的统计信息自动更新阈值算法(操蛋的500+(0.20n)),其实早在SQLServer2016中就有优化过了,一直没有注意这个细节,汗颜!https://www.cnblogs.com/wy123/p/5790855.htmlhttps://www.cnblogs.com/wy123/p/5875237.html 参考官方文档:https://learn.microsoft.com/en-us/sql/relational-databases/statistics/statistics?view=sql-server-ver16   最显著的变化,在SQLServe...

  4fC8pwYp1Qxy   6天前   22   0   0 SQL Server

背景 前些年用python写过一个RedisCluster自动化安装,扩容和缩容的工具,虽然当时官方的的redis-trib.rb集群创建工具提供了集群创建、检查、修复、均衡等命令行功能,个人接受不了redis-trib.rb,原因在于redis-trib.rb需要ruby的环境,同时无法自定义指定集群中节点的主从关系。随后Redis5.0版本中将集群的创建集成到Redis-cli中,免去了ruby环境的依赖,但是在创建集群的时候,同样无法直接指定主从节点,如何自定义实现集群中节点的主从关系问题,强迫症要求笔者必须尝试如何指定具体的主从节点。 以下使用单机多实例的方式做测试验证,本地启用8个R...

  4fC8pwYp1Qxy   13天前   39   0   0 NoSQL

事务复制的延迟 在数据库的主从复制过程中,包括MySQL的主从复制,SQLServer的事务复制等等,鉴于主节点往往是并发写入的,而从节点(SQLServer中叫做订阅节点)在重放主节点的写操作的时候,往往会产生一定时间的延迟,如何降低这种复制延迟,并行复制或者说多线程复制是其中手段之一。   SQLServer事务复制分发线程 参考如下图例涉及的事务复制相关的线程,类似于MySQL的MTS多线程并行复制技术,SQLServer数据的事务复制同步过程中,数据库在主节点(publication发布节点)上以并发的形式写入,从节点(Subscribtion订阅节点)默认情况下以单...

  4fC8pwYp1Qxy   13天前   32   0   0 SQL Server

  整理了一下pg_dump逻辑备份还原,pg啥时候推出一个库级别的物理备份还原就好,逻辑备份能行但操作大库效率太低,就像MySQL/MSSQL一样,跨实例做库级别还原的需求太多了 pg_dump备份 pg_dump备份 -Fformat参数,备份文件的格式。format可以是下列之一: pplain 输出一个纯文本形式的SQL脚本文件(默认值)。 ccustom 输出一个适合于作为pg_restore输入的自定义格式归档。和目录输出格式一起,这是最灵活的输出格式,它允许在恢复时手动选择和排序已归档的项。这种格式在默认情况还会被压缩。 ddirectory 输出一个适合作为pg_...

  4fC8pwYp1Qxy   2024年08月09日   56   0   0 PostgreSQL

问题场景 SQLServer事务复制在正常创建发布和订阅之后,logreaderJob启动异常,出现“Theprocesscouldnotexecute‘sp_replcmds’onxxx”等异常日志导致代理服务无法正常启动。   异常现象 参考下图,异常日志如下 Errormessages: Theprocesscouldnotexecute‘sp_replcmds’onxxx. Cannotexecuteasthedatabaseprincipalbecausetheprincipal“dbo”doesnotexist,thistypeofprincipalcannotbei...

  4fC8pwYp1Qxy   2024年08月09日   23   0   0 SQL Server

  书接上文,在一个正常的事务复制环境中,如果发生了数据库还原,事务复制会不会出问题,出问题之后又如何恢复,如果在不删除订阅发布重建的情况下,如何在现有基础上修复事务复制的异常,这个问题可以分为两部分看: 1,如果publisher数据库发生了还原操作,事务复制会出现什么异常,该如何恢复? 2,如果是subscription数据库发生了还原操作,事务复制会不会出现什么异常?   还原发布端数据库的场景 首先看第一种情况,如果publisher数据库发生了还原操作,由事务复制的架构可以发现,如果出现问题,此时问题一定会出现在publication和distribution之间...

  4fC8pwYp1Qxy   2024年08月07日   69   0   0 SQL Server

复制作为一种高可用/数据同步方案,在每一种数据库中都有实现,可以借助复制功能实现数据库的高可用或者数据同步/备份方案。 复制的分类 整体上看,复制可以分为物理复制和逻辑复制,对于物理复制或者逻辑复制,没有所谓的优劣,只有各自的适应场景。所谓的物理复制,也即复制数据库的redo物理日志,通过redo日志在从节点(或者目标端)回放该日志来实现数据的同步,比如SQLServer的镜像/AG可用性组,postgresql的流复制等都属于物理复制,MySQL没有物理复制所谓的逻辑复制,通过把主节点上的sql语句传到从节点,同样通过回放来实现数据的一致性。不同的是,物理复制相比逻辑复制效率较高,但是粒度...

  4fC8pwYp1Qxy   2024年08月07日   69   0   0 PostgreSQL

  PostgreSQL流复制 postgresql物理复制也叫流复制,通过将主节点上的是redo日志(wal日志)传送到从节点来实现数据库的同步的,参考下图(侵删),正如逻辑复制里提到的 1,物理复制数据传递的原理:传递的wal也即redo日志,从节点上通过对物理日志进行redo的方式来实现数据的还原,想对重新执行sql的逻辑日志来说效率会更高。 2,物理复制数据传递的范围:物理复制是实例级的,因此没有所谓的逻辑复制的发布(publication)订阅(subscribution)对象,整个搭建过程相对简单不少。   主节点配置 主节点配置 主节点 复制同步模式 sy...

  4fC8pwYp1Qxy   2024年08月07日   32   0   0 PostgreSQL

SQLServer事务复制的结构 SQLServer事务复制的架构如下: 1,实例层面:主要有发布服务器,分发服务器,订阅服务器三个服务器,其中发布服务器是数据源,分发服务器是数据的中转站,订阅服务器是数据的目的地2,后台进程:主要有SnapshotAgent,LogReaderAgent,distrubutionAgent三个进程组成,  SnapshotAgent负责对现有数据库生成快照,也即导出发布对象的内容(schema+data)到快照目录,该进程只会在发布创建后执行一次,一个发布对应一个SnapshotAgent服务,在下图中没有体现出来。  LogReaderAgent进程复制将...

  4fC8pwYp1Qxy   2024年08月07日   64   0   0 SQL Server

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

  4fC8pwYp1Qxy   2024年08月07日   35   0   0 MySQL

本文测试环境为SQLserver2019 背景 某业务流水表,会基于固定范围内的业务编号做写入以及查询操作,热数据的量级在亿级别,一个典型的查询是基于业务编码查询最新(时间戳)某种状态的前N条数据 简化后的表结构如下 createtableTestTable01 ( idbigintidentity,--主键Id,自增 business_codechar(7),--业务编码,一定范围内(测试代码从BC00001BC00200) business_timestampdatetime2,--业务发生时间戳 business_valuedecimal(15,3),--业务发生时涉及的数值...

  4fC8pwYp1Qxy   2024年08月06日   33   0   0 SQL Server

无盘复制的需求背景 redis在启动后自动生成一个唯一的标识符run_id,这个run_id在持久化的时候存在于RDB文件中(如果有启用RDB或者做了RBD备份操作),但是并不存在与AOF文件中(包括混合是持久化文件),如果下次重启从RDB加载数据,那么这个run_id可以保存。 如果同时启用了RDB和AOF持久化,redis重启时会优先加载AOF文件,如果从AOF加载,那么这个run_id会重新生成。 redis复制环境下(不管是简单的主从复制,Sentinel,Cluster)主从节点之间依赖run_id做身份标识,当redis重启后,如果不是从RDB中加载的,其身份标识run_id...

  4fC8pwYp1Qxy   2024年04月10日   137   0   0 NoSQL

环境 MySQL5.7非GTID模式多线程复制。 现象 某MySQL数据库从节点因故障宕机(因故障直接宕机,非正常关闭),重启之后发现复制状态异常,showslave的结果中Slave_SQL_Running为No,错误代码为1062errorcode,从系统表performance_schema.replication_applier_status_by_worker以及errorlog中显示某条数据因为已存在于从节点,主从复制的sql线程试图再次插入这个数据从而导致从节点上数据的主键冲突而失败 原因分析 上述故障发生之前,确信从节点不会写入数据,既然确信从节点的数据不是外界写入的,那么为...

  4fC8pwYp1Qxy   2024年02月19日   40   0   0 MySQL

  现象 在SQLServer复制(订阅发布),在正常运行的情况下,发布节点一直有写入,订阅节点也正常复制到了这些数据,但分发节点的复制监控器面板(replicationmonitor)无法看到部分发布对象的延迟信息。如下,经过重启SQLServer服务,重启SQLServerAgent服务,重启操作系统等尝试后,均无效,依旧显示不出来复制的latency信息。 查询复制监控器面板后台的存储过程sp_replmonitorhelpsubscription (本质上上述图形界面显示的就是这个系统存储过程的结果),同样地,latency字段为NULL。 这就有点讲不...

  4fC8pwYp1Qxy   2024年01月17日   34   0   0 SQL Server

开始之前: 设计某数据库表结构的过程中,收到了一个另外令人感到意外的建议:对于字符型数据类型,数据库里统一使用varchar(max)来存储,也就是所有字符数据类型都用varchar(max)字段类型,理由是ORM写代码方便?是的,你没有听错,为了ORM中写代码方便,所以建议数据库中字符型字段全部使用varchar(max)数据类型。这是中了ORM多深的毒!!! 对于这个问题,真的非常非常非常意外,有人竟然提出这种“建议”,我第一反应是想反问:为啥你上下班通勤,开个小轿车,而不是开个载重80吨的重型卡车?重型卡车想对小轿车又结实,又能走烂路,又能更多地载重,牵引力又大,空间也大,双肩...

  4fC8pwYp1Qxy   2024年01月04日   39   0   0 SQL Server

接上文: https://www.cnblogs.com/wy123/p/17905118.html,关于AlwaysOn主副本与辅助副本之间提交模式与安全故障转移的话题 参考AlwaysOn属性面板中的信息 1,主节点异步提交模式:如果主要副本配置为“异步提交模式” ,则从节点不管是同步或者异步,主节点提交事务都无须等待从节点(永远是异步模式)。  2,主节点同步提交模式:需要分两种情况   2.1 如果从节点是同步模式,则主节点与从节点同步提交(同步模式)   2.2如果从节点是异步模式,则主节点提交事务都无须等待从节点(异步模式)...

  4fC8pwYp1Qxy   2023年12月22日   126   0   0 SQL Server

   SQLServer2019开始支持“read-scaleforanAlwaysOnavailabilitygroup”,中文翻译的很别扭,是"读取缩放",繁体版翻译为“读取级别”,其特点不依赖于windows的cluster集群以及域,简化了搭建操作步骤和前置条件,与传统的availabilitygroups类似,缺点是无法实现自动故障转移,本质上是一个不带自动故障转移的availabilitygroups。 另外跑一下题:很多人说微软的文档好,据了解,SQLserver的文档大部分都是机器翻译的(点击这里有搞笑的翻译案例)正如上面截图中提示的“本主题有部分内容为机器翻译”...

  4fC8pwYp1Qxy   2023年12月17日   50   0   0 SQL Server

遇到复杂数据处理逻辑,想到可以使用Python的yield迭代器可以优雅地实现,切实体验到了迭代器的好处,多数情况下,代码不够优雅,特别是多层循环嵌套的,都可以常使用迭代器重构。 1,减少内存的占用,正如yield的经典用途,不必把所需的数据一次性生成到内存中,可以分批生成2,明确函数职责,代码更优雅,可以遍历“迭代器函数”后进行逻辑处理,而不是原函数内部做逻辑处理 迭代器返回部分结果 defget_data_from_mysql(batch_size): target_conn={'host':'...','database':'db01','port':8000,'user':'root...

  4fC8pwYp1Qxy   2023年11月02日   64   0   0 Python

什么是直方图,在MySQL8.0.3如何创建直方图?MySQL的直方图是如何影响执行计划生成的?创建直方图有哪些注意事项?直方图和索引对优化器的选择上有什么差异,又该如何选择?如何判断直方图对执行计划的影响?MySQL官方blog的这篇文章用非常具体的示例回答了这一系列问题,let'sgo。 原文地址为https://dev.mysql.com/blog-archive/histogram-statistics-in-mysql/,以下为译文:     从MySQL8.0.3开始,您可以创建直方图统计信息,以便向优化器提供更多的统计信息。在这篇博文中,我们将看...

  4fC8pwYp1Qxy   2023年11月01日   299   0   0 MySQL

原文地址: https://www.mssqltips.com/sqlservertip/3572/recovering-a-sql-server-tde-encrypted-database-successfully/   问题: 我的任务是在具有敏感信息的SQL Server数据库上设置透明数据加密(TDE)。在我看到的示例中,我知道我需要主数据库中的主密钥,然后需要用该主密钥加密的证书。 一个浮现在脑海中的问题是, 如果我选择将数据库恢复到不同的服务器上我的数据库主密钥是否必须具有相同的密码?我见过的每个例子都包含相同的密码。为了成功还原,我还需要计...

  4fC8pwYp1Qxy   2023年11月01日   95   0   0 SQL Server
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~