Fork me on GitHub

逻辑复制故障转移

逻辑复制故障转移 主库 10.10.2.11 物理从库 10.10.2.12 逻辑从库 10.10.2.13 测试任务 当主库发生故障,物理复制从库变为新主库。逻辑从库将订阅地址变更为新主库。 开始测试 环境搭建参考 物理复制 逻辑复制 状态查看 复制关系 select * from pg_stat_replication ; -[ RECORD 1 ]----+------------------------------ pid | 2628 usesysid | 24576 usename | repuser application_name | sub1 client_addr | 10.10.2.13 client_hostname | client_port | 40230 backend_start | 2022-11-23 05:46:59.50291+00 backend_xmin | state | streaming sent_lsn | 0/21000140 write_lsn | 0/21000140 flush_lsn | 0/21000140 replay_lsn | 0/21000140 write_lag | flush_lag……

阅读全文

Minio存储类别

minio 存储类别 副本机制与纠删码方式对比 在分布式数据存储服务中,通常使用的方式有副本机制,与纠删码机制。 原理对比 副本技术的原理比较简单,通过副本机制,数据的冗余写来保证数据的可靠性 纠删码类似于raid5、raid6类似。通过引入校验数据块保障数据冗余,从而获得更多的存储空间 EC ( Erasure Coding) 相对……

阅读全文

LSN 和 wal日志文件名对应关系

例子 select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn()); pg_current_wal_lsn | pg_walfile_name | pg_walfile_name_offset --------------------+--------------------------+------------------------------------ 2478/BB36EC90 | 0000000300002478000000BB | (0000000300002478000000BB,3599504) (1 row) select x'36EC90'::int ; int4 --------- 3599504 (1 row) 说明 方法 pg_current_wal_lsn():获得当前wal日志写入位置。 pg_walfile_name():转换wal日志位置为文件名。 pg_walfile_name_offset():返回转换后的wal日志文件名和偏移量。……

阅读全文

Kafka集群安装

环境 操作系统 centos7 openjdk11 集群规划 IP地址 10.10.2.11/node0 zk & kafka 10.10.2.12/node1 zk & kafka 10.10.2.13/node2 zk & kafka 准备阶段 软件准备 kafka 下载地址 https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz connetor plugins jdbc 下载地址 https://d1i4a15mxbxib1.cloudfront.net/api/plugins/confluentinc/kafka-connect-jdbc/versions/10.5.1/confluentinc-kafka-connect-jdbc-10.5.1.zip debezium 下载地址 https://repo1.maven.org/maven2/io/debezium/debezium-connector-postgres/1.9.5.Final/debezium-connector-postgres-1.9.5.Final-plugin.tar.gz 安装jdk yum install java-11-openjdk-devel yum install java-11-openjdk -y jdk 下载地址 https://www.oracle.com/java/technologies/downloads/ 系统用户 group add kafka useradd kafka -g kafka 配置信息 hosts 配置 #vi /etc/hosts 10.10.2.11 node0 10.10.2.12 node1 10.10.2.13 node2 zk 配置 # vi zookeeper.properties tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper clientPort=2181 server.1=node0:2888:3888 server.2=node1:2888:3888 server.3=node2:2888:3888 # myid echo "1" > /tmp/zookeeper/myid echo "2" > /tmp/zookeeper/myid echo "3" > /tmp/zookeeper/myid broker 配置 # vi config/server.properties broker.id=1 # 每个节点……

阅读全文

upset 用法

创建表 DROP TABLE IF EXISTS "goods"; CREATE TABLE "goods" ( "store_cd" int4 NOT NULL, "good_cd" varchar(50) COLLATE "pg_catalog"."default" NOT NULL, "name" varchar(255) COLLATE "pg_catalog"."default" ); INSERT INTO "goods" VALUES (101, '1', '张三'); INSERT INTO "goods" VALUES (102, '2', '李四'); INSERT INTO "goods" VALUES (103, '3', '王五'); ALTER TABLE "goods" ADD CONSTRAINT "pr_cd_key" PRIMARY KEY ("store_cd", "good_cd"); 数据存在则更新数据,不存在则插入数据 --- INSERT INTO GOODS VALUES ( 104, '4', '赵六' ) ON CONFLICT ON CONSTRAINT pr_key_cd DO UPDATE SET NAME = '更新' WHERE GOODS.STORE_CD = '104' AND GOODS.GOOD_CD = '4' ---- pr_key_cd为必须为……

阅读全文

利用debezium 实现数据变更捕获

整个实现以功能演示为目标,便于流程的梳理和理解。不适合正式生成环境使用。 debezium的几种使用方式 单独部署 下游数据传输到cloud,官方目前不推荐 与kafka联合使用 下游数据传输到kafka 嵌入式 例如Flink使用的debezium作为数据的source connetor模块使……

阅读全文

利用hll数据类型进行数据统计

HyperLogLog 使用场景 在应用中统计去重后的个数,传统的方法通常是这么操作 count(distict(xxx))。 如果数据量变大,或统计频繁,性能会越来越差。 可以考虑一个近似统计计算方法hll create extension hll; HyperLogLog 是一种算法, 可以用来估算数据集的基数. 基数是指一个集合中不同值的数目, 等同于 COUNT(DISTINCT field) 返回值. 对于超……

阅读全文