postgreSql逻辑复制常用语句汇总和说明

news/2024/7/9 22:33:14 标签: postgresql, 数据库
简单说明

postgreSql逻辑复制的原理这里不再赘述,度娘一下即可。这里只是对常用的语句做一些汇总和说明,以便日后查找时方便。

逻辑复制的概念

逻辑复制整体上采用的是一个发布订阅的模型,订阅者可以订阅一个或者多个发布者, 发布者也可以被一个或者多个订阅者订阅,通常我们在做逻辑复制的通用步骤是:订阅者首先获取发布者数据库上的数据快照并拷贝这部分存量数据,当这个快照复制执行完成之后,发布者数据库上的变更数据就可以实时的发送给订阅者,订阅者也会顺序处理这些增量数据,基于此逻辑复制可以保证事物的一致性,所以有时候也称逻辑复制为事物复制。

前置条件

想要使用postgreSql的逻辑复制,需要PostgreSQL 10以上版本,并且需要将数据库属性wal_level配置为logical。
wal_level 包含三个选项:minimal、replica、logical,默认是replica。

wal_level = logical
常用语句汇总
//创建发布 定义发布别名 表可以设置多个 使用逗号分割
create publication test_sync_p for table table_sync;

//删除发布
drop publication test_sync_p;
//创建订阅 定义订阅别名 publication与发布的别名保持一致 配置发布数据库链接信息
create subscription test_sync_s connection 'host=192.168.0.1 dbname=system user=postgres password=12345 port=5432' publication test_sync_p;

//删除订阅
drop subscription test_sync_s;
//使用唯一索引设置复制标识 默认为主键
alter table table_sync replica identity using index index_name;
//设置订阅槽为空 方便删除订阅
alter subscription test_sync_s set (slot_name = none) 
//查询publication发布的表
select * from pg_publication_tables;

//查询publication
select * from pg_publication;
//查询槽
select * from pg_replication_slots;

//删除槽
select pg_drop_replication_slot('slot_name');

http://www.niftyadmin.cn/n/5246021.html

相关文章

【WPF】使用异步任务来执行耗时的操作,保持UI的响应性。

WPF提供了多种方法来实现异步任务,包括使用Task和async/await关键字、使用BackgroundWorker组件以及使用ThreadPool等。 下面是一些常见的WPF异步任务实现方法: 使用Task和async/await关键字: private async void Button_Click(object sen…

el-table操作栏按钮过多 增加展开/收起功能

是的 如图所示有那么一条数据 列表操作栏的按钮七八个 小屏笔记本啥数据项也别看了 就剩下个固定列大刺刺的占着整个页面 解决方法&#xff1a; <el-table-column :width"tableToggle ? 600 : 300" label"操作栏" align"center" header-ali…

制作一个RISC-V的操作系统三-编译与链接

文章目录 GCCGCC简介GCC的命令格式gcc -Egcc -cgcc -Sgcc -ggcc -vGCC的主要执行步骤GCC涉及的文件类型针对多个源文件的处理 ELFELF介绍ELF文件格式ELF文件处理相关工具&#xff1a;Binutils&#xff08;binary utility&#xff09;readlelf -hreadelf -S或readelf -SW&#x…

力扣题:数字与字符串间转换-12.8

力扣题-12.8 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;299. 猜数字游戏 解题思想&#xff1a;进行遍历&#xff0c;统计完全相同的数字和不相同的数字即可&#xff0c;然后统计不相同的数字在秘密数字和猜测数字中共同出现的次数 class Sol…

python笔记argmax()

一维数组 返回数组中最大值元素的索引位置 import numpy as np a np.array([6, 2, 3, 10, 12, 1]) print(np.argmax(a)) #输出结果为4 # 也可以这样用 print(a.argmax())二维数组 参数axis可取(0,1)&#xff0c;默认是0&#xff0c;表示数组第几维的最大值。 axis 0&#…

mybatis数据输出-驼峰命名规则设置

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

k8s集群部分使用gpu资源的pod出现UnexpectedAdmissionError问题

记录一次排查UnexpectedAdmissionError问题的过程 1. 问题 环境 3master节点N个GPU节点 kubelet版本&#xff1a;v1.19.4 kubernetes版本&#xff1a;v1.19.4 生产环境K8S集群&#xff0c;莫名其妙的出现大量UnexpectedAdmissionError状态的Pod&#xff0c;导致部分任务执…

推荐一个开源的监控程序-Uptime

先放几张截图介绍一下 现场演示 尝试一下&#xff01; 东京演示服务器&#xff1a;https://demo.uptime.kuma.pet&#xff08;由 Uptime Kuma 赞助商 赞助&#xff09; 这是一个临时的现场演示&#xff0c;所有数据将在10分钟后删除。使用距离您较近的一个&#xff0c;但我建…