自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【etcd】二进制安装etcd

提供了两个下载地址 一个 Google 一个 Github, 不过都需要外网。上传到需要安装的服务器上。将二进制命令 移动到。指定 etcd 的版本。注释调删除目录的部分。

2025-01-23 17:01:13 214

原创 【Patroni官方文档】介绍与目录

对于希望在数据中心或其他任何地点快速部署 HA PostgreSQL 的 Database engineers, DBAs, DevOps engineers,还有 SREs 来说,Patroni 将是一个有用的工具。Citus 用户须知:从 3.0 版本开始,Patroni 能够很好地与 Citus(Postgres 的数据库扩展)集成。有关如何使用 Patroni 高可用性配合 Citus 分布式集群的更多信息,请参阅 Patroni 文档中的 Citus 支持页面。它会有自己的局限性。

2025-01-03 17:47:32 134

原创 【PostgreSQL】PG多实例部署

注释 PGPORT 和 PGDATA 环境变量。初始化第二个实例,只是创建文件,不会启动。

2025-01-02 21:15:14 200

原创 【Patroni官方文档】Patroni REST API

Patroni拥有一个丰富的REST API,该API在领导者选举期间由Patroni自身使用,由patronictl工具用于执行故障转移/切换/重新初始化/重启/重载操作,由HAProxy或其他类型的负载均衡器用于执行HTTP健康检查,当然也可用于监控。以下是Patroni REST API端点的列表。

2024-12-31 16:47:52 97

原创 【Mongo工具】Mongo迁移工具之Mongo-shake

Mongo-Shake 是一个基于 MongoDB 操作日志(oplog)的通用服务平台。它从源 MongoDB 数据库中获取操作日志,并在目标 MongoDB 数据库中重放,或者通过不同的隧道发送到其他终端。如果目标端是 MongoDB 数据库,即直接重放操作日志,那么它就像一个同步工具,用于将数据从源 MongoDB 复制到另一个 MongoDB,以构建冗余复制或双主复制。除了这种直接方式外,还有其他类型的隧道,如rpc, file, tcp, kafka。

2024-12-20 19:00:58 879

原创 【ETCD】ETCD用户密码认证

中增加了身份验证功能。etcd v3 API对身份验证功能的API和用户界面进行了轻微修改,以更好地适应新的数据模型。本指南旨在帮助用户在etcd v3中设置基本身份验证和基于角色的访问控制。

2024-12-03 10:24:28 1067

原创 摄影课-光圈与景深

注:最学术的写法应该是“f 值”,相应的各光圈值是应该是 f/2、f/2.8、f/4、f/5.6、我们通常用 F 值来表示光圈大小,它的计算方式是:光圈 F 值 = 镜头的焦距 / 光圈口径。f/8、f/11、f/16 等,但为了文字在视觉上协调,我在下面的课里都直接写成了 F2、镜头,我们不能随便改变镜头本身的直径,但我们可以在镜头里放一些多边形叶片,它们围。成一圈儿,中间留个孔,我们可以通过改变它们的收缩幅度以控制中间那个孔的大小,然后。,F 值小的是大光圈,F 值大的是小光圈。以此控制镜头的通光量。

2024-11-25 21:12:13 237

原创 【Patroni官方文档】FAQ

系统标识符的不匹配导致Patroni中止对第二个集群的管理,因为它认为这指的是不同的集群,并且用户已错误配置了Patroni。如果您遇到第2种或第3种情况,Patroni将根据集群的当前状态重新创建状态信息,并基于存储在Patroni集群每个成员Postgres数据目录中的名为patroni.dynamic.json的备份文件,在DCS上重新创建动态配置。Patroni在分布式配置存储(DCS)中存储集群的状态,其中包括一个领导者锁,该锁持有当前作为集群领导者的Patroni成员的名称。

2024-11-18 16:38:55 1604

原创 【Patroni官方文档】HA multi datacenter(多数据中心)

如果只有两个数据中心,那么最好拥有两个独立的etcd集群,并在第二个数据中心运行Patroni备用集群。我们必须通过不同的数据中心部署一个etcd、ZooKeeper或Consul集群,至少包含3个节点,每个区域一个。在此之前,您可以手动检查数据库,并提取出DC1和DC2之间网络停止工作到您手动停止DC1集群之间发生的所有更改。在多数据中心部署的PostgreSQL集群的高可用性基于复制技术,这种复制可以是同步的或异步的(即复制模式)。如果源集群仍然在运行,并且您提升了备用集群,那么就会出现脑裂现象。

2024-11-18 15:30:41 142

原创 【Patroni官方文档】Security Considerations

restapi部分的参数启用了到服务器的TLS客户端认证。根据verify_client参数的值,API服务器要求对所有安全和不安全的API调用(verify_client: required)或仅对不安全的API调用(verify_client: optional)或不对任何API调用(verify_client: none)进行成功的客户端证书验证。从安全角度来看,REST API包含安全的(GET请求,仅检索信息)和不安全的(PUT、POST、PATCH和DELETE请求,更改节点状态)端点。

2024-11-18 15:28:47 106

原创 【Patroni官方文档】Convert a Standalone to a Patroni Cluster

如果要在不使用预先存在的PostgreSQL实例的情况下部署Patroni集群,请参阅“运行和配置”部分。

2024-11-18 15:25:57 82

原创 【Patroni官方文档】DCS Failsafe Mode

也就是说,只有当节点能够在DCS中更新领导者锁定时,它才被允许以主节点的身份运行PostgreSQL。如果启用了故障安全模式,并且由于与版本/值/索引不匹配不同的原因,DCS中的领导者锁定更新失败,那么只要PostgreSQL能够通过Patroni REST API访问集群的所有已知成员,它就可以继续以主节点的身份运行。在DCS“中断”的情况下,现有的主节点通过POST /failsafe REST API连接到/failsafe键中列出的所有成员,如果所有副本都确认其身份,则可以继续以主节点的身份运行。

2024-11-18 15:18:14 130

原创 【Patroni官方文档】Pause/Resume mode for the cluster

在某些情况下,Patroni需要暂时停止管理集群,但仍需在分布式配置存储(DCS)中保留集群状态。在这些活动期间,节点可能会因Patroni未知的原因启动和停止,某些节点甚至可能被临时提升为主节点,违反了仅运行一个主节点的假设。因此,Patroni需要能够“脱离”正在运行的集群,实现与Pacemaker中维护模式等效的功能。用户还可以向{namespace}/{cluster}/config键发送PATCH请求,请求体为{"pause": true/false/null}。

2024-11-18 15:14:12 73

原创 【Patroni官方文档】WatchDog Support

为了绝对确保看门狗在所有情况下都能触发,请将看门狗设置为在TTL的一半后过期,通过将安全裕量设置为-1来设置看门狗超时为ttl // 2。在loop_wait=10和ttl=30的默认设置下,这给了高可用性循环至少15秒(ttl - 安全裕量 - loop_wait)的时间在系统被强制重置前完成。这意味着当DCS由于网络问题等原因不可用时,Patroni和PostgreSQL将有至少5秒(ttl - 安全裕量 - loop_wait - 重试超时)的时间来达到所有客户端连接都被终止的状态。

2024-11-18 15:11:57 103

原创 【Patroni官方文档】Standby cluster(备用集群)

备用集群与其所复制的主集群之间没有其他关系,特别是,如果它们使用相同的DCS,则它们必须不能共享相同的 DCS scope。如果在备用集群上使用复制槽,则还必须在主集群上创建相应的复制槽。您可以在主集群上使用Patroni的永久复制槽功能来维护一个与primary_slot_name同名的复制槽,或者如果未提供primary_slot_name,则使用默认值。还有一种可能性是从另一个备用集群或从主集群的备用成员复制备用集群:为此,您需要在standby_cluster.host部分中定义一个主机。

2024-11-18 15:04:52 121

原创 【Patroni官方文档】复制模式

在上述示例中,如果主节点(node0)发生故障,node1、node2和node3中的两个将接收到最新的事务,但我们不知道是哪两个。在此模式下,Patroni在DCS中维护同步状态,包含最新的已知主数据库、达到仲裁所需的节点数以及当前有资格对仲裁进行投票的节点。,仍有可能丢失事务。当主服务器和当前作为同步副本的从服务器同时发生故障时,可能会提升一个可能不包含所有事务的第三个节点。默认情况下,在进行领导者选举时,Patroni 不会考虑副本的当前时间线,这在某些情况下可能是不理想的行为。

2024-11-18 14:54:45 253

原创 【Patroni官方文档】patronictl 命令详解

Patroni 提供了一个名为 patronictl 的命令行界面,主要用于与 Patroni 的 REST API 和分布式配置存储(DCS)进行交互。,无论是人类用户还是脚本都能轻松使用。:如何对 Patroni 的 REST API 进行身份验证,以及如何验证服务器身份。更多详细信息请参考 ctl 设置;:如何对 Patroni 的 REST API 进行身份验证,以及如何验证服务器身份。仅当 ctl 配置不足时才使用。

2024-11-15 17:55:14 359

原创 【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni0 Patroni 对Python的版本要求我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出)Version 3.0.2Version 3.0.2 dropped support of Python older than 3.6.版本3.0.2不再支持3.6版本以下的P

2024-11-14 20:51:40 632

原创 【Patroni官方文档】Patroni REST API

Patroni 拥有一个丰富的 REST API,该 API以下列出了 Patroni REST API 的端点。

2024-11-13 16:59:09 104

原创 【Patroni官方文档】Replica imaging and bootstrap 创建副本与启动新集群

Patroni允许自定义如何创建新副本。它还支持定义当新的空集群启动时做什么操作。

2024-11-13 16:46:09 134

原创 ETCD配置文件详解

etcd可通过配置文件、各种命令行标志和环境变量进行配置。一个可复用的配置文件是一个YAML文件,其中包含下面描述的一个或多个命令行标志的名称和值。为了使用这个文件,需要将文件路径作为值指定给--config-file标志。示例配置文件可以用作创建新配置文件的起点,根据需要进行调整。命令行上设置的选项会覆盖环境变量中的设置。如果提供了配置文件,则其他命令行标志和环境变量将被忽略。例如,etcd --config-file etcd.conf.yml.sample --data-dir /tmp会

2024-11-12 18:00:45 1375

原创 【Patroni官方文档】安装

Patroni包不是由Patroni开发人员维护的,而是由Postgres社区维护的。在使用pip安装Patroni时,在依赖列表中指定psycopg、psycopg2或psycopg2-binary之一。如果您使用的是RedHat Enterprise Linux衍生操作系统,您可能还需要来自EPEL的包,请参阅。如果您的RedHat衍生发行版不提供包,您可以从PGDG安装etcd。您还可以找到Patroni直接依赖的包,例如可能在官方操作系统存储库中不可用的Python模块。

2024-11-12 11:18:10 251

原创 【Patroni官方文档】配置文件

如果节点需要重启才能应用配置(例如,对于上下文为 postmaster 的 PostgreSQL 参数,如果它们的值已更改),则会在 members.data JSON 中设置一个特殊的标志 pending_restart 来指示这一点。这些选项在配置文件中定义,并优先于动态配置。对于这些参数,无论是在本地 Patroni 配置文件中设置的值,还是通过环境变量设置的值,都不会生效。:创建一个示例的Patroni配置文件,其参数值使用环境配置定义,或者如果未设置,则使用Patroni中的默认值或。

2024-10-30 16:46:28 279

原创 【MySQL工具】pt-archiver

用法:pt-archiver [选项] --source DSN --where WHEREpt-archiver 从MySQL表中逐条处理记录。--source 和 --dest 参数使用DSN(数据源名称)语法;如果COPY设置为yes,则--dest默认为--source中键的值。

2024-10-29 14:52:08 1270 1

原创 【MySQL备份】使用XtraBackup搭建GTID主从复制

因为空间不够了,使用move-back 方式 ,这种方式速度也比较快。同时删除其他目录下的文件,比如 logs run tmp。恢复数据之前需要关闭数据库 ,同时删除数据文目录。修改数据目录用户属组 为mysql:mysql。这里给了all 权限。

2024-10-24 12:00:27 740

原创 【MySQL备份】Percona XtraBackup

Percona XtraBackup是全球唯一一款开源且免费的MySQL热备份软件,能够为InnoDB和XtraDB数据库执行非阻塞备份。快速且可靠的备份完成备份期间事务处理不间断节省磁盘空间和网络带宽自动备份验证由于恢复时间更快,因此系统正常运行时间更长请查看Percona软件和平台生命周期中的兼容性矩阵,了解Percona XtraBackup支持哪些版本的MySQL、MariaDB以及Percona Server for MySQL,并且支持对任何类型的备份进行加密。

2024-10-23 17:08:17 1018

原创 【Patroni官方文档】配置2-YAML配置

这些选项在配置文件中定义,并优先于动态配置。patroni.yml 可以在运行时更改并重新加载(无需重启 Patroni),方法包括向 Patroni 进程发送 SIGHUP 信号、执行 POST /reload REST-API 请求或运行 patronictl reload 命令。本地配置可以是一个单独的 YAML 文件,也可以是一个目录。如果它是一个目录,则该目录中的所有 YAML 文件将按排序顺序逐一加载。如果多个文件中定义了相同的键,则最后一个文件中出现的定义将具有优先权。

2024-10-10 17:41:13 1317

原创 【Patroni官方文档】配置3-环境变量设置

可以通过系统环境变量覆盖Patroni配置文件中定义的一些配置参数。本文档列出了Patroni处理的所有环境变量。通过这些变量设置的值总是优先于Patroni配置文件中设置的值。

2024-10-10 17:21:30 1272

原创 【Patroni官方文档】配置文件4-重要规则

动态选项(上述例外情况除外)会转储到postgresql.conf中,并在postgresql.conf中设置一个包含到基本配置(无论是postgresql.base.conf还是custom_conf指定的文件)的引用。这允许为所有节点(2)进行配置,使用ALTER SYSTEM为特定节点进行配置(3),并确保对Patroni运行至关重要的参数得到强制执行(4),同时为直接管理postgresql.conf而不涉及Patroni的配置工具留出空间(1)。在大多数情况下,本地配置将覆盖动态配置。

2024-10-10 17:20:26 993

原创 【Patroni官方文档】配置文件5-配置生成与验证

为本地运行的 PostgreSQL 实例生成一个 yaml 格式的 Patroni 配置。参数值使用环境配置进行定义,否则,如果未设置,则使用 Patroni 中的默认值或。为本地运行的 PostgreSQL 实例创建一个 Patroni 配置文件(例如,作为 Patroni 集成的准备步骤);:可选标志,用于在验证配置文件时忽略已在使用中的监听端口的绑定失败。:从运行的实例中收集的 Postgres 二进制文件的路径。验证给定的 Patroni 配置,并打印有关失败检查的信息。

2024-10-10 17:17:34 1063

原创 【Patroni官方文档】配置1-动态配置

如果某个节点缺失,并且其在分布式配置存储(DCS)中的成员密钥已过期,那么在该成员密钥的槽生存时间(member_slots_ttl,默认值为30分钟)之后,将删除相应的复制槽。虽然这在某些情况下可能很有用,例如当您希望成员使用的复制槽在临时故障期间持续存在或将现有成员导入新的Patroni集群时(请参阅“将独立数据库转换为Patroni集群”以获取详细信息),但操作员应谨慎行事,确保这些名称冲突不会持久保存在DCS中,当槽不再需要时,由于其对Patroni正常功能的影响。:在远程节点上用于复制的槽名称。

2024-10-10 17:07:12 1165

原创 【PG备份恢复】pg_basebackup

备份将包括数据目录和表空间中的所有文件,包括配置文件以及由第三方放在该目录中的任何额外文件,不过由PostgreSQL管理的特定临时文件除外。如果集簇包含额外的表空间,主数据目录将被放置在目标目录中,但是所有其他表空间将被放在它们位于源服务器上的相同的绝对路径中。这可能会使备份花费的时间稍长一些,特别是在发送第一个数据之前,备份将花费更长的时间。默认值是 10 秒。特别地,当 WAL 日志被包括在备份中时,总数据量无法预先估计,并且在这种情况中估计的目标尺寸会在它经过不带 WAL 的总估计后增加。

2024-09-26 10:33:48 1264

原创 【PG备份恢复】基于时间点的恢复(踩坑指南)

因为备份的时候加了-R 所以会创建 standby.signal 文件 ,如果你是想让改实例作为主库启动 将该文件删除。假如以下场景发生: 有研发删除了foo全表 ,或者错误更新了foo全表 ,或者机房故障导致数据库启动不了。查看归档目录 ,可以看到 0000000A0000000000000020 日志已经归档。如果只用全备恢复,从全备时刻到故障时刻的增量的DML 就会丢失。再次查看当前的WAL日志,可以看到 由原来的20 变为了 21。不再使用,如果该文件存在,服务器将无法启动。

2024-09-25 17:49:40 1156

原创 【PG备份】逻辑备份pg_dumpall

pg_dumpall — 将一个PostgreSQL数据库集簇抽取到一个脚本文件中。

2024-09-18 17:06:41 1235

原创 MySQL查询不区分A,a和 ã

‌字母a上有一个~符号‌通常出现在葡萄牙语中,这个符号称为鼻音符号,只出现在元音字母a上,表示该元音字母要发鼻音。在葡萄牙语中,鼻音符号"~"可以出现在元音字母a上,形成"ã"这个音节,表示该元音发鼻音。这是波浪号被用来表示鼻音化的起源。直到17世纪为止,用以忽略「n」或「m」的母音上之波浪号持续被用在法语出版书籍上以缩短文章的长度。当「n」或「m」跟在一母音后时,它常常会被忽略掉,而将波浪号放在前一母音上面来表示此一忽略子母。在语言里,波浪号是放在字母上的一变音符音,用来表示发音的改变,如鼻音化。

2024-08-28 16:48:33 273

原创 MySQL字符集参数详解

最近收到研发的需求是线上业务表中有个字段需要存储表情 ,但是目前该实例设置的字符集为utf8 ,所以需要改成utf8mb4。数据库中关于字符集的参数有很多,大家是否真的理解这些字符集的含义以下是MySQL官方文档(5.7版本)中关于字符集参数的解释。

2024-08-15 16:45:01 978

原创 【MongoDB】Java连接MongoDB

当读取偏好包含 maxStalenessSeconds 值时,客户端会通过将从节点的最后一次写入与主节点的最后一次写入(如果可用)进行比较来估计每个从节点的陈旧程度;当 primaryPreferred 读取偏好包含 maxStalenessSeconds 值且没有可供读取的主节点时,客户端会通过将从节点的最后一次写入与执行最近一次写入的从节点进行比较,从而估计每个从节点的陈旧程度。如果找到匹配的从节点,则客户端会从最近的匹配从节点群组中随机选择一个从节点。如果从节点没有匹配的标签,读取操作就会出错。

2024-08-15 15:04:54 1813

原创 【Go】HTTP编程4-请求校验 validator

包validator根据标签 实现结构和各个字段的值验证。它具有以下独特通过使用验证标签或自定义验证器进行跨字段(Cross Field)和跨结构体(Cross Struct)验证。切片slice、数组array和map,允许验证多维字段的任意或所有级别。// 定义一个校验电子邮箱格式的vaildator// 注册一个自定义的validator。

2024-08-07 17:11:40 685

原创 【Go】 HTTP编程3-路由httprouter

httprouterHttpRouter 是一个轻量级高性能的 HTTP 请求路由器(也称为多路复用器或简称 mux)用于 Go 语言。与 Go 的 net/http 包中默认的 mux 不同,该路由器支持路由模式中的变量,并且匹配请求方法。它还具有更好的扩展性。该路由器经过优化,具有高性能和小内存占用。即使在非常长的路径和大量路由的情况下,它也能很好地扩展。采用了一种压缩动态字典树(基数树)结构以实现高效匹配。

2024-08-06 21:43:58 1358

原创 【PG高可用】七 Repmgr源码分析之主库监控

repmgr需要在集群中每个节点上以扩展的形式安装插件,运行在每个节点上的repmgrd可以监控复制以及执行故障转移或切换等操作增强 PostgreSQL 的内置复制功能。如何可靠快速的监控主节点故障一般是所有数据库高可用程序中都会有的环节,本篇内容主要介绍不同角色的节点如何监控主节点是否存活。

2024-08-05 14:59:22 789

空空如也

空空如也

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

TA关注的人

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