1. Giriş
Bu codelab'de, bağımsız AlloyDB Omni örnekleri arasında mantıksal replikasyonun nasıl yapılandırılacağı gösterilmektedir. Tek bir Compute Engine VM'ye birden fazla AlloyDB Omni örneği dağıtacak ve pglogical uzantısını kullanarak bunlar arasında replikasyon ayarlayacaksınız.
Tek bir düğümde birden fazla örnek çalıştırmak geliştirme, test veya replikasyon ortamlarını simüle etmek için yararlıdır. Bu codelab'in sonunda, bir örneğin sağlayıcı, diğerinin ise abone olarak çalıştığı bir replikasyon kurulumunuz olacak.
Ön koşullar
- Google Cloud Console'dan Google Cloud projesine ve Cloud Shell'e erişim.
- Google Cloud SDK (
gcloud) yüklü ve yapılandırılmış olmalıdır. gcloud'u yükleme hakkında ayrıntılı bilgi için gcloud-install başlıklı makaleyi inceleyin.
Neler öğreneceksiniz?
gcloudkullanarak birden fazla AlloyDB Omni örneği için Compute Engine VM oluşturma ve hazırlama- AlloyDB Omni RPM'lerini yükleme
systemdŞablonları kullanarak birden fazla AlloyDB Omni örneğini yapılandırma ve başlatmapglogicalkullanarak AlloyDB Omni örnekleri arasında mantıksal replikasyon yapılandırma.- Verileri sağlayıcıdan aboneye kopyalayarak replikasyonu doğrulama
İhtiyacınız olanlar
- AlloyDB Omni RPM'lerine URL bağlantısı edinme Depo URL'si sunucusunun bağlantısı da dahil olmak üzere bağlantılar e-posta adresinize gönderilir. URL'nin codelab sırasında kullanıma hazır olması için aşağıdaki ortam değişkenini başlatın.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Google Cloud'a erişimi olan çalışan bir terminal. Bu amaçla Cloud Shell'i kullanabilirsiniz.
2. Kurulum ve Gereksinimler
Proje ayarlama
Google Cloud projesi oluşturma
- Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
- Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını kontrol etmeyi öğrenin.
Cloud Shell'i Başlatma
Google Cloud'u dizüstü bilgisayarınızdan uzaktan çalıştırabilirsiniz ancak bu codelab'de bulutta çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

- Google Cloud Console'u açın ve sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın.Cloud Shell'i aşağıdaki yöntemlerden biriyle de açabilirsiniz:
- Google Cloud Console'u kullanıyorsanız G ve ardından S tuşuna basın.
- Bu bağlantıyı tıklayın.
Cloud Shell'in temel hazırlığı ve ortama bağlanması genellikle birkaç saniye sürer. Bu işlem tamamlandığında aşağıdakine benzer bir çıkış görürsünüz:

3. Compute Engine sanal makinesini oluşturma
Bu bölümde, gcloud komut satırı aracını kullanarak tek bir Compute Engine sanal makinesi (VM) oluşturun. AlloyDB Omni RPM'leriyle tamamen uyumlu olan bir Rocky Linux 9 görüntüsü kullanın.
- Proje kimliğiniz, VM adınız, bölgeniz ve alt bölgeniz için ortam değişkenleri tanımlayın.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-multi-vm" export ZONE="us-central1-c" export REGION="us-central1" - Google Cloud hesabınızı kullanarak oturum açın ve varsayılan projeyi yapılandırın.
gcloud auth login gcloud config set project $PROJECT - Identity-Aware Proxy (IAP) kullanarak sanal makinenize SSH bağlantılarına izin vermek için bir güvenlik duvarı kuralı oluşturun.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - Sanal makine genel IP adresi olmadan oluşturulduğundan, sanal makinenin harici paket depolarına erişmesine ve gerekli yazılımları indirmesine izin vermek için bir Cloud Router ve Cloud NAT ağ geçidi yapılandırın.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - Sanal özel bulut (VPC) ağınızda geçerli bir varsayılan internet ağ geçidi rotası olduğunu doğrulayın. Bu rota, Cloud NAT'in giden trafiği internete yönlendirmesi için gereklidir.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Gerekli özelliklere (16 vCPU, 20 GB dengeli kalıcı disk, Rocky Linux 9) sahip Compute Engine sanal makine örneğini oluşturun. Güvenliği artırmak için
--no-addressişaretini kullanarak sanal makineye genel IP adresi atanmadığından emin olun.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=n2-highmem-16 \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - Sanal makine oluşturulduktan sonra durumunu doğrulayın.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Sanal makineyi hazırlama
Bu bölümde, yeni oluşturduğunuz sanal makineye bağlanıp işletim sistemi ortamını hazırlayacaksınız.
- IAP kullanarak SSH üzerinden sanal makineye bağlanın. Sanal makinenin herkese açık IP adresi olmadığı için
gcloud, SSH bağlantısını otomatik olarak IAP üzerinden tüneller.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Temel veri dizini için bir ortam değişkeni tanımlayın.
export BASE_PGDATA="/var/lib/alloydbomni" - Temel veri dizinini oluşturun.
sudo mkdir -p $BASE_PGDATA - SELinux politikasının yapılandırılabilmesi için
policycoreutils-python-utilspaketini yükleyin.sudo dnf install -y policycoreutils-python-utils
5. AlloyDB Omni'yi yükleme
VM hazırlandıktan sonra paket deposunu yapılandırabilir ve AlloyDB Omni RPM paketini yükleyebilirsiniz.
- Depo yapılandırma dosyasını oluşturarak sanal makinenizde YUM deposunu yapılandırın.
$ALLOYDB_OMNI_REPOSITORY_URLkısmını aldığınız URL ile değiştirin.export ALLOYDB_OMNI_REPOSITORY_URL="..." sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - YUM önbelleğini güncelleyin.
sudo yum makecache - AlloyDB Omni RPM paketinin 18. sürümünü yükleyin.
sudo dnf install -y alloydbomni18
6. Birden fazla örneği yapılandırma
Bu bölümde iki örneği yapılandırın: inst1 ve inst2.
- Birden fazla örneği desteklemek için
systemdşablon hizmet dosyasıalloydbomni18@.serviceoluşturun.sudo tee /etc/systemd/system/alloydbomni18@.service << EOF [Unit] Description=AlloyDB Omni Database server instance %I After=syslog.target After=network-online.target [Service] SyslogIdentifier=alloydbomni-%I Type=notify User=postgres Group=postgres # Load configuration for the instance EnvironmentFile=/etc/alloydbomni/%I.conf OOMScoreAdjust=-1000 Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj Environment=PG_OOM_ADJUST_VALUE=0 ExecStartPre=/usr/lib/postgresql/18/bin/alloydbomni18-check-db-dir \${PGDATA} ExecStart=/usr/lib/postgresql/18/bin/postgres -D \${PGDATA} ExecReload=/bin/kill -HUP \$MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 TimeoutStartSec=0 TimeoutStopSec=1h [Install] WantedBy=multi-user.target EOF - Yeni şablon hizmetini tanımak için
systemdyöneticisi yapılandırmasını yeniden yükleyin.sudo systemctl daemon-reload - AlloyDB Omni örnekleri için yapılandırma dizinini oluşturun.
sudo mkdir -p /etc/alloydbomni inst1için veri dizinini yapılandırın.sudo tee /etc/alloydbomni/inst1.conf << EOF PGDATA=/var/lib/alloydbomni/inst1 EOFinst2için veri dizinini yapılandırın.sudo tee /etc/alloydbomni/inst2.conf << EOF PGDATA=/var/lib/alloydbomni/inst2 EOF- Yapılandırma dosyalarında uygun izinleri ayarlayın.
sudo chmod 640 /etc/alloydbomni/*.conf sudo chown postgres:postgres /etc/alloydbomni/*.conf - Her iki örnek için de veri dizinlerini oluşturun ve doğru sahipliği ayarlayın.
sudo mkdir -p /var/lib/alloydbomni/inst1 sudo mkdir -p /var/lib/alloydbomni/inst2 sudo chown -R postgres:postgres /var/lib/alloydbomni sudo chmod 750 /var/lib/alloydbomni/inst1 /var/lib/alloydbomni/inst2 - İsteğe bağlı: Her örnek için kaynak sınırları belirleyin. Bu sayede bir örneğin tüm sanal makine kaynaklarını tüketmesi önlenir. Her iki örnek için de
systemdgeçersiz kılma dizinleri ve dosyaları oluşturun.Not: Aşağıdaki yapılandırmalarda kullanılan kaynak sınırları (%40) örnek değerlerdir. Sınırları, iş yükünüze ve sanal makine kapasitenize göre ayarlayın.inst1için:sudo mkdir -p /etc/systemd/system/alloydbomni18@inst1.service.d sudo tee /etc/systemd/system/alloydbomni18@inst1.service.d/override.conf << EOF [Service] CPUQuota=40% MemoryMax=40% EOFinst2için:sudo mkdir -p /etc/systemd/system/alloydbomni18@inst2.service.d sudo tee /etc/systemd/system/alloydbomni18@inst2.service.d/override.conf << EOF [Service] CPUQuota=40% MemoryMax=40% EOF
7. Veritabanlarını başlatma ve hazırlama
Her veritabanı örneğini ayrı ayrı başlatın ve hazırlayın.
- Kurulum için SELinux'u izinli moda yapılandırın.
Dikkat: SELinux'u izin verici moda ayarlamak yaptırımı devre dışı bırakır ve dikkatli kullanılmalıdır. Bu codelab'de kurulumu basitleştirmek için kullanılır. Üretimde, AlloyDB Omni'nin zorunlu kılma modunda çalışması için uygun SELinux politikalarını yapılandırın. Kurulumdan sonrasudo setenforce 0sudo setenforce 1komutunu çalıştırarak zorunlu kılmayı yeniden etkinleştirebilirsiniz. - PostgreSQL
postgresyönetici kullanıcısı için güçlü bir şifre tanımlayın. Bu şifre, bu codelab'deki her iki örnek için de kullanılır. Not: Komut satırında ortam değişkenlerini kullanarak şifre iletme (ör.export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) bu codelab'de basitlik için kullanılmıştır ancak şifreyi işlem listelerinde gösterebilir. Üretimde,.pgpassdosyası veya Secret Manager gibi daha güvenli yöntemler kullanın.
Set up inst1
inst1için veritabanı dizinini başlatın.sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst1 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdbpostgresql.confdosyasını güncelleyerek örneği5433bağlantı noktasında dinleyecek şekilde yapılandırın.sudo sed -i \ "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5433/" \ /var/lib/alloydbomni/inst1/postgresql.conf- Veritabanı örneğini AlloyDB Omni için hazırlayın.
sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst1 \ PGPORT=5433 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
inst2'yi ayarlama
inst2için veritabanı dizinini başlatın.sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst2 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb- Örneği
5434bağlantı noktasını dinleyecek şekilde yapılandırın.sudo sed -i \ "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5434/" \ /var/lib/alloydbomni/inst2/postgresql.conf - Veritabanı örneğini hazırlayın.
sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst2 \ PGPORT=5434 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
8. AlloyDB Omni hizmetlerini başlatma
Artık her iki örnek için de systemd hizmetlerini başlatabilirsiniz.
- Yeni yapılandırmayı ve geçersiz kılmaları tanımak için
systemdyöneticisi yapılandırmasını yeniden yükleyin.sudo systemctl daemon-reload inst1için hizmeti etkinleştirin ve başlatın.sudo systemctl enable alloydbomni18@inst1 sudo systemctl start alloydbomni18@inst1inst2için hizmeti etkinleştirin ve başlatın.sudo systemctl enable alloydbomni18@inst2 sudo systemctl start alloydbomni18@inst2- Her iki hizmetin de etkin ve çalışır durumda olduğunu doğrulayın.
Her ikisinin de çıkışındasudo systemctl status alloydbomni18@inst1 sudo systemctl status alloydbomni18@inst2Active: active (running)ifadesinin yer aldığını doğrulayın.
9. AlloyDB Omni örneklerini doğrulama
Her iki örneğin de düzgün şekilde çalıştığını ve birbirinden bağımsız olduğunu doğrulayın.
inst1(bağlantı noktası 5433) ağına bağlanın. Veritabanlarını başlatma ve hazırlama bölümünde yapılandırdığınız şifre istenir./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 -U postgres -W- Bağlantıyı doğrulamak için bir sorgu çalıştırın.
postgres=# SELECT version(); - Örnekle bağlantıyı kesin.
postgres=# \q inst2(bağlantı noktası 5434) ağına bağlanın./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 -U postgres -W- Bağlantıyı doğrulamak için bir sorgu çalıştırın.
postgres=# SELECT version(); - Örnekle bağlantıyı kesin.
postgres=# \q
10. pglogical replikasyonu için yapılandırma
pglogical uzantısını kullanarak iki örnek arasında mantıksal çoğaltma yapılandırın. Bu senaryoda inst1 sağlayıcı, inst2 ise abone olarak hareket eder.
Not: Bu codelab, replikasyon bağlantıları için postgres süper kullanıcısını kullanır. Üretim ortamında, REPLICATION ayrıcalıklarına sahip özel bir replikasyon kullanıcısı oluşturun ve bu kullanıcıya yalnızca replikasyonu yapılan tablolara erişim izni verin.
pglogical için örnekleri yapılandırma
shared_preload_librariesbölümündepglogical'ı etkinleştirin veinst1içinpostgresql.confbölümünde diğer çoğaltma parametrelerini yapılandırın.# Append pglogical to shared_preload_libraries sudo sed -i \ "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \ /var/lib/alloydbomni/inst1/postgresql.conf # Append replication settings sudo tee -a /var/lib/alloydbomni/inst1/postgresql.conf << EOF wal_level = logical max_replication_slots = 10 max_wal_senders = 10 max_worker_processes = 20 track_commit_timestamp = on alloydb.enable_pglogical = on alloydb.logical_decoding = on EOFinst2içininst1'de yapılandırdığınız ayarları yapılandırın.# Append pglogical to shared_preload_libraries sudo sed -i \ "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \ /var/lib/alloydbomni/inst2/postgresql.conf # Append replication settings sudo tee -a /var/lib/alloydbomni/inst2/postgresql.conf << EOF wal_level = logical max_replication_slots = 10 max_wal_senders = 10 max_worker_processes = 20 track_commit_timestamp = on alloydb.enable_pglogical = on alloydb.logical_decoding = on EOF- Yapılandırma değişikliklerini uygulamak için her iki örneği de yeniden başlatın.
sudo systemctl restart alloydbomni18@inst1 sudo systemctl restart alloydbomni18@inst2
Çoğaltma rollerini ve tablolarını ayarlama
inst1(sağlayıcı, bağlantı noktası 5433) üzerinde bir replikasyon rolü ve replike edilecek tablo oluşturun./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " DO \$\$ BEGIN IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123'; END IF; END \$\$; GRANT ALL ON SCHEMA public TO app_owner; CREATE TABLE IF NOT EXISTS replication_test ( id SERIAL PRIMARY KEY, data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE replication_test OWNER TO app_owner; "inst2(abone, bağlantı noktası 5434) üzerinde aynı rolü ve tablo yapısını oluşturun./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c " DO \$\$ BEGIN IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123'; END IF; END \$\$; GRANT ALL ON SCHEMA public TO app_owner; CREATE TABLE IF NOT EXISTS replication_test ( id SERIAL PRIMARY KEY, data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE replication_test OWNER TO app_owner; "
pglogical düğümlerini ve aboneliğini yapılandırma
inst1üzerinde pglogical sağlayıcı düğümünü başlatın./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " CREATE EXTENSION IF NOT EXISTS pglogical; SELECT pglogical.create_node( node_name := 'provider', dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!' ); SELECT pglogical.replication_set_add_table('default', 'replication_test'); "- pglogical abone düğümünü başlatın ve
inst2üzerinde aboneliği oluşturun. Not: Abonelik oluşturulduktan sonra ilk senkronizasyonun tamamlanması biraz zaman alabilir./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c " CREATE EXTENSION IF NOT EXISTS pglogical; SELECT pglogical.create_node( node_name := 'subscriber', dsn := 'host=127.0.0.1 port=5434 dbname=postgres user=postgres password=YourStrongPassword123!' ); SELECT pglogical.create_subscription( subscription_name := 'test_subscription', provider_dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!' ); "
11. pglogical replikasyonunu doğrulama
Sağlayıcıya veri ekleyip aboneye sorgulayarak replikasyonun beklendiği gibi çalıştığını doğrulayın.
- Aboneliğin etkin olduğundan emin olun.
replicatinggeçişi birkaç saniye sürebilir./usr/lib/postgresql/18/bin/psql -t -A -h localhost -p 5434 \ -U postgres -d postgres -c " SELECT status FROM pglogical.show_subscription_status() WHERE subscription_name = 'test_subscription'; " - Devam etmeden önce çıktıda
replicatinggösterildiğini onaylayın. - Sağlayıcıya bir test satırı ekleyin (
inst1)./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " INSERT INTO replication_test (data) VALUES ('Hello from replication provider!'); " - Verilerin kopyalandığını doğrulamak için
inst2üzerindeki tabloyu sorgulayın./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c "SELECT * FROM replication_test;"inst1tarihine eklenen satırı görebildiğinizi onaylayın.
12. Temizleme
Kaynakları temizleyin. Önce sanal makinedeki AlloyDB Omni örneklerini yok edin, ardından Google Cloud kaynaklarını silin.
AlloyDB Omni örneklerini yok etme
Sanal makineyi silmeden önce hizmetleri durdurup devre dışı bırakarak ve yapılandırmalarını ve verilerini kaldırarak AlloyDB Omni örneklerini temizleyebilirsiniz.
inst1için hizmeti durdurup devre dışı bırakın, verilerini ve yapılandırmasını kaldırın.sudo systemctl stop alloydbomni18@inst1 sudo systemctl disable alloydbomni18@inst1 sudo rm -rf /var/lib/alloydbomni/inst1 sudo rm -f /etc/alloydbomni/inst1.confinst2için hizmeti durdurup devre dışı bırakın, verilerini ve yapılandırmasını kaldırın.sudo systemctl stop alloydbomni18@inst2 sudo systemctl disable alloydbomni18@inst2 sudo rm -rf /var/lib/alloydbomni/inst2 sudo rm -f /etc/alloydbomni/inst2.conf- systemd yöneticisi yapılandırmasını yeniden yükleyin ve başarısız birimleri sıfırlayın.
sudo systemctl daemon-reload sudo systemctl reset-failed
Google Cloud kaynaklarını temizleme
Örnekleri temizledikten sonra Compute Engine sanal makinesini ve diğer kaynakları silin.
- SSH oturumunun bağlantısını kesin.
exit - Compute Engine sanal makine örneğini silin.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Güvenlik duvarı kuralını silin.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Bulut NAT ve yönlendiriciyi silin.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - Varsayılan internet rotasını silin.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
13. Tebrikler
Tek bir Compute Engine sanal makinesinde birden fazla AlloyDB Omni örneğini başarıyla dağıtıp yapılandırdınız.
İşlediğimiz konular
- Compute Engine sanal makinesi sağlama ve hazırlama
- AlloyDB Omni RPM'lerini yükleme
- Birden fazla örnek için
systemdşablonlarını yapılandırma - Farklı bağlantı noktalarında birden fazla bağımsız hizmeti başlatma, yapılandırma ve çalıştırma
- Her örneğin bağımsızlığı nasıl doğrulanır?
Daha fazla bilgi
- Yükleme ve yapılandırma hakkında daha fazla bilgi için AlloyDB Omni belgelerine bakın.
- Bu codelab'de kullanılan çoğaltma uzantısıyla ilgili ayrıntılar için pglogical dokümanlarına bakın.