簡體   English   中英

從頭開始邏輯復制

[英]start logical replication from the beginning

我試圖了解如何從一開始就在 postgres 上開始邏輯復制。 我正在嘗試使用這個 python 庫, psycopghttps://www.psycopg.org/docs/index.html )並設置所有新的更改,但不是 I'm 設置的表...那里的當前數據。 我假設我需要指定 LSN 從(文檔: https://www.psycopg.org/docs/extras.html?highlight=loggingconnection#psycopg2.extras.ReplicationMessage.data_start )開始一個得到LSN的開始?

通過基本的 python 腳本看起來像這樣:

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)

您無法從最初創建插槽之前的點開始流式傳輸。

要獲取預先存在的數據,只需打開與數據庫的第二個連接,並使用 SELECT 或 COPY 讀取現有數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM