1. Giới thiệu
Lớp học lập trình này hướng dẫn cách định cấu hình pgBackRest để sao lưu và khôi phục một bản triển khai RPM AlloyDB Omni bằng bộ nhớ đối tượng tương thích với S3.
Lưu ý: Trong lớp học lập trình này, bạn sẽ triển khai một tệp nhị phân MinIO độc lập trên VM để đóng vai trò là một điểm cuối lưu trữ cục bộ, gọn nhẹ, tương thích với S3 cho mục đích hướng dẫn và kiểm thử. Đối với các khối lượng công việc sản xuất, hãy luôn sử dụng giải pháp lưu trữ tương thích với S3 hoặc bộ nhớ đối tượng trên đám mây được hỗ trợ và duy trì tích cực.
Điều kiện tiên quyết
- Quyền truy cập vào một dự án Google Cloud và Cloud Shell từ Cloud Console.
- Google Cloud SDK (
gcloud) đã được cài đặt và định cấu hình.
Kiến thức bạn sẽ học được
- Cách thiết lập một máy ảo Compute Engine cho AlloyDB Omni RPM.
- Cách thiết lập máy chủ lưu trữ đối tượng tương thích với S3 cục bộ trên VM.
- Cách định cấu hình pgBackRest để sử dụng bộ nhớ đối tượng tương thích với S3 làm kho lưu trữ sao lưu.
- Cách thực hiện, liệt kê và xác minh bản sao lưu.
- Cách khôi phục dữ liệu từ bản sao lưu.
Bạn cần có
- Lấy đường liên kết đến URL của các RPM AlloyDB Omni. Các đường liên kết này sẽ được gửi đến email của bạn, trong đó có cả máy chủ URL kho lưu trữ. Khởi tạo biến môi trường sau để giữ URL ở trạng thái sẵn sàng sử dụng trong lớp học lập trình.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Một cửa sổ dòng lệnh đang hoạt động có quyền truy cập vào Google Cloud. Bạn có thể sử dụng Cloud Shell cho mục đích này.
2. Thiết lập và yêu cầu
Thiết lập dự án
Tạo một dự án trên Google Cloud
- Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
- Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trong một dự án hay không.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên đám mây.

- Mở Cloud Console rồi nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải.Bạn cũng có thể mở Cloud Shell theo một trong những cách sau:
- Nếu bạn đang sử dụng Cloud Console, hãy nhấn G rồi nhấn S.
- Nhấp vào đường liên kết này.
Quá trình này thường mất vài phút để thiết lập và kết nối với môi trường. Khi thao tác này hoàn tất, bạn sẽ thấy nội dung tương tự như sau:
{: width="624"}
3. Tạo máy ảo Compute Engine
Trong phần này, bạn sẽ tạo một máy ảo (VM) Compute Engine (GCE) bằng công cụ dòng lệnh gcloud. Bạn sử dụng một hình ảnh Rocky Linux 9, hoàn toàn tương thích với các RPM AlloyDB Omni.
- Xác định các biến môi trường cho mã dự án, tên máy ảo, loại máy, vùng và khu vực.
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" - Đăng nhập bằng người dùng tài khoản Google Cloud của bạn và định cấu hình dự án mặc định.
gcloud auth login gcloud config set project $PROJECT - Tạo quy tắc tường lửa để cho phép các kết nối SSH đến VM của bạn.
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" - Vì máy ảo được tạo mà không có địa chỉ IP công khai, hãy định cấu hình Cloud Router và cổng Cloud NAT để cho phép máy ảo truy cập vào các kho lưu trữ gói bên ngoài và tải phần mềm cần thiết xuống.
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 - Đảm bảo mạng VPC của bạn có một tuyến cổng Internet mặc định hợp lệ. Trong một số môi trường dùng chung hoặc môi trường thử nghiệm, các tập lệnh dọn dẹp đôi khi sẽ xoá các tuyến đường mặc định. Đây là tuyến đường bắt buộc để Cloud NAT chuyển tiếp lưu lượng truy cập đi đến Internet.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Tạo phiên bản VM Compute Engine bằng Rocky Linux 9 và ổ đĩa liên tục cân bằng 20 GB. Để tăng cường bảo mật, hãy sử dụng cờ
--no-addressđể VM không được chỉ định địa chỉ IP công khai.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 - Sau khi tạo VM, hãy xác minh trạng thái của VM.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Thiết lập bộ nhớ đối tượng tương thích với S3
Trong phần này, bạn sẽ kết nối với VM, chuẩn bị môi trường và thiết lập một máy chủ lưu trữ đối tượng tương thích với S3 cục bộ (minio) cùng với một ứng dụng S3 (mc) để lưu trữ nhóm sao lưu.
- Kết nối với VM qua SSH bằng Identity-Aware Proxy (IAP). Vì máy ảo không có địa chỉ IP công khai, nên
gcloudsẽ tự động chuyển hướng kết nối SSH thông qua IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Cài đặt gói
policycoreutils-python-utilsđể bạn có thể định cấu hình chính sách SELinux sau này nếu cần.sudo dnf install -y policycoreutils-python-utils - Tải tệp nhị phân của máy chủ tương thích với S3 xuống (
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/ - Tạo một thư mục dữ liệu cho máy chủ lưu trữ đối tượng.
sudo mkdir -p /var/lib/s3-storage/data - Khởi động máy chủ tương thích với S3 ở chế độ nền bằng thông tin đăng nhập mẫu. Xin lưu ý rằng khoá bí mật phải có độ dài ít nhất là 8 ký tự.
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 & - Xác minh rằng máy chủ tương thích với S3 đang chạy.
ps aux | grep minio - Tải xuống và cài đặt ứng dụng S3 (
mc) để quản lý bộ chứa.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/ - Định cấu hình bí danh của ứng dụng S3 (
s3repo) và tạo một bộ chứa có tên làalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Cài đặt AlloyDB Omni
Trong phần này, bạn sẽ cài đặt và định cấu hình AlloyDB Omni.
- Xác định các biến môi trường trên máy ảo cho thư mục dữ liệu, URL kho lưu trữ AlloyDB Omni và mật khẩu mạnh cho người dùng quản trị viên PostgreSQL
postgres. Thay thế URL bằng URL bạn nhận được từ biểu mẫu đăng ký. Lưu ý: Việc truyền mật khẩu bằng cách sử dụng các biến môi trường trên dòng lệnh (ví dụ:export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) được dùng ở đây để đơn giản hoá lớp học lập trình, nhưng có thể để lộ mật khẩu trong danh sách quy trình. Trong quá trình phát hành chính thức, hãy sử dụng các phương thức an toàn hơn, chẳng hạn như tệp.pgpasshoặc trình quản lý bí mật. - Tạo thư mục dữ liệu nơi AlloyDB Omni sẽ lưu trữ các tệp cơ sở dữ liệu.
sudo mkdir -p $PGDATA - Định cấu hình kho lưu trữ YUM trên máy ảo bằng cách tạo tệp cấu hình kho lưu trữ.
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 - Cập nhật bộ nhớ đệm YUM.
sudo yum makecache - Cài đặt phiên bản 18 của gói AlloyDB Omni RPM.
sudo dnf install -y alloydbomni18 - Khởi động phiên bản cơ sở dữ liệu AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Tạm thời tắt chế độ thực thi SELinux để tạo điều kiện thuận lợi cho việc thiết lập, theo các phương pháp tiêu chuẩn của lớp học lập trình.
sudo setenforce 0 - Chuẩn bị thực thể cơ sở dữ liệu AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Bật và khởi động dịch vụ
systemdAlloyDB Omni.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Xác minh rằng dịch vụ AlloyDB Omni đang hoạt động và chạy thành công.
sudo systemctl status alloydbomni18
6. Định cấu hình pgBackRest
Trong phần này, bạn sẽ cài đặt pgBackRest từ kho lưu trữ AlloyDB Omni Common, định cấu hình /etc/pgbackrest/pgbackrest.conf để sử dụng vùng lưu trữ đối tượng tương thích với S3 làm kho lưu trữ sao lưu và bật tính năng lưu trữ WAL trong AlloyDB Omni.
- Xác định một biến môi trường trên máy ảo cho URL kho lưu trữ chung AlloyDB Omni. Thay thế URL bằng URL bạn nhận được từ biểu mẫu đăng ký.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Định cấu hình kho lưu trữ pgBackRest YUM và cài đặt
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 - Tạo các thư mục spool và log cho pgBackRest, đồng thời chỉ định quyền sở hữu cho người dùng
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 - Tạo
/etc/pgbackrest/pgbackrest.confvà định cấu hình quyền truy cập nghiêm ngặt đối với tệp.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 - Khởi động stanza pgBackRest với tư cách là người dùng
postgres. Xác nhận rằngsudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyxuất hiện trong đầu ra. - Định cấu hình các thông số lưu trữ AlloyDB Omni bằng
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;" - Khởi động lại dịch vụ AlloyDB Omni để áp dụng các thay đổi về việc lưu trữ.
sudo systemctl restart alloydbomni18 - Xác minh tính toàn vẹn và khả năng kết nối của cấu hình pgBackRest.
Xác nhận rằngsudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyxuất hiện trong đầu ra.
7. Sao lưu
Trong phần này, bạn sẽ sử dụng pgBackRest để thực hiện một bản sao lưu đầy đủ và một bản sao lưu gia tăng cho cơ sở dữ liệu AlloyDB Omni vào bộ nhớ đối tượng tương thích với S3.
- Kích hoạt quá trình sao lưu đầy đủ bằng cách sử dụng
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Kích hoạt bản sao lưu gia tăng bằng cách sử dụng
pgbackrest. Lưu ý: Các loại bản sao lưu được hỗ trợ khác bao gồmsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(gia tăng).
8. Liệt kê và xác minh bản sao lưu
Trong phần này, bạn liệt kê các bản sao lưu và xác minh rằng chúng đã hoàn tất thành công.
- Liệt kê các bản sao lưu bằng lệnh
pgbackrest info. Xác nhận rằng kết quả cho thấysudo -u postgres pgbackrest \ --stanza=omni infostatus: okcùng với thông tin sao lưu cho mỗi lệnh sao lưu mà bạn đã thực hiện:- Sao lưu toàn bộ:
full backup:(ví dụ:F 20260908-093545F) - Sao lưu gia tăng:
diff backup:(ví dụ:F_ D 20260908-093545F_20260908-094016D)
- Sao lưu toàn bộ:
- Xác minh các tệp sao lưu được lưu trữ trong vùng chứa bằng ứng dụng S3 (
mc). Bạn sẽ thấymc ls s3repo/alloydb-backups/pgbackrest/backup,archivevàstanza.infotrong kết quả.
9. Khôi phục dữ liệu từ bản sao lưu
Trong phần này, bạn sẽ dừng dịch vụ cơ sở dữ liệu AlloyDB Omni và khôi phục dữ liệu từ một bản sao lưu cụ thể bằng cách sử dụng pgbackrest.
Thận trọng: Thao tác khôi phục sẽ dừng cơ sở dữ liệu và ghi đè tất cả dữ liệu trong cơ sở dữ liệu của bạn.
- Xác định một biến môi trường cho mã sao lưu mà bạn muốn khôi phục. Thay thế giá trị bằng mã sao lưu xuất hiện trong đầu ra
pgbackrest info.export BACKUPID="20260908-093545F" - Dừng dịch vụ AlloyDB Omni và xác minh rằng dịch vụ này không hoạt động.
Xác nhận rằng đầu ra cho thấysudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Chạy
pgbackrest restorebằng tuỳ chọn--deltađể khôi phục cơ sở dữ liệu từ bản sao lưu đã chọn. Xác nhận rằngsudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyxuất hiện trong đầu ra. - Khởi động dịch vụ AlloyDB Omni và xác minh rằng dịch vụ này đang hoạt động và chạy.
Xác nhận rằng đầu ra cho thấysudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Dọn dẹp và khảo sát
Sau khi hoàn tất lớp học lập trình, bạn có thể dọn dẹp các tài nguyên trên Google Cloud để tránh bị tính phí không mong muốn.
- Ngắt kết nối khỏi phiên SSH trên VM để quay lại thiết bị đầu cuối Cloud Shell cục bộ.
exit - Xoá phiên bản VM Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Xoá quy tắc tường lửa đã tạo cho quyền truy cập SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Xoá cổng Cloud NAT và 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 - Xoá tuyến đường tuỳ chỉnh.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Xin chúc mừng
Chúc mừng bạn đã hoàn thành lớp học lập trình này! Bạn đã định cấu hình thành công pgBackRest để sao lưu và khôi phục một bản triển khai AlloyDB Omni RPM bằng bộ nhớ đối tượng tương thích với S3.
Nội dung đã đề cập
- Cách thiết lập một máy ảo Compute Engine cho AlloyDB Omni RPM.
- Cách thiết lập một bộ chứa lưu trữ đối tượng tương thích với S3.
- Cách định cấu hình pgBackRest bằng một kho lưu trữ tương thích với S3.
- Cách thực hiện, liệt kê và xác minh bản sao lưu đầy đủ và bản sao lưu gia tăng.
- Cách khôi phục dữ liệu từ bản sao lưu bằng pgBackRest.
Để biết thêm thông tin, hãy xem bài viết Tổng quan về AlloyDB Omni.