首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从头开始逻辑复制

从头开始逻辑复制
EN

Stack Overflow用户
提问于 2021-03-24 00:51:03
回答 1查看 222关注 0票数 2

我正在尝试理解如何从一开始就在postgres上启动逻辑复制。我正在尝试使用python库psycopg (https://www.psycopg.org/docs/index.html),并将其全部用于setup...but。我只捕获表的新更改,而不捕获其中的当前数据。我假设我需要指定LSN开始于(doc:https://www.psycopg.org/docs/extras.html?highlight=loggingconnection#psycopg2.extras.ReplicationMessage.data_start)...but如何获得LSN的开始?

基本的python脚本看起来像这样:

代码语言:javascript
复制
import json
import random
import calendar
import time
from datetime import datetime
import psycopg2
from psycopg2.extras import LogicalReplicationConnection

my_connection  = psycopg2.connect(
                   "dbname='dbname' host='host.com' user='user' password='pass'" ,
                   connection_factory = LogicalReplicationConnection)
cur = my_connection.cursor()
cur.drop_replication_slot('wal2json_test_slot')
cur.create_replication_slot('wal2json_test_slot', output_plugin = 'wal2json')
cur.start_replication(slot_name = 'wal2json_test_slot', options = {'pretty-print' : 1}, decode= True)

def consume(msg):
    print (msg.payload)

cur.consume_stream(consume)
EN

回答 1

Stack Overflow用户

发布于 2021-03-24 09:48:26

您不能从插槽最初创建位置之前的位置开始流式传输。

要获取预先存在的数据,只需打开到数据库的第二个连接,并使用SELECT或COPY读取现有数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66767644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档