Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:PostgreSQL veritabanını yapılandırın

Son Güncelleme:Oct 04, 2026

PostgreSQL Change Data Capture (CDC) bağlayıcısını kullanmadan önce, kaynak PostgreSQL depolama alanının yapılandırma gereksinimlerini karşıladığından emin olun. Bu konu, ApsaraDB RDS for PostgreSQL, Amazon RDS for PostgreSQL ve kendi kendine yönetilen PostgreSQL veritabanları için yapılandırma gereksinimlerini ve ilgili işlemleri açıklar.

Arka plan

PostgreSQL CDC bağlayıcısını kullanmadan önce, kaynak PostgreSQL depolama alanının yapılandırma gereksinimlerini karşıladığından emin olmalısınız. Bu konuda ApsaraDB RDS for PostgreSQL, Amazon RDS for PostgreSQL ve kendi kendine yönetilen PostgreSQL veritabanlarının nasıl yapılandırılacağı anlatılmaktadır. PostgreSQL CDC bağlayıcısı, PostgreSQL'in mantıksal abonelik mekanizmasına dayanarak verileri senkronize eder. Daha fazla bilgi için bkz. Mantıksal Kod Çözme Kavramları ve Mantıksal Aboneliğin İlkeleri ve En İyi Uygulamaları.

ApsaraDB RDS for PostgreSQL veritabanı

  • ApsaraDB RDS for PostgreSQL ile Ververica Platform (VVP) arasındaki ağ bağlantısı

  • ApsaraDB RDS for PostgreSQL sunucu yapılandırmaları

    • Desteklenen sürümler

      Yalnızca PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 ve PostgreSQL 16 verileri senkronize edilebilir. PostgreSQL sürümünü sorgulamak için select version() komutunu çalıştırabilirsiniz.

    • Mantıksal kod çözme

      • Mantıksal kod çözmeyi etkinleştirmek için wal_level = logical parametresini yapılandırın. Daha fazla bilgi için bkz. ApsaraDB RDS for PostgreSQL örneğinin parametrelerini değiştirme. Yapılandırma başarılı olursa, bu özelliği Mantıksal kod çözme bölümünde açıklanan örnek üzerinden test edip kullanabilirsiniz.

      • Verileri senkronize edilecek tablonun REPLICA IDENTITY ayarının FULL olduğundan emin olun.

        REPLICA IDENTITY ayarını görüntülemek ve değiştirmek için aşağıdaki SQL deyimlerini yürütebilirsiniz.

        -- View the setting of REPLICA IDENTITY. 
        SELECT CASE relreplident
          WHEN'd'THEN'default'
        WHEN'n'THEN'nothing'
        WHEN'f'THEN'full'
        WHEN'i'THEN'index'
        ENDASreplica_identity
        FROMpg_class
        WHEREoid='mytablename'::regclass;
        
        -- Modify the setting of REPLICA IDENTITY. 
        ALTERTABLEmytablenameREPLICAIDENTITYFULL;
    • Veri senkronizasyonu eklentileri

      ApsaraDB RDS for PostgreSQL örneğinin ana motor sürümü PostgreSQL 11, PostgreSQL 12 veya PostgreSQL 13 olduğunda yalnızca wal2json mantıksal kod çözme eklentisi desteklenir. pgoutput eklentisi ise ana motor sürümü PostgreSQL 10 veya üstü olduğunda desteklenir. pgoutput ve decodebuf kullanılması önerilir. Daha fazla bilgi için PostgreSQL CDC konusundaki decoding.plugin.name seçeneğini arayın.

      Not

      Verileri senkronize etmek için pgoutput eklentisini kullanıyorsanız, kullandığınız hesabın yetkili bir hesap olduğundan emin olun. Daha fazla bilgi için bkz. Hesap oluşturma.

    Amazon RDS for PostgreSQL

    • Amazon RDS for PostgreSQL ile VVP arasındaki ağ bağlantısı

      Amazon RDS for PostgreSQL ile VVP arasında bir ağ bağlantısı kurmak için VVP'nin internet üzerinden Amazon RDS for PostgreSQL'e erişmesine izin vermeniz gerekir. Daha fazla bilgi için bkz. Realtime Compute for Apache Flink internete nasıl erişir? ve Güvenlik gruplarıyla erişimi kontrol etme.

    • Amazon RDS for PostgreSQL sunucu yapılandırmaları

      • Desteklenen sürümler

        Yalnızca PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 ve PostgreSQL 16 verileri senkronize edilebilir. PostgreSQL sürümünü sorgulamak için select version() komutunu çalıştırabilirsiniz.

      • Mantıksal kod çözme

        • rds.logical_replication parametresini 1 olarak ayarlayın.

        • wal_level parametresinin değerinin logical olduğundan emin olun. Varsayılan olarak, rds.logical_replication parametresi 1 olarak ayarlandığında wal_level parametresi otomatik olarak logical değerine ayarlanır.

        • Verileri senkronize edilecek tablonun REPLICA IDENTITY ayarının FULL olduğundan emin olun.

          REPLICA IDENTITY ayarını görüntülemek ve değiştirmek için aşağıdaki SQL deyimlerini yürütebilirsiniz.

          -- View the setting of REPLICA IDENTITY. 
          SELECTCASErelreplident
           WHEN'd'THEN'default'
           WHEN'n'THEN'nothing'
           WHEN'f'THEN'full'
           WHEN'i'THEN'index'
           ENDASreplica_identity
          FROMpg_class
          WHEREoid='mytablename'::regclass;
          
          -- Modify the setting of REPLICA IDENTITY. 
          ALTERTABLEmytablenameREPLICAIDENTITYFULL;
        • Hesap rolü gereksinimleri

          Varsayılan olarak, Amazon Web Services (AWS) yönetim hesabına Amazon RDS for PostgreSQL üzerinde yalnızca rds_replication rolü atanır. Bu role sahip bir kullanıcı, mantıksal yuvaları yönetebilir ve mantıksal yuvaları kullanarak akış verilerini okuyabilir. Yönetim hesabı dışında bir hesap kullanarak mantıksal çoğaltmayı etkinleştirmek istiyorsanız, rds_replication rolünü ilgili hesaba atamanız gerekir. Örneğin, rds_replication rolünü <my_user> tarafından belirtilen kullanıcıya atayabilirsiniz. rds_replication rolünü yalnızca superuser izinlerine sahipseniz kullanıcılara atayabilirsiniz. Yönetim hesabı dışında bir hesap kullanarak ilk anlık görüntüyü oluşturmak istiyorsanız, yakalamak istediğiniz tablo üzerinde SELECT iznini hesaba vermeniz gerekir.

      • Veri senkronizasyonu eklentisi

        Veri senkronizasyonu için pgoutput eklentisini kullanın.

    Kendi kendine yönetilen PostgreSQL veritabanı

    • Kendi kendine yönetilen PostgreSQL veritabanınız ile VVP arasındaki ağ bağlantısı

      • Kendi kendine yönetilen PostgreSQL veritabanınız Alibaba Cloud üzerinde dağıtılmışsa ve VVP ile aynı VPC içinde bulunuyorsa, veritabanınız ile VVP arasında bir ağ bağlantısı kurulmuş demektir.

      • Kendi kendine yönetilen PostgreSQL veritabanınız Alibaba Cloud üzerinde dağıtılmamışsa, VVP'nin veritabanınızın genel IP adresine erişmesine izin vermeniz gerekir. Bu durumda, kendi kendine yönetilen PostgreSQL veritabanınız ile VVP arasında VPN Gateway kullanarak bir bağlantı kurmanız gerekir. Daha fazla bilgi için bkz. Realtime Compute for Apache Flink internete nasıl erişir? Ayrıca, VVP'nin kendi kendine yönetilen PostgreSQL veritabanınıza erişmesine izin vermek için pg_hba.conf dosyasını değiştirmeniz gerekir. Daha fazla bilgi için bkz. pg_hba.conf dosyasını güncelleme.

    • Kendi kendine yönetilen PostgreSQL sunucu yapılandırmaları

      • Desteklenen sürümler

        Yalnızca PostgreSQL 9.6, PostgreSQL 10, PostgreSQL 11, PostgreSQL 12, PostgreSQL 13, PostgreSQL 14, PostgreSQL 15 ve PostgreSQL 16 verileri senkronize edilebilir. PostgreSQL sürümünü sorgulamak için select version() komutunu çalıştırabilirsiniz.

      • Mantıksal kod çözme

        • wal_level parametresinin değerinin logical olduğundan emin olun. postgresql.conf dosyasını değiştirin ve veritabanını yeniden başlatın.

        • Verileri senkronize edilecek tablonun REPLICA IDENTITY ayarının FULL olduğundan emin olun.

          REPLICA IDENTITY ayarını görüntülemek ve değiştirmek için aşağıdaki SQL deyimlerini yürütebilirsiniz.

          -- View the setting of REPLICA IDENTITY. 
          SELECT CASE relreplident
             WHEN 'd' THEN 'default'
             WHEN 'n' THEN 'nothing'
             WHEN 'f' THEN 'full'
             WHEN 'i' THEN 'index'
             END AS replica_identity
          FROM pg_class
          WHERE oid = 'mytablename'::regclass;
          
          -- Modify the setting of REPLICA IDENTITY. 
          ALTER TABLE mytablename REPLICA IDENTITY FULL;
        • Bir hesap oluşturun ve hesaba veri senkronizasyonu için gerekli izinleri verin.

          Veri senkronizasyonu hesabında REPLICATION ve LOGIN izinlerinin yanı sıra tablo verilerini senkronize etmek için SELECT izni bulunmalıdır.

          CREATE ROLE <replication_user> REPLICATION LOGIN;
          
          GRANT SELECT ON <table_name> TO <name>;
      • Veri senkronizasyonu eklentisi

        PostgreSQL 10 ve sonraki sürümlerde pgoutput eklentisi varsayılan olarak yüklüdür. Diğer PostgreSQL sürümlerini kullanıyorsanız veya veri senkronizasyonu için başka eklentiler yüklediyseniz, PostgreSQL için Mantıksal Kod Çözme Çıkışı Eklenti Kurulumu bölümündeki talimatları uygulayın.

        Senkronizasyon aracı olarak pgoutput eklentisini kullanıyorsanız, veri senkronizasyonu hesabının verileri senkronize edilecek tablonun sahibi olduğundan emin olun. Veri senkronizasyonu hesabının verileri senkronize edilecek tablonun sahibi olmasını sağlamak için aşağıdaki adımları uygulayın:

        -- 1. Create a synchronization group. 
        CREATE ROLE <replication_group>;
        
        -- 2. Add the original owner of the table to the synchronization group. 
        GRANT REPLICATION_GROUP TO <original_owner>;
        
        -- 3. Add the data synchronization account to the synchronization group. 
        GRANT REPLICATION_GROUP TO <replication_user>;
        
        -- 4. Transfer the relevant permissions to the synchronization group. 
        ALTER TABLE <table_name> OWNER TO REPLICATION_GROUP;
        Not

        Bu durumda, veri senkronizasyonu hesabı yalnızca tek bir tablonun sahibidir. Bu nedenle, WITH yan tümcesindeki debezium.publication.autocreate.mode parametresini filtered olarak ayarlayın. Her tablo için ilgili izinleri yapılandırma işlemi karmaşıksa, veri senkronizasyonu hesabına doğrudan pg_monitor iznini verebilirsiniz.

        GRANT pg_monitor TO <replication_user>;