12 2024 档案
摘要:ZeroMQ的使用(python) 1. python环境使用 1.1 非源码安装 在安装pyzmq和libzmq3-devel之后便可以使用 zeromq 了。需要提前安装好python环境。 (venv-patroni-4.0.3) [fbase@localhost zmq]$ mkdir ~/
阅读全文
摘要:Patroni 流程整理目录 3. 主循环 主循环在Patroni类的_run_cycle函数中进行,在这个函数中调用Ha类的循环函数run_cycle,每循环一次调用一次,而不是开启Ha的循环,并且在这里进行重载配置文件。 在这个主循环中重点是Ha类的_run_cycle函数,在这个函数中对集群的
阅读全文
摘要:问题描述: 执行rpm和yum卡住, 没有任何报错信息,且无法 ctrl + c 终止,只能通过后台 kill -9 杀死。 问题排查: 查看yum日志:yum -vv + 软件包 会发现卡在 loading keyring from rpmdb,即load DB存在问题。 解决方法: (1)删除r
阅读全文
摘要:Patroni 流程整理目录-初始化 2. 初始化 数据库的初始化在Postgresql类的__init__函数中,在这个函数中对当前的数据库做了一系列的调整,初始化一系列实例、设置一些配置信息,查看状态和更新信息等等。而将节点加入集群或者初始化集群时,则是调用ha类中的函数进行初始化,如post_
阅读全文
摘要:PostgreSQL-VACUUM介绍 1. VACUUM介绍 PostgreSQL VACUUM 流程 PostgreSQL 实际上不会在您发出 statement 时物理地删除数据。相反,该数据在逻辑上被标记为内部已删除,然后不会显示在针对表的查询中。没有VACUUM,你不仅会填满您的驱动器,而
阅读全文
摘要:ZeroMQ介绍及安装 1. 介绍 1.1 概述 ZeroMQ(又名ØMQ,MQ,或zmq)看起来像一个可嵌入的网络库,但其作用就像一个并发框架。 ZeroMQ类似于标准Berkeley套接字,其提供了各种传输工具,如进程内、进程间、TCP和组播中进行原子消息传送的套接字。 你可以使用各种模式实现N
阅读全文
摘要:Patroni 流程整理目录-配置文件 1. 配置文件 1.1 读取 配置文件的读取时机是Config类的创建时机。这个创建有两种情况,如下所述: patroni读取配置文件则是对Config类进行初始化的过程,在patroni/__main__.py文件的main函数中,调用了process_ar
阅读全文
摘要:Patroni中对主备切换、故障转移和命令行的流程整理 1. 主备切换 主备切换(Switchover)是高可用性(High Availability,HA)系统中的一个重要操作,常见于数据库集群或分布式系统中。在主备架构中,通常有一个主节点和一个或多个备节点,备节点会复制主节点的数据并保持同步。
阅读全文
摘要:Patroni中对pg的重启、停止和启动详解 对于pg的重启、停止和启动的操作,都在/postgres/__init__.py文件中定义了相关的函数,都是调用其中的函数进行使用。 1. 停止 1.1 stop函数 重启的函数为stop。其代码如下所示: def stop(self, mode: st
阅读全文
摘要:Citus的restart详解 1. 命令行restart 在ctl.py的restart方法中,获取到集群的信息,然后再获取到要重启节点的信息。 cluster = get_dcs(cluster_name, group).get_cluster() members = get_members(c
阅读全文
摘要:分布式Citus集群与Patroni 1. 环境介绍 2. 安装部署 2.1 安装Docker 2.1.1 检查是否安装 运行以下命令来检查 Docker 是否已安装: docker --version 如果没有返回版本号,则 Docker 可能未安装。 2.1.2 安装 # 更新包索引 sudo
阅读全文
摘要:源码安装patroni+postgresql+citus+zookeeper 1. 安装环境 软件版本: python 3.9.16 postgresql 16.4 citus 12.1 patroni 4.0.3 zookeeper 3.7.1 1.1 设置SELinux、防火墙 systemct
阅读全文
摘要:Patroni在Zookeeper中保存的信息 1. 保存的信息 在使用 Patroni 配置高可用 PostgreSQL 集群时,etcd 或 Zookeeper(作为分布式协调系统)通常用于存储和管理与集群状态和配置相关的元数据。具体来说,Patroni 在这些系统中保存了以下几类信息: 1.1
阅读全文
摘要:Ciuts的MX模式 Citus集群由Coordinator(CN节点)和Worker节点组成。CN节点上放元数据负责SQL分发; Worker节点上放实际的分片,各司其职。 但是,citus里它们的功能也可以灵活的转换。 1. 什么是MX模式? MX模式是Citus的扩展,允许app直接连接wor
阅读全文
摘要:Patroni 读取配置文件(包含Zookeeper中) 1. patroni读取配置文件 1.1 什么时候创建配置类 patroni读取配置文件则是对Config类进行初始化的过程,在patroni/__main__.py文件的main函数中,调用了process_arguments函数首先进行了
阅读全文
摘要:241112-Patroni处理流程图 原文链接: https://zhuanlan.zhihu.com/p/159009358 Patroni处理流程图 Patroni的处理逻辑如何呢?patroni官方给出了处理流程图 ha_loop_diagram.png,如下 https://raw.git
阅读全文
摘要:python中的面向对象详解 1. 面向过程和面向对象 1.1 面向过程 面向过程就是先分析出解决问题的步骤,再把步骤拆成一个个方法,是没有对象去调用的,通过一个个方法的执行解决问题。 1.2 面向对象 面向对象就是将编程当成是一个事物(对象),对外界来说,事物是直接使用的,不用去管内部的情况,而编
阅读全文
摘要:python中的单继承和多继承 1. 继承 1.1 继承的概念 继承:可以实现代码重用,相同的代码不需要重复编写。 1.2 为什么需要继承 我们有以下几个类:Animal:其中封装了drink, eat, run 和sleep四个方法, Dog:其中也封装了eat, drink, run, slee
阅读全文
摘要:python中文件的基本操作、文件读写 1. 基础操作 1.1 文件概念 文件就是存储在某种长期储存设备上的一段数据。 1.2 基础操作 打开文件 读、写文件 关闭文件 可以只打开和关闭文件,不进行任何读写操作。 1.3 文件对象的方法 1.3.1 open() 创建一个file对象,默认是以只读模
阅读全文
摘要:基于Patroni的Citus高可用环境部署 参考文献:https://www.cnblogs.com/VicLiu/p/14333979.html 1. 实验环境 主要软件 CentOS 7.8 PostgreSQL 12 Citus 10.4 patroni 1.6.5 etcd 3.3.25
阅读全文
摘要:Patroni中的Citus 1. Citus 1.1 Citus介绍 Citus是一个非常实用的能够使PostgreSQL具有进行水平扩展能力的插件,或者说是一款以PostgreSQL插件形式部署的基于PostgreSQL的分布式HTAP数据库。本文简单说明Citus的高可用技术方案,并实际演示基
阅读全文
摘要:python基本数据类型 标准数据类型 Python3 中常见的数据类型有: Number(数字) String(字符串) bool(布尔类型) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据(3 个):Numb
阅读全文
摘要:使用python进行PostgreSQL 数据库连接 PostgreSQL 数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用。运用python可以很简单的建立PostgreSQL 数据库连接,其中最受欢迎的就是psycopg。 1. 安装psyco
阅读全文
摘要:Linux安装MySQL数据库 1. 检查是否已经安装MySQL rpm -qa | grep mysql 如果已经安装必须进行卸载之后在进行安装,可以使用下面命令将其删除(xxx 为文件全名) rpm -e xxx 2. 安装MySQL 2.1 下载安装包 下载mysql MySQL :: Dow
阅读全文
摘要:python中的pip操作 1. pip更换国内镜像源 由于 python 自带的源下载速度非常慢,特别是安装一些库的时候,甚至有时会失败。 因此,建议将下载源替换成国内的,下载速度会快很多。总共有两种方法 代码替换 (推荐使用这一种) 手动替换 1.1 代码替换 1.1.1 阿里源(推荐这个) p
阅读全文
摘要:python中的递归、闭包和装饰器 1. 递归 1.1 递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 递归函数特性: 必须有一个明确的结束条件; 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 相邻两次重复之间有紧密的联系,前一次要为后一次
阅读全文