1. Giriş
Bu codelab'de, S3 uyumlu nesne depolama alanı kullanarak AlloyDB Omni RPM dağıtımını yedeklemek ve geri yüklemek için pgBackRest'in nasıl yapılandırılacağı gösterilmektedir.
Not: Bu codelab'de, eğitim ve test amaçlarıyla yerel, hafif bir S3 uyumlu depolama uç noktası olarak işlev görmesi için sanal makineye bağımsız bir MinIO ikili programı dağıtırsınız. Üretim iş yükleri için her zaman desteklenen ve etkin olarak bakımı yapılan S3 uyumlu bir depolama çözümü veya bulut nesne depolama kullanın.
Ön koşullar
- 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.
Neler öğreneceksiniz?
- AlloyDB Omni RPM için Compute Engine sanal makinesi oluşturma
- Sanal makinede yerel S3 uyumlu nesne depolama sunucusu ayarlama.
- pgBackRest'i, S3 uyumlu nesne depolama alanını yedek depo olarak kullanacak şekilde yapılandırma
- Yedeklemeleri gerçekleştirme, listeleme ve doğrulama
- Yedeklenmiş verileri geri yükleme
Gerekenler
- AlloyDB Omni RPM'lerine URL bağlantısı edinme Bağlantılar, depo URL'si sunucusunu içeren 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 kurulumu
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.
Ortamın temel hazırlığı ve bağlantı kurulması genellikle birkaç dakika sürer. Bu işlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:
{: width="624"}
3. Compute Engine sanal makinesini oluşturma
Bu bölümde, gcloud komut satırı aracını kullanarak tek bir Compute Engine (GCE) sanal makinesi (VM) oluşturacaksınız. AlloyDB Omni RPM'leriyle tamamen uyumlu olan bir Rocky Linux 9 görüntüsü kullanıyorsunuz.
- Proje kimliğiniz, VM adınız, makine türü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-pgbackrest" export MACHINE_TYPE="e2-standard-4" export ZONE="us-central1-c" export REGION="us-central1" - Google Cloud hesabınızın hesap kullanıcısıyla oturum açın ve varsayılan projeyi yapılandırın.
gcloud auth login gcloud config set project $PROJECT - 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 - VPC ağınızın geçerli bir varsayılan internet ağ geçidi rotasına sahip olduğundan emin olun. Bazı paylaşılan veya deneme alanı ortamlarında, varsayılan rotalar temizleme komut dosyaları tarafından zaman zaman kaldırılır. 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 - Rocky Linux 9 ve 20 GB dengeli kalıcı disk ile Compute Engine sanal makine örneğini oluşturun. Güvenliği artırmak için
--no-addressişaretini kullanarak sanal makineye genel IP adresi atanmamasını sağlayın.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --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. S3 ile uyumlu nesne depolama alanı ayarlama
Bu bölümde, sanal makinenize bağlanır, ortamı hazırlar ve yedekleme paketinizi barındırmak için S3 istemcisi (mc) ile birlikte yerel bir S3 uyumlu nesne depolama sunucusu (minio) oluşturursunuz.
- Identity-Aware Proxy (IAP) kullanarak SSH üzerinden sanal makineye bağlanın. Sanal makinenin herkese açık IP adresi olmadığından
gcloud, SSH bağlantısını IAP üzerinden otomatik olarak tüneller.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Gerekirse SELinux politikasının daha sonra yapılandırılabilmesi için
policycoreutils-python-utilspaketini yükleyin.sudo dnf install -y policycoreutils-python-utils - S3 ile uyumlu sunucu ikilisini (
minio) indirin.curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - Nesne depolama sunucusu için bir veri dizini oluşturun.
sudo mkdir -p /var/lib/s3-storage/data - S3 ile uyumlu sunucuyu örnek kimlik bilgileriyle arka planda başlatın. Gizli anahtarın en az 8 karakter uzunluğunda olması gerektiğini unutmayın.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - S3 uyumlu sunucunun çalıştığını doğrulayın.
ps aux | grep minio - Paketleri yönetmek için S3 istemcisini (
mc) indirip yükleyin.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - S3 istemci takma adını (
s3repo) yapılandırın vealloydb-backupsadlı bir paket oluşturun.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. AlloyDB Omni'yi yükleme
Bu bölümde AlloyDB Omni'yi yükleyip yapılandıracaksınız.
- VM'de veri dizini, AlloyDB Omni deponuzun URL'si ve PostgreSQL
postgresyönetici kullanıcısı için güçlü bir şifreye yönelik ortam değişkenlerini tanımlayın. URL'yi kayıt formundan aldığınız URL ile değiştirin. Not: Komut satırında ortam değişkenlerini kullanarak şifre iletme (ör.export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." 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. - AlloyDB Omni'nin veritabanı dosyalarını depolayacağı veri dizinini oluşturun.
sudo mkdir -p $PGDATA - Depo yapılandırma dosyasını oluşturarak sanal makinenizde YUM deposunu yapılandırın.
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 - AlloyDB Omni veritabanı örneğini başlatın.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Standart codelab uygulamalarına uygun olarak, kurulumu kolaylaştırmak için SELinux zorlama modunu geçici olarak devre dışı bırakın.
sudo setenforce 0 - AlloyDB Omni veritabanı örneğini hazırlayın.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - AlloyDB Omni
systemdhizmetini etkinleştirin ve başlatın.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - AlloyDB Omni hizmetinin etkin olduğunu ve başarıyla çalıştığını doğrulayın.
sudo systemctl status alloydbomni18
6. pgBackRest'i yapılandırma
Bu bölümde, AlloyDB Omni Common deposundan pgBackRest'i yükleyecek, /etc/pgbackrest/pgbackrest.conf'yı S3 ile uyumlu nesne depolama alanı paketinizi yedek depo olarak kullanacak şekilde yapılandıracak ve AlloyDB Omni'de WAL arşivlemeyi etkinleştireceksiniz.
- AlloyDB Omni Common depo URL'niz için VM'de bir ortam değişkeni tanımlayın. URL'yi kayıt formundan aldığınız URL ile değiştirin.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - pgBackRest YUM deposunu yapılandırın ve
pgbackrest-2.58.0'ı yükleyin.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - pgBackRest için biriktirme ve günlük dizinlerini oluşturun ve sahipliği
postgreskullanıcısına atayın.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest - Sıkı dosya izinleri
/etc/pgbackrest/pgbackrest.confoluşturun ve yapılandırın.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/tmp pg1-path=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf - pgBackRest stanza'yı
postgreskullanıcısı olarak başlatın. Çıkıştasudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyifadesinin gösterildiğini doğrulayın. psqlkullanarak AlloyDB Omni arşivleme parametrelerini yapılandırın.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;"- Arşivleme değişikliklerini uygulamak için AlloyDB Omni hizmetini yeniden başlatın.
sudo systemctl restart alloydbomni18 - pgBackRest yapılandırma bütünlüğünü ve bağlantısını doğrulayın.
Çıkıştasudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyifadesinin gösterildiğini doğrulayın.
7. Yedekleme gerçekleştirme
Bu bölümde, AlloyDB Omni veritabanınızın S3 uyumlu nesne depolama alanına tam ve farklı yedeklemesini yapmak için pgBackRest'i kullanacaksınız.
pgbackrestkullanarak tam yedeklemeyi tetikleyin.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backuppgbackrestkullanarak farklı bir yedekleme tetikleyin. Not: Diğer desteklenen yedekleme türleri arasındasudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(artımlı) yer alır.
8. Yedekleri Listeleme ve Doğrulama
Bu bölümde, yedeklemeleri listeleyip başarıyla tamamlandıklarını doğrulayacaksınız.
pgbackrest infokomutunu kullanarak yedekleri listeleyin. Çıktıda, çalıştırdığınız her yedekleme komutu için yedekleme bilgilerinin yanı sırasudo -u postgres pgbackrest \ --stanza=omni infostatus: okgösterildiğini doğrulayın:- Tam yedekleme:
full backup:(ör.F 20260908-093545F) - Fark yedeği:
diff backup:(örneğin,F_ D 20260908-093545F_20260908-094016D)
- Tam yedekleme:
- S3 istemcisini (
mc) kullanarak pakette depolanan yedek dosyaları doğrulayın. Çıkıştamc ls s3repo/alloydb-backups/pgbackrest/backup,archivevestanza.infodeğerlerini görmeniz gerekir.
9. Verileri Yedekten Geri Yükleme
Bu bölümde, AlloyDB Omni veritabanı hizmetini durduracak ve pgbackrest kullanarak belirli bir yedeklemeden verileri geri yükleyeceksiniz.
Dikkat: Geri yükleme işlemi veritabanınızı durdurur ve tüm veritabanı verilerinizin üzerine yazar.
- Geri yüklemek istediğiniz yedek kimliği için bir ortam değişkeni tanımlayın. Değeri,
pgbackrest infoçıktınızda gösterilen yedekleme kimliğiyle değiştirin.export BACKUPID="20260908-093545F" - AlloyDB Omni hizmetini durdurun ve devre dışı olduğunu doğrulayın.
Çıkıştasudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactivegösterildiğini doğrulayın. - Veritabanını seçili yedeklemeden geri yüklemek için
pgbackrest restorekomutunu--deltaseçeneğiyle çalıştırın. Çıkıştasudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyifadesinin gösterildiğini doğrulayın. - AlloyDB Omni hizmetini başlatın ve etkin olup olmadığını kontrol edin.
Çıkıştasudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running)gösterildiğini doğrulayın.
10. Temizleme ve Anket
Codelab'i tamamladıktan sonra, istenmeyen ücretlerin alınmasını önlemek için Google Cloud kaynaklarını temizleyebilirsiniz.
- Yerel Cloud Shell terminalinize dönmek için sanal makinedeki SSH oturumunuzun bağlantısını kesin.
exit - Compute Engine sanal makine örneğini silin.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - SSH erişimi için oluşturulan güvenlik duvarı kuralını silin.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Bulut NAT ağ geçidini ve Cloud Router'ı 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 - Özel rotayı silin.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Tebrikler
Codelab'i tamamladığınız için tebrikler. S3 uyumlu nesne depolama alanını kullanarak bir AlloyDB Omni RPM dağıtımını yedeklemek ve geri yüklemek için pgBackRest'i başarıyla yapılandırdınız.
İşlediğimiz konular
- AlloyDB Omni RPM için Compute Engine sanal makinesi oluşturma
- S3 ile uyumlu bir nesne depolama paketi oluşturma
- pgBackRest'i S3 uyumlu bir depo ile yapılandırma
- Tam ve farklı yedeklemeleri gerçekleştirme, listeleme ve doğrulama
- pgBackRest kullanarak yedeklenmiş verileri geri yükleme
Daha fazla bilgi için AlloyDB Omni'ye genel bakış başlıklı makaleyi inceleyin.