1. Giới thiệu
Trong lớp học lập trình này, bạn sẽ sao lưu một cụm có tính sẵn sàng cao (HA) vào bộ nhớ đối tượng tương thích với S3 cho AlloyDB Omni bằng cách sử dụng trình điều phối RPM.
Lớp học lập trình này sử dụng cụm từ lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên các máy ảo GCE bằng Trình điều phối RPM để tạo một cụm có tính sẵn sàng cao trên các máy ảo Compute Engine. Trong lớp học lập trình này, bạn sẽ thêm một máy chủ lưu trữ đối tượng tương thích với S3 vào một trong các VM. Bạn sử dụng máy chủ lưu trữ đối tượng cho cụm HA để sao lưu dữ liệu và khôi phục cụm từ máy chủ.

Điều kiện tiên quyết
- Một dự án trên Google Cloud đã bật tính năng thanh toán.
- Các vai trò IAM mà lớp học lập trình về tính năng HA liệt kê.
- Có kiến thức cơ bản về các lệnh Linux và SQL.
Kiến thức bạn sẽ học được
- Cách cài đặt và chạy một máy chủ lưu trữ đối tượng tương thích với S3 để sao lưu.
- Cách tạo kế hoạch sao lưu để ghi dữ liệu sao lưu vào bộ nhớ tương thích với S3.
- Cách tạo bản sao lưu theo yêu cầu.
- Cách khôi phục một cụm từ bản sao lưu và đến một thời điểm.
Bạn cần có
- URL của kho lưu trữ phần mềm AlloyDB Omni và của bộ sưu tập Ansible Orchestrator. Để nhận được các URL này, hãy hoàn tất biểu mẫu đăng ký AlloyDB Omni. Để biết thêm thông tin, hãy xem bài viết Tổng quan về AlloyDB Omni khi dùng RPM. Bạn sử dụng các URL trong lớp học lập trình HA.
- Một cụm có tính sẵn sàng cao AlloyDB Omni từ lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên các VM GCE bằng Trình điều phối RPM.
- Một cửa sổ dòng lệnh có quyền truy cập vào Google Cloud và Cloud Shell.
2. Thiết lập và yêu cầu
- Ở bước này, bạn sẽ tạo một cụm có tính sẵn sàng cao bằng cách sử dụng lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên các VM GCE bằng Trình điều phối RPM. Hoàn tất các bước sau. Nếu bạn đã có một cụm từ lớp học lập trình, hãy tiếp tục với bước tiếp theo.
- Lưu ý: Đừng thực hiện bước "Dọn dẹp tài nguyên" ở giai đoạn này. Bạn sẽ thực hiện bước đó ở cuối lớp học lập trình này.
- Quay lại lớp học lập trình này
3. Kết nối với cụm và thêm dữ liệu mẫu
Trong bước này, bạn sẽ tải các chế độ cài đặt cụm trên VM điều khiển. Sau đó, bạn kết nối với cụm và thêm một bảng có dữ liệu mẫu.
- Nếu bạn chưa kết nối với VM kiểm soát, hãy kết nối với VM đó từ Cloud Shell:
Các biếngcloud compute ssh "$CLUSTER-control" --zone="$ZONE" --project="$PROJECT"CLUSTER,ZONEvàPROJECTđến từ bước Chuẩn bị máy ảo để triển khai trong lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên máy ảo GCE bằng Trình điều phối RPM. Nếu Cloud Shell không có các biến này, hãy đặt lại. - Trên VM điều khiển, hãy chuyển sang thư mục chính và tải các biến môi trường. Sau đó, hãy thêm tên cụm và người dùng SSH vào tệp môi trường:
Xác minh rằng đầu ra cho thấycd ~ source /tmp/cluster.conf cat >> ~/.codelab.env <<EOF export CLUSTER="$cluster" export SSH_USER="$service_account" EOF source ~/.codelab.env env | grep -E '^(CLUSTER|SSH_USER|VIRTUAL_IP)='CLUSTER,SSH_USERvàVIRTUAL_IP. Lưu ý: Nếu sau này bạn kết nối lại với VM điều khiển, hãy chạycd ~vàsource ~/.codelab.envtrước khi tiếp tục. - Thêm chế độ cài đặt kết nối vào tệp môi trường. Khi lệnh
readyêu cầu mật khẩu, hãy nhập mật khẩu của người dùngpostgres. Bạn thiết lập mật khẩu này trong bước Khởi động cụm AlloyDB Omni trong lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên các VM GCE bằng Trình điều phối RPMcat >> ~/.codelab.env <<'EOF' export PATH="/usr/pgsql-18/bin:$PATH" export PGHOST="$VIRTUAL_IP" export PGUSER="postgres" EOF read -rsp "Password of the postgres user: " PGPASSWORD; echo printf 'export PGPASSWORD=%q\n' "$PGPASSWORD" >> ~/.codelab.env source ~/.codelab.env env | grep -E '^(PGHOST|PGUSER|PGPASSWORD)=' - Tạo bảng và thêm 1.000 hàng:
psql <<'SQL' CREATE TABLE public.orders ( id integer PRIMARY KEY, item text NOT NULL, created_at timestamptz NOT NULL DEFAULT pg_catalog.now() ); INSERT INTO public.orders (id, item) SELECT g, 'item-' || g FROM pg_catalog.generate_series(1, 1000) AS g; SQL - Đếm số hàng:
Xác minh rằng đầu ra trả vềpsql -c "SELECT pg_catalog.count(*) FROM public.orders;"1000.
4. Cài đặt và chạy bộ nhớ đối tượng tương thích với S3
Trong bước này, bạn sẽ viết một sổ tay Ansible để cài đặt máy chủ MinIO trên VM điều khiển. Playbook này cũng tạo vùng chứa và người dùng cho các bản sao lưu, đồng thời đảm bảo rằng các VM cơ sở dữ liệu có thể kết nối với MinIO. Chạy tất cả các lệnh trong bước này trên VM điều khiển.
- Trên VM điều khiển, hãy thêm chế độ cài đặt bộ nhớ vào tệp môi trường. Lệnh
openssltạo mật khẩu ngẫu nhiên. Đảm bảo rằng đầu ra cho thấy tên và địa chỉ IP nội bộ của VM kiểm soát, ví dụ:MD=http://metadata.google.internal/computeMetadata/v1/instance S3_IP=$(curl -s -H "Metadata-Flavor: Google" "$MD/network-interfaces/0/ip") cat >> ~/.codelab.env <<EOF export S3_IP="$S3_IP" export S3_HOST="$CLUSTER-control" export S3_BUCKET="alloydb-backups" export S3_REGION="us-east-1" export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="$(openssl rand -hex 16)" export S3_ACCESS_KEY_ID="alloydb-backup" export S3_SECRET_ACCESS_KEY="$(openssl rand -hex 16)" export MINIO_URL="https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z" export MC_URL="https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z" EOF source ~/.codelab.env echo "$S3_HOST $S3_IP"my-cluster-control 10.1.0.2. Các VM cơ sở dữ liệu sử dụng tên máy chủ lưu trữ và địa chỉ IP này để kết nối với MinIO. Máy chủ siêu dữ liệu của VM cung cấp địa chỉ IP. Để biết thêm thông tin, hãy xem tài liệu về siêu dữ liệu VM.Các giá trịMINIO_URLvàMC_URLlà URL tải xuống của máy chủ MinIO và của ứng dụng MinIO (mc). - Cài đặt bộ sưu tập Ansible
community.cryptobắt buộc trên máy ảo kiểm soát:ansible-galaxy collection install community.crypto - Tạo cẩm nang
s3_server.yaml: Biếncat > s3_server.yaml <<EOF - name: Install and run MinIO on the control VM hosts: localhost connection: local become: true gather_facts: false tasks: - name: Create MinIO directories ansible.builtin.file: path: "{{ item }}" state: directory mode: "0755" loop: - /var/lib/minio/data - /var/lib/minio/certs - name: Download MinIO server and client ansible.builtin.get_url: url: "{{ item.url }}" dest: "{{ item.dest }}" mode: "0755" loop: - url: "$MINIO_URL" dest: /usr/local/bin/minio - url: "$MC_URL" dest: /usr/local/bin/mc - name: Generate MinIO TLS private key community.crypto.openssl_privatekey: path: /var/lib/minio/certs/private.key size: 2048 mode: "0600" - name: Generate MinIO certificate signing request community.crypto.openssl_csr_pipe: privatekey_path: /var/lib/minio/certs/private.key common_name: "$S3_HOST" subject_alt_name: - "DNS:$S3_HOST" - "DNS:$S3_BUCKET.$S3_HOST" - "DNS:localhost" - "IP:127.0.0.1" - "IP:$S3_IP" register: minio_csr - name: Generate self-signed MinIO TLS certificate community.crypto.x509_certificate: path: /var/lib/minio/certs/public.crt csr_content: "{{ minio_csr.csr }}" privatekey_path: /var/lib/minio/certs/private.key provider: selfsigned selfsigned_not_after: "+365d" mode: "0644" - name: Create MinIO systemd service unit ansible.builtin.copy: dest: /etc/systemd/system/minio.service mode: "0600" content: | [Unit] Description=MinIO Object Storage After=network.target [Service] Environment="MINIO_ROOT_USER=$MINIO_ROOT_USER" Environment="MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD" Environment="MINIO_DOMAIN=$S3_HOST" ExecStart=/usr/local/bin/minio server /var/lib/minio/data --certs-dir /var/lib/minio/certs Restart=on-failure [Install] WantedBy=multi-user.target - name: Start and enable MinIO service ansible.builtin.systemd_service: name: minio daemon_reload: true state: started enabled: true - name: Add storage host names to /etc/hosts on the control VM ansible.builtin.lineinfile: path: /etc/hosts line: "$S3_IP $S3_HOST $S3_BUCKET.$S3_HOST" state: present - name: Wait for MinIO health endpoint ansible.builtin.uri: url: "https://$S3_HOST:9000/minio/health/live" ca_path: /var/lib/minio/certs/public.crt status_code: 200 register: minio_health until: minio_health.status == 200 retries: 6 delay: 5 - name: Create backup bucket and user in MinIO ansible.builtin.command: argv: "{{ item }}" loop: - - /usr/local/bin/mc - --insecure - alias - set - s3repo - "https://$S3_HOST:9000" - "$MINIO_ROOT_USER" - "$MINIO_ROOT_PASSWORD" - - /usr/local/bin/mc - --insecure - mb - --ignore-existing - "s3repo/$S3_BUCKET" - - /usr/local/bin/mc - --insecure - admin - user - add - s3repo - "$S3_ACCESS_KEY_ID" - "$S3_SECRET_ACCESS_KEY" - - /usr/local/bin/mc - --insecure - admin - policy - attach - s3repo - readwrite - --user - "$S3_ACCESS_KEY_ID" become: false no_log: true - name: Configure database VMs for MinIO hosts: primary_instance_nodes become: true gather_facts: false vars: ansible_user: $SSH_USER ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa tasks: - name: Set SELinux to permissive mode ansible.builtin.command: cmd: setenforce 0 - name: Add storage host names to /etc/hosts ansible.builtin.lineinfile: path: /etc/hosts line: "$S3_IP $S3_HOST $S3_BUCKET.$S3_HOST" state: present - name: Verify storage host resolution ansible.builtin.getent: database: hosts key: "$S3_BUCKET.$S3_HOST" - name: Verify connection to MinIO ansible.builtin.uri: url: "https://$S3_HOST:9000/minio/health/live" validate_certs: false status_code: 200 EOFMINIO_DOMAINcho phép MinIO chấp nhận các yêu cầu theo kiểu máy chủ ảo. Trình điều phối RPM sử dụng người dùngalloydb-backupđể ghi dữ liệu sao lưu. Chính sáchreadwritelà một chính sách tích hợp của MinIO. - Chạy Playbook:
Xác minh rằng đầu raansible-playbook s3_server.yaml -i deployment_spec.yamlPLAY RECAPcho thấyfailed=0cholocalhostvà cho từng VM cơ sở dữ liệu. - Xác minh rằng vùng chứa tồn tại:
Xác minh rằng đầu ra cho thấy nhómmc --insecure ls s3repoalloydb-backups/.
5. Lập kế hoạch sao lưu
Kế hoạch sao lưu chứa vị trí lưu trữ, lịch biểu và khoảng thời gian lưu giữ cho các bản sao lưu của một cụm. Ở bước này, bạn sẽ tạo một kế hoạch sao lưu cho nhóm MinIO.
- Trên VM điều khiển, hãy tạo kịch bản sao lưu và kịch bản trạng thái. Bạn sử dụng cẩm nang sao lưu cho các tài nguyên
Secret,BackupPlanvàBackup. Bạn sử dụng sổ tay trạng thái để cho biết trạng thái của một tài nguyên.cat > backup.yaml <<EOF - name: Manage AlloyDB Omni backups hosts: localhost roles: - role: google.alloydbomni_orchestrator.backup EOF cat > status.yaml <<EOF - name: Get resource status hosts: localhost roles: - role: google.alloydbomni_orchestrator.status EOF - Tạo tài nguyên
Secretcho thông tin đăng nhập S3. Sau đó, hãy áp dụng tài nguyên: Tên khoá trong phầnS3_KEY_ID_B64=$(printf '%s' "$S3_ACCESS_KEY_ID" | base64 -w 0) S3_KEY_B64=$(printf '%s' "$S3_SECRET_ACCESS_KEY" | base64 -w 0) cat > s3_secret.yaml <<EOF Secret: metadata: name: s3-backup-secret spec: type: Opaque data: access-key-id: "$S3_KEY_ID_B64" access-key: "$S3_KEY_B64" EOF ansible-playbook backup.yaml -i deployment_spec.yaml \ -e resource_spec=s3_secret.yamldataphải làaccess-key-idvàaccess-key. Bạn phải áp dụng tài nguyênSecrettrước khi áp dụng tài nguyênBackupPlan. - Tạo tài nguyên
BackupPlanrồi áp dụng tài nguyên đó: Giá trịcat > backup_plan.yaml <<EOF BackupPlan: metadata: name: s3-backup-plan spec: dbclusterRef: $CLUSTER backupLocation: type: S3 s3Options: bucket: $S3_BUCKET key: /backups endpoint: https://$S3_HOST:9000 region: $S3_REGION secretRef: name: s3-backup-secret caBundle: - | $(sed 's/^/ /' /var/lib/minio/certs/public.crt) EOF ansible-playbook backup.yaml -i deployment_spec.yaml \ -e resource_spec=backup_plan.yamlkeylà đường dẫn cho các bản sao lưu trong nhóm. Đường dẫn này phải bắt đầu bằng dấu gạch chéo (/). TrườngcaBundlechứa chứng chỉ CA được mã hoá PEM để xác thực chứng chỉ của máy chủ lưu trữ S3. - Xác minh rằng kế hoạch sao lưu đã sẵn sàng:
Xác minh rằng trườngansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=BackupPlan -e resource_name=s3-backup-planphasecho thấyReady. Nếu giai đoạn không phải làReady, hãy đợi một phút rồi chạy lại lệnh. - Khi một kế hoạch sao lưu được tạo, trình điều phối RPM sẽ tự động bắt đầu một quy trình sao lưu toàn bộ ban đầu. Xác minh rằng bản sao lưu ban đầu này đã hoàn tất trước khi bạn tạo bản sao lưu theo yêu cầu:
Xác minh rằng giai đoạn sao lưu ban đầu thành công.ansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=Backup
6. Tạo bản sao lưu theo yêu cầu
Trong bước này, bạn sẽ tạo một bản sao lưu theo yêu cầu của cụm.
- Trên VM kiểm soát, hãy tạo tài nguyên
Backup. Sau đó, hãy áp dụng tài nguyên: Trườngcat > create_backup.yaml <<EOF Backup: metadata: name: s3-backup-1 spec: backupPlanRef: s3-backup-plan dbclusterRef: $CLUSTER EOF ansible-playbook backup.yaml -i deployment_spec.yaml \ -e resource_spec=create_backup.yamlbackupPlanReflà tên của kế hoạch sao lưu. TrườngdbclusterReflà tên của cụm. - Xác minh để đảm bảo quá trình sao lưu đã hoàn tất:
Xác minh rằng trườngansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=Backup -e resource_name=s3-backup-1phasecho thấySucceeded. Nếu giai đoạn không phải làSucceeded, hãy đợi một phút rồi chạy lại lệnh. - Xác minh rằng các tệp sao lưu nằm trong vùng lưu trữ:
Xác minh rằng đầu ra cho thấy một thư mụcmc --insecure tree "s3repo/$S3_BUCKET"backupchứa một thư mụcdb.
7. Khôi phục cụm từ bản sao lưu
Trình điều phối RPM khôi phục một cụm tại chỗ. Trong bước này, bạn sẽ xoá một bảng rồi khôi phục bảng đó từ bản sao lưu. Sau đó, bạn có thể khôi phục cụm về một thời điểm bất kỳ.
Thận trọng: Thao tác khôi phục sẽ ghi đè tất cả dữ liệu trong cụm cơ sở dữ liệu.
Khôi phục từ bản sao lưu
- Trên VM điều khiển, hãy xoá bảng
orders. Sau đó, hãy đếm số hàng: Xác minh rằng lệnh thứ hai không thành công và có lỗi. Thông báo lỗi cho biết mối quan hệ không tồn tại. Ví dụ: "ERROR: table "orders" does not exist" (LỖI: bảng "orders" không tồn tại)psql -c "DROP TABLE public.orders;" psql -c "SELECT pg_catalog.count(*) FROM public.orders;" - Tạo cẩm nang khôi phục:
cat > restore.yaml <<EOF - name: Restore AlloyDB Omni cluster hosts: localhost roles: - role: google.alloydbomni_orchestrator.restore EOF - Tạo tài nguyên
Restorecho bản sao lưus3-backup-1. Sau đó, hãy áp dụng tài nguyên:cat > restore_backup.yaml <<EOF Restore: metadata: name: s3-restore-1 spec: sourceDBCluster: $CLUSTER backup: s3-backup-1 EOF ansible-playbook restore.yaml -i deployment_spec.yaml \ -e resource_spec=restore_backup.yaml - Xác minh rằng quá trình khôi phục đã hoàn tất:
Xác minh rằng trườngansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=Restore -e resource_name=s3-restore-1phasecho thấyProvisionSucceeded. Nếu giai đoạn không phải làProvisionSucceeded, hãy đợi một phút rồi chạy lại lệnh. - Đếm số hàng trong bảng được khôi phục:
Xác minh rằng đầu ra cho thấypsql -c "SELECT pg_catalog.count(*) FROM public.orders;"1000.
(Không bắt buộc) Khôi phục về một thời điểm
Tính năng khôi phục tại một thời điểm sử dụng bản sao lưu và nhật ký ghi trước (WAL) được lưu trữ. Bạn có thể khôi phục cụm về bất kỳ thời điểm nào trong khoảng thời gian khôi phục của kế hoạch sao lưu.
Quy tắc về thời gian mục tiêu
Bạn phải tuân thủ tất cả các quy tắc để chọn giá trị và định dạng cho thời gian mục tiêu:
- Sử dụng định dạng RFC 3339 theo giờ UTC:
YYYY-MM-DDThh:mm:ssZ. Ví dụ:2026-06-19T14:30:00Zlà 14:30:00 ngày 19 tháng 6 năm 2026 (giờ UTC). Chữ cáiTphân tách ngày và giờ. ChữZcho biết giờ UTC. - Sử dụng một thời điểm trong quá khứ.
- Sử dụng thời gian sau giá trị
begincủa trườngrecoveryWindowtrong CRDBackupPlan.
Để hiện thời gian hiện tại ở định dạng RFC 3339, hãy chạy lệnh sau:
date -u +%Y-%m-%dT%H:%M:%SZ
Để thay đổi giờ địa phương sang định dạng này, hãy thêm độ lệch UTC của giờ địa phương vào lệnh date. Ví dụ: lệnh sau đây sẽ thay đổi 16:30:00 trên 19 June 2026 tại UTC+02:00:
date -u -d "2026-06-19 16:30:00 +0200" +%Y-%m-%dT%H:%M:%SZ
Lệnh này trả về 2026-06-19T14:30:00Z.
Khôi phục về thời gian đã ghi
Trong quy trình này, bạn sẽ thêm các hàng vào bảng và ghi lại thời gian. Khi ghi lại một thời điểm, bạn sẽ đánh dấu chính xác thời điểm cơ sở dữ liệu hoàn toàn nguyên vẹn (có đúng 1.500 hàng). Sau đó,bạn sẽ xoá các hàng và khôi phục cụm về thời điểm đã ghi.
- Thêm 500 hàng vào bảng:
psql <<'SQL' INSERT INTO public.orders (id, item) SELECT g, 'item-' || g FROM pg_catalog.generate_series(1001, 1500) AS g; SQL - Ghi lại thời gian. Hiện tại,bảng này có 1.500 hàng.
Xác minh rằng đầu ra cho thấy thời gian ở định dạngsleep 5 PITR_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ) echo "export PITR_TIME=$PITR_TIME" >> ~/.codelab.env echo "$PITR_TIME" sleep 5YYYY-MM-DDThh:mm:ssZ, ví dụ:2026-10-05T11:16:02Z. - Xoá các hàng khỏi bảng để mô phỏng trường hợp xoá dữ liệu do nhầm lẫn. Sau đó, hãy bắt đầu một tệp WAL mới:
Xác minh rằng cụm từ tìm kiếmpsql -c "DELETE FROM public.orders WHERE id > 1000;" psql -c "SELECT pg_catalog.count(*) FROM public.orders;" psql -c "SELECT pg_catalog.pg_switch_wal();"countcho thấy1000. Hàmpg_switch_walkhiến máy chủ bắt đầu một tệp WAL mới. Sau đó, máy chủ có thể lưu trữ tệp WAL chứa các thay đổi của bạn. - Xác minh rằng khoảng thời gian khôi phục của kế hoạch sao lưu có chứa thời gian ghi:
Xác minh rằng giá trịtest -n "$PITR_TIME" || { echo "PITR_TIME is not set. Run step 2 again."; exit 1; } echo "$PITR_TIME" ansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=BackupPlan -e resource_name=s3-backup-planPITR_TIMEnằm sau giá trịbegincủa trườngrecoveryWindow. - Tạo tài nguyên
Restorecho thời gian đã ghi. Sau đó, hãy áp dụng tài nguyên:cat > restore_pitr.yaml <<EOF Restore: metadata: name: s3-restore-pitr spec: sourceDBCluster: $CLUSTER pointInTime: "$PITR_TIME" EOF ansible-playbook restore.yaml -i deployment_spec.yaml \ -e resource_spec=restore_pitr.yaml - Xác minh rằng quá trình khôi phục đã hoàn tất:
Xác minh rằng trườngansible-playbook status.yaml -i deployment_spec.yaml \ -e resource_type=Restore -e resource_name=s3-restore-pitrphasecho thấyProvisionSucceeded. Nếu giai đoạn không phải làProvisionSucceeded, hãy đợi một phút rồi chạy lại lệnh. - Đếm số hàng:
Xác minh rằng đầu ra cho thấypsql -c "SELECT pg_catalog.count(*) FROM public.orders;"1500.
8. Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud của bạn, hãy xoá các tài nguyên của lớp học lập trình này và lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên máy ảo GCE bằng Trình điều phối RPM. Trước tiên, hãy xoá các tài nguyên sao lưu, sau đó xoá cụm và môi trường điện toán.
- Trên VM điều khiển, hãy tạo playbook xoá:
cat > delete.yaml <<EOF - name: Delete AlloyDB Omni resources hosts: localhost roles: - role: google.alloydbomni_orchestrator.delete EOF - Liệt kê các bản sao lưu:
Xác minh rằng đầu ra cho thấy bản sao lưuansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backups3-backup-1. - Xoá bản sao lưu trên
s3-backup-1:ansible-playbook delete.yaml -i deployment_spec.yaml \ -e resource_type=Backup -e resource_name=s3-backup-1 - Xoá kế hoạch sao lưu:
ansible-playbook delete.yaml -i deployment_spec.yaml \ -e resource_type=BackupPlan -e resource_name=s3-backup-plan - Xoá cụm và môi trường điện toán bằng bước Xoá tài nguyên trong lớp học lập trình Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên máy ảo GCE bằng Trình điều phối RPM. Máy chủ MinIO và các bản sao lưu trong đó nằm trên VM kiểm soát. Khi xoá môi trường điện toán, bạn sẽ xoá cả máy chủ và các bản sao lưu.
9. Xin chúc mừng
Xin chúc mừng. Bạn đã sao lưu một cụm có tính sẵn sàng cao (HA) vào bộ nhớ đối tượng tương thích với S3 cho AlloyDB Omni bằng trình điều phối RPM. Sau đó, bạn đã khôi phục cụm từ các bản sao lưu.
Nội dung đã đề cập
- Cách cài đặt và chạy MinIO dưới dạng bộ nhớ đối tượng tương thích với S3.
- Cách tạo kế hoạch sao lưu và bản sao lưu theo yêu cầu.
- Cách khôi phục một cụm từ bản sao lưu và đến một thời điểm.
Để biết thêm thông tin chi tiết, vui lòng xem trang bên dưới: