1. Wprowadzenie
To ćwiczenie pokazuje, jak skonfigurować pgBackRest do tworzenia kopii zapasowych i przywracania wdrożenia AlloyDB Omni RPM przy użyciu pamięci obiektowej zgodnej z S3.
Uwaga: w tym ćwiczeniu wdrożysz na maszynie wirtualnej samodzielny plik binarny MinIO, który będzie działać jako lokalny, lekki punkt końcowy pamięci zgodny z S3 na potrzeby samouczka i testowania. W przypadku obciążeń produkcyjnych zawsze używaj obsługiwanego, aktywnie utrzymywanego rozwiązania do przechowywania zgodnego z S3 lub obiektowej pamięci masowej w chmurze.
Wymagania wstępne
- Dostęp do projektu Google Cloud i Cloud Shell z konsoli Google Cloud.
- Zainstalowany i skonfigurowany pakiet SDK Google Cloud (
gcloud).
Czego się nauczysz
- Jak skonfigurować maszynę wirtualną Compute Engine na potrzeby AlloyDB Omni RPM.
- Jak skonfigurować lokalny serwer obiektowej pamięci masowej zgodny z S3 na maszynie wirtualnej.
- Jak skonfigurować pgBackRest do używania obiektowej pamięci masowej zgodnej z S3 jako repozytorium kopii zapasowych.
- Jak tworzyć, wyświetlać i weryfikować kopie zapasowe.
- Jak przywrócić dane z kopii zapasowej
Czego potrzebujesz
- Uzyskaj link URL do pakietów RPM AlloyDB Omni. Linki zostaną wysłane na Twój adres e-mail, który zawiera adres URL serwera repozytorium. Zainicjuj tę zmienną środowiskową, aby adres URL był gotowy do użycia podczas ćwiczeń z programowania.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - działający terminal z dostępem do Google Cloud; Możesz do tego użyć Cloud Shell.
2. Konfiguracja i wymagania
Konfigurowanie projektu
Tworzenie projektu Google Cloud
- W konsoli Google Cloud na stronie wyboru projektu wybierz lub utwórz projekt Google Cloud.
- Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie są włączone płatności.
Uruchom Cloud Shell
Chociaż możesz zdalnie korzystać z Google Cloud na laptopie, w tym ćwiczeniu użyjesz Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.

- Otwórz konsolę Google Cloud i kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu.Cloud Shell możesz też otworzyć w jeden z tych sposobów:
- Jeśli używasz konsoli Google Cloud, naciśnij G, a potem S.
- Kliknij ten link.
Udostępnienie środowiska i połączenie się z nim może zająć kilka chwil. Po zakończeniu tej operacji zobaczysz coś podobnego do tego:
{: width="624"}
3. Tworzenie maszyny wirtualnej Compute Engine
W tej sekcji utworzysz jedną maszynę wirtualną Compute Engine (GCE) za pomocą narzędzia wiersza poleceń gcloud. Używasz obrazu Rocky Linux 9, który jest w pełni zgodny z pakietami RPM AlloyDB Omni.
- Zdefiniuj zmienne środowiskowe dla identyfikatora projektu, nazwy maszyny wirtualnej, typu maszyny, strefy i regionu.
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" - Zaloguj się jako użytkownik konta Google Cloud i skonfiguruj projekt domyślny.
gcloud auth login gcloud config set project $PROJECT - Utwórz regułę zapory sieciowej, która zezwala na połączenia SSH z maszyną wirtualną.
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" - Maszyna wirtualna jest tworzona bez publicznego adresu IP, dlatego skonfiguruj router Cloud Router i bramę Cloud NAT, aby umożliwić maszynie wirtualnej dostęp do zewnętrznych repozytoriów pakietów i pobieranie wymaganego oprogramowania.
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 - Sprawdź, czy sieć VPC ma prawidłową domyślną trasę do bramy internetowej. W niektórych środowiskach współdzielonych lub testowych skrypty czyszczące czasami usuwają trasy domyślne. Ta trasa jest wymagana, aby usługa Cloud NAT mogła przekazywać ruch wychodzący do internetu.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Utwórz instancję maszyny wirtualnej Compute Engine z systemem Rocky Linux 9 i zrównoważonym dyskiem stałym o pojemności 20 GB. Aby zwiększyć bezpieczeństwo, użyj flagi
--no-address, aby maszynie wirtualnej nie został przypisany publiczny adres IP.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 - Po utworzeniu maszyny wirtualnej sprawdź jej stan.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Konfigurowanie obiektowej pamięci masowej zgodnej z S3
W tej sekcji połączysz się z maszyną wirtualną, przygotujesz środowisko i skonfigurujesz lokalny serwer obiektowej pamięci masowej zgodny z S3 (minio) wraz z klientem S3 (mc), aby hostować zasobnik kopii zapasowych.
- Połącz się z maszyną wirtualną przez SSH za pomocą usługi Identity-Aware Proxy (IAP). Ponieważ maszyna wirtualna nie ma publicznego adresu IP,
gcloudautomatycznie przekieruje połączenie SSH przez IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Zainstaluj pakiet
policycoreutils-python-utils, aby w razie potrzeby można było później skonfigurować zasady SELinux.sudo dnf install -y policycoreutils-python-utils - Pobierz plik binarny serwera zgodnego z S3 (
minio).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/ - Utwórz katalog danych dla serwera pamięci obiektowej.
sudo mkdir -p /var/lib/s3-storage/data - Uruchom serwer zgodny z S3 w tle, używając przykładowych danych logowania. Pamiętaj, że klucz tajny musi mieć co najmniej 8 znaków.
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 & - Sprawdź, czy serwer zgodny z S3 jest uruchomiony.
ps aux | grep minio - Pobierz i zainstaluj klienta S3 (
mc), aby zarządzać zasobnikami.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/ - Skonfiguruj alias klienta S3 (
s3repo) i utwórz zasobnik o nazwiealloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Zainstaluj AlloyDB Omni
W tej sekcji zainstalujesz i skonfigurujesz AlloyDB Omni.
- Zdefiniuj na maszynie wirtualnej zmienne środowiskowe dla katalogu danych, adresu URL repozytorium AlloyDB Omni i silnego hasła użytkownika administratora PostgreSQL
postgres. Zastąp adres URL adresem otrzymanym z formularza rejestracji. Uwaga: przekazywanie haseł za pomocą zmiennych środowiskowych w wierszu poleceń (np.export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) jest tu używane dla uproszczenia w samouczku, ale może ujawnić hasło na listach procesów. W środowisku produkcyjnym używaj bezpieczniejszych metod, takich jak plik.pgpasslub menedżer obiektów tajnych. - Utwórz katalog danych, w którym AlloyDB Omni będzie przechowywać pliki bazy danych.
sudo mkdir -p $PGDATA - Skonfiguruj repozytorium YUM na maszynie wirtualnej, tworząc plik konfiguracji repozytorium.
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 - Zaktualizuj pamięć podręczną YUM.
sudo yum makecache - Zainstaluj wersję 18 pakietu RPM AlloyDB Omni.
sudo dnf install -y alloydbomni18 - Zainicjuj instancję bazy danych AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Tymczasowo wyłącz tryb egzekwowania SELinux, aby ułatwić konfigurację, zgodnie ze standardowymi praktykami ćwiczeń.
sudo setenforce 0 - Przygotuj instancję bazy danych AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Włącz i uruchom usługę AlloyDB Omni
systemd.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Sprawdź, czy usługa AlloyDB Omni jest aktywna i działa prawidłowo.
sudo systemctl status alloydbomni18
6. Konfigurowanie pgBackRest
W tej sekcji zainstalujesz pgBackRest z repozytorium AlloyDB Omni Common, skonfigurujesz /etc/pgbackrest/pgbackrest.conf tak, aby używać zasobnika pamięci obiektowej zgodnego z S3 jako repozytorium kopii zapasowych, i włączysz archiwizację WAL w AlloyDB Omni.
- Zdefiniuj na maszynie wirtualnej zmienną środowiskową dla adresu URL wspólnego repozytorium AlloyDB Omni. Zastąp adres URL adresem otrzymanym z formularza rejestracji.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Skonfiguruj repozytorium YUM pgBackRest i zainstaluj
pgbackrest-2.58.0.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 - Utwórz katalogi buforowania i dzienników dla pgBackRest i przypisz własność do użytkownika
postgres.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 - Utwórz
/etc/pgbackrest/pgbackrest.confi skonfiguruj ścisłe uprawnienia do plików.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 - Zainicjuj sekcję pgBackRest jako użytkownik
postgres. Sprawdź, czy w danych wyjściowych znajduje sięsudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfully. - Skonfiguruj parametry archiwizacji AlloyDB Omni za pomocą
psql.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;" - Uruchom ponownie usługę AlloyDB Omni, aby zastosować zmiany archiwizacji.
sudo systemctl restart alloydbomni18 - Sprawdź integralność konfiguracji i połączenia pgBackRest.
Sprawdź, czy w danych wyjściowych znajduje sięsudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfully.
7. Tworzenie kopii zapasowej
W tej sekcji użyjesz narzędzia pgBackRest, aby wykonać pełną i różnicową kopię zapasową bazy danych AlloyDB Omni w pamięci obiektowej zgodnej z S3.
- Uruchom pełną kopię zapasową za pomocą ikony
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Uruchom różnicową kopię zapasową za pomocą elementu
pgbackrest. Uwaga: inne obsługiwane typy kopii zapasowych tosudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(przyrostowe).
8. Wyświetlanie listy kopii zapasowych i ich weryfikowanie
W tej sekcji wyświetlisz listę kopii zapasowych i sprawdzisz, czy zostały utworzone.
- Wyświetl listę kopii zapasowych za pomocą polecenia
pgbackrest info. Sprawdź, czy dane wyjściowe zawierająsudo -u postgres pgbackrest \ --stanza=omni infostatus: okwraz z informacjami o kopii zapasowej dla każdego wykonanego polecenia tworzenia kopii zapasowej:- Pełna kopia zapasowa:
full backup:(np.F 20260908-093545F) - Kopia zapasowa różnicowa:
diff backup:(np.F_ D 20260908-093545F_20260908-094016D)
- Pełna kopia zapasowa:
- Sprawdź pliki kopii zapasowej zapisane w zasobniku za pomocą klienta S3 (
mc). W danych wyjściowych powinny się pojawić wartościmc ls s3repo/alloydb-backups/pgbackrest/backup,archiveistanza.info.
9. Przywracanie danych z kopii zapasowej
W tej sekcji zatrzymasz usługę bazy danych AlloyDB Omni i przywrócisz dane z określonej kopii zapasowej za pomocą pgbackrest.
Ostrzeżenie: przywracanie zatrzymuje bazę danych i nadpisuje wszystkie jej dane.
- Zdefiniuj zmienną środowiskową dla identyfikatora kopii zapasowej, z której chcesz przywrócić dane. Zastąp wartość identyfikatorem kopii zapasowej widocznym w danych wyjściowych
pgbackrest info.export BACKUPID="20260908-093545F" - Zatrzymaj usługę AlloyDB Omni i sprawdź, czy jest nieaktywna.
Sprawdź, czy w danych wyjściowych znajduje sięsudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Uruchom polecenie
pgbackrest restorez opcją--delta, aby przywrócić bazę danych z wybranej kopii zapasowej. Sprawdź, czy w danych wyjściowych znajduje sięsudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfully. - Uruchom usługę AlloyDB Omni i sprawdź, czy jest aktywna i działa.
Sprawdź, czy w danych wyjściowych znajduje sięsudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Czyszczenie i ankieta
Po ukończeniu ćwiczenia z programowania możesz zwolnić miejsce w zasobach Google Cloud, aby uniknąć niechcianych opłat.
- Odłącz się od sesji SSH na maszynie wirtualnej, aby wrócić do lokalnego terminala Cloud Shell.
exit - Usuń instancję maszyny wirtualnej Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Usuń regułę zapory sieciowej utworzoną na potrzeby dostępu SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Usuń bramę Cloud NAT i router Cloud Router.
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 - Usuń trasę niestandardową.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Gratulacje
Gratulujemy ukończenia warsztatów! Udało Ci się skonfigurować pgBackRest do tworzenia kopii zapasowych i przywracania wdrożenia AlloyDB Omni RPM przy użyciu pamięci obiektowej zgodnej z S3.
Omówione zagadnienia
- Jak skonfigurować maszynę wirtualną Compute Engine na potrzeby AlloyDB Omni RPM.
- Jak skonfigurować zasobnik obiektowej pamięci masowej zgodnej z S3.
- Jak skonfigurować pgBackRest z repozytorium zgodnym z S3.
- Jak tworzyć, wyświetlać i weryfikować pełne i różnicowe kopie zapasowe.
- Jak przywrócić dane z kopii zapasowej za pomocą pgBackRest.
Więcej informacji znajdziesz w omówieniu AlloyDB Omni.