Sao chép logic bằng AlloyDB Omni

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 tính năng sao chép logic giữa các phiên bản AlloyDB Omni độc lập. Bạn sẽ triển khai nhiều phiên bản AlloyDB Omni trên một máy ảo Compute Engine và thiết lập tính năng sao chép giữa các phiên bản đó bằng tiện ích pglogical.

Việc chạy nhiều phiên bản trên một nút duy nhất rất hữu ích cho quá trình phát triển, kiểm thử hoặc mô phỏng môi trường sao chép. Khi kết thúc lớp học lập trình này, bạn sẽ có một chế độ thiết lập sao chép hoạt động với một thực thể đóng vai trò là nhà cung cấp và một thực thể khác đóng vai trò là người đăng ký.

Điều kiện tiên quyết

  • Quyền truy cập vào một dự án Google Cloud và Cloud Shell thông qua Google Cloud Console.
  • Google Cloud SDK (gcloud) đã được cài đặt và định cấu hình. Để biết thông tin chi tiết về cách cài đặt gcloud, hãy tham khảo bài viết gcloud-install

Kiến thức bạn sẽ học được

  • Cách tạo và chuẩn bị một máy ảo Compute Engine cho nhiều phiên bản AlloyDB Omni bằng gcloud.
  • Cách cài đặt các RPM của AlloyDB Omni.
  • Cách định cấu hình và khởi chạy nhiều phiên bản AlloyDB Omni bằng cách sử dụng mẫu systemd.
  • Cách định cấu hình tính năng sao chép logic giữa các phiên bản AlloyDB Omni bằng pglogical.
  • Cách xác minh hoạt động sao chép bằng cách sao chép dữ liệu từ nhà cung cấp sang người đăng ký.

Bạn cần có

  • Lấy đường liên kết URL đến các RPM của AlloyDB Omni. Các đường liên kết sẽ được gửi đến email của bạn, bao gồm cả đường liên kết đến 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 thiết bị đầu cuối đ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

  1. 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.
  2. Đả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.

Biểu tượng để kích hoạt Cloud Shell

  1. 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:

Cloud Shell thường mất vài phút để cung cấ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 kết quả tương tự như sau:

Cửa sổ dòng lệnh Google Cloud Shell cho thấy môi trường đã kết nối

3. Tạo máy ảo Compute Engine

Trong phần này, hãy tạo một máy ảo (VM) Compute Engine bằng công cụ dòng lệnh gcloud. Sử dụng hình ảnh Rocky Linux 9, hoàn toàn tương thích với các RPM của AlloyDB Omni.

  1. Xác định các biến môi trường cho mã dự án, tên VM, vùng và khu vực.
    export PROJECT="your-project-id"
    export INSTANCE_NAME="alloydb-omni-multi-vm"
    export ZONE="us-central1-c"
    export REGION="us-central1"
    
  2. Đăng nhập bằng tài khoản Google Cloud của bạn rồi định cấu hình dự án mặc định.
    gcloud auth login
    gcloud config set project $PROJECT
    
  3. Để cho phép các kết nối SSH đến VM bằng cách sử dụng Proxy nhận biết danh tính (IAP), hãy tạo một quy tắc tường lửa.
    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"
    
  4. 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
    
  5. Xác minh rằng mạng đám mây riêng ảo (VPC) của bạn có một tuyến đường cổng Internet mặc định hợp lệ. Đâ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
    
  6. Tạo phiên bản VM Compute Engine với các thông số kỹ thuật bắt buộc (16 vCPU, 20 GB ổ đĩa liên tục cân bằng, Rocky Linux 9). Để tăng cường bảo mật, hãy sử dụng cờ --no-address để đảm bảo rằng VM không được chỉ định địa chỉ IP công khai.
    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
    
  7. 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. Chuẩn bị máy ảo

Trong phần này, bạn sẽ kết nối với VM mới tạo và chuẩn bị môi trường hệ điều hành.

  1. Kết nối với VM qua SSH bằng IAP. Vì máy ảo không có địa chỉ IP công khai, nên gcloud sẽ 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
    
  2. Xác định một biến môi trường cho thư mục dữ liệu cơ sở.
    export BASE_PGDATA="/var/lib/alloydbomni"
    
  3. Tạo thư mục dữ liệu cơ sở.
    sudo mkdir -p $BASE_PGDATA
    
  4. Cài đặt gói policycoreutils-python-utils để có thể định cấu hình chính sách SELinux.
    sudo dnf install -y policycoreutils-python-utils
    

5. Cài đặt AlloyDB Omni

Sau khi chuẩn bị xong máy ảo, giờ đây, bạn có thể định cấu hình kho lưu trữ gói và cài đặt gói AlloyDB Omni RPM.

  1. Đị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ữ. Thay thế $ALLOYDB_OMNI_REPOSITORY_URL bằng URL mà bạn nhận được.
    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
    
  2. Cập nhật bộ nhớ đệm YUM.
    sudo yum makecache
    
  3. Cài đặt phiên bản 18 của gói AlloyDB Omni RPM.
    sudo dnf install -y alloydbomni18
    

6. Định cấu hình nhiều phiên bản

Trong phần này, hãy định cấu hình 2 phiên bản: inst1 và inst2.

  1. Để hỗ trợ nhiều phiên bản, hãy tạo tệp dịch vụ mẫu systemd alloydbomni18@.service.
    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
    
  2. Tải lại cấu hình trình quản lý systemd để nhận dạng dịch vụ mẫu mới.
    sudo systemctl daemon-reload
    
  3. Tạo thư mục cấu hình cho các phiên bản AlloyDB Omni.
    sudo mkdir -p /etc/alloydbomni
    
  4. Định cấu hình thư mục dữ liệu cho inst1.
    sudo tee /etc/alloydbomni/inst1.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst1
    EOF
    
  5. Định cấu hình thư mục dữ liệu cho inst2.
    sudo tee /etc/alloydbomni/inst2.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst2
    EOF
    
  6. Đặt các quyền thích hợp trên tệp cấu hình.
    sudo chmod 640 /etc/alloydbomni/*.conf
    sudo chown postgres:postgres /etc/alloydbomni/*.conf
    
  7. Tạo thư mục dữ liệu cho cả hai phiên bản và đặt quyền sở hữu chính xác.
    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
    
  8. Không bắt buộc: Đặt giới hạn tài nguyên cho từng phiên bản. Điều này giúp ngăn một phiên bản tiêu thụ tất cả tài nguyên máy ảo. Tạo các tệp và thư mục ghi đè systemd cho cả hai thực thể.Lưu ý: Giới hạn tài nguyên được dùng trong các cấu hình sau (40%) là giá trị ví dụ. Điều chỉnh giới hạn dựa trên khối lượng công việc cụ thể và dung lượng máy ảo.Đối với inst1:
    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%
    EOF
    
    Đối với inst2:
    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. Khởi chạy và chuẩn bị cơ sở dữ liệu

Khởi động và chuẩn bị từng phiên bản cơ sở dữ liệu riêng biệt.

  1. Định cấu hình SELinux thành chế độ cho phép để thiết lập.
    sudo setenforce 0
    
    Thận trọng: Việc đặt SELinux thành chế độ cho phép sẽ vô hiệu hoá chế độ thực thi và bạn nên thận trọng khi sử dụng. Lớp học lập trình này sử dụng công cụ này để đơn giản hoá quá trình cài đặt. Trong quá trình sản xuất, hãy định cấu hình các chính sách SELinux thích hợp để AlloyDB Omni chạy ở chế độ thực thi. Bạn có thể bật lại chế độ thực thi sau khi thiết lập bằng cách chạy sudo setenforce 1.
  2. Xác định mật khẩu mạnh cho người dùng quản trị viên postgres PostgreSQL. Bạn sẽ dùng mật khẩu này cho cả hai trường hợp trong lớp học lập trình này.
    export PGPASSWORD="YourStrongPassword123!"
    
    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ụ: 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 .pgpass hoặc trình quản lý bí mật.

Thiết lập inst1

  1. Khởi chạy thư mục cơ sở dữ liệu cho inst1.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. Định cấu hình phiên bản để nghe trên cổng 5433 bằng cách cập nhật tệp postgresql.conf của phiên bản đó.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5433/" \
      /var/lib/alloydbomni/inst1/postgresql.conf
    
  3. Chuẩn bị phiên bản cơ sở dữ liệu cho AlloyDB Omni.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      PGPORT=5433 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

Thiết lập inst2

  1. Khởi chạy thư mục cơ sở dữ liệu cho inst2.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. Định cấu hình phiên bản để theo dõi trên cổng 5434.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5434/" \
      /var/lib/alloydbomni/inst2/postgresql.conf
    
  3. Chuẩn bị thực thể cơ sở dữ liệu.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      PGPORT=5434 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

8. Khởi động các dịch vụ AlloyDB Omni

Giờ đây, bạn có thể bắt đầu các dịch vụ systemd cho cả hai phiên bản.

  1. Để nhận dạng cấu hình và các chế độ ghi đè mới, hãy tải lại cấu hình trình quản lý systemd.
    sudo systemctl daemon-reload
    
  2. Bật và bắt đầu dịch vụ cho inst1.
    sudo systemctl enable alloydbomni18@inst1
    sudo systemctl start alloydbomni18@inst1
    
  3. Bật và bắt đầu dịch vụ cho inst2.
    sudo systemctl enable alloydbomni18@inst2
    sudo systemctl start alloydbomni18@inst2
    
  4. Xác minh rằng cả hai dịch vụ đều đang hoạt động và chạy.
    sudo systemctl status alloydbomni18@inst1
    sudo systemctl status alloydbomni18@inst2
    
    Xác minh rằng đầu ra cho cả hai đều cho biết Active: active (running).

9. Xác minh các phiên bản AlloyDB Omni

Xác minh rằng cả hai phiên bản đều hoạt động đúng cách và độc lập.

  1. Kết nối với inst1 (cổng 5433). Bạn sẽ được nhắc nhập mật khẩu mà bạn đã định cấu hình trong phần Khởi tạo và chuẩn bị cơ sở dữ liệu.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 -U postgres -W
    
  2. Chạy một truy vấn để xác minh kết nối.
    postgres=# SELECT version();
    
  3. Ngắt kết nối khỏi phiên bản.
    postgres=# \q
    
  4. Kết nối với inst2 (cổng 5434).
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 -U postgres -W
    
  5. Chạy một truy vấn để xác minh kết nối.
    postgres=# SELECT version();
    
  6. Ngắt kết nối khỏi phiên bản.
    postgres=# \q
    

10. Định cấu hình để sao chép pglogical

Định cấu hình tính năng sao chép logic giữa hai phiên bản bằng cách sử dụng tiện ích pglogical. Trong trường hợp này, inst1 đóng vai trò là nhà cung cấp và inst2 đóng vai trò là người đăng ký.

Lưu ý: Lớp học lập trình này sử dụng siêu người dùng postgres cho các kết nối sao chép. Trong môi trường sản xuất, hãy tạo một người dùng sao chép chuyên dụng có đặc quyền REPLICATION và chỉ cấp cho người dùng đó quyền truy cập vào các bảng đang được sao chép.

Định cấu hình các thực thể cho pglogical

  1. Bật pglogical trong shared_preload_libraries và định cấu hình các tham số sao chép khác trong postgresql.conf cho inst1.
    # 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
    EOF
    
  2. Định cấu hình các chế độ cài đặt cho inst2 mà bạn đã định cấu hình cho inst1.
    # 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
    
  3. Để áp dụng các thay đổi về cấu hình, hãy khởi động lại cả hai phiên bản.
    sudo systemctl restart alloydbomni18@inst1
    sudo systemctl restart alloydbomni18@inst2
    

Thiết lập các vai trò và bảng sao chép

  1. Trên inst1 (nhà cung cấp, cổng 5433), hãy tạo vai trò sao chép và bảng cần sao chép.
    /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;
    "
    
  2. Trên inst2 (subscriber, port 5434), hãy tạo vai trò và cấu trúc bảng tương tự.
    /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;
    "
    

Định cấu hình các nút và gói thuê bao pglogical

  1. Khởi động nút nhà cung cấp pglogical trên inst1.
    /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');
    "
    
  2. Khởi chạy nút người đăng ký pglogical và tạo gói thuê bao trên inst2.
    /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!'
      );
    "
    
    Lưu ý: Sau khi bạn tạo gói thuê bao, có thể mất một chút thời gian để quá trình đồng bộ hoá ban đầu hoàn tất.

11. Xác minh quy trình sao chép pglogical

Xác minh rằng quá trình sao chép đang hoạt động như dự kiến bằng cách chèn dữ liệu vào nhà cung cấp và truy vấn dữ liệu đó trên người đăng ký.

  1. Kiểm tra để đảm bảo gói thuê bao đang hoạt động. Có thể mất vài giây để chuyển sang chế độ replicating.
    /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';
      "
    
  2. Xác nhận rằng đầu ra hiển thị replicating trước khi bạn tiếp tục.
  3. Chèn một hàng kiểm thử vào trình cung cấp (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!');
    "
    
  4. Để xác minh rằng dữ liệu đã được sao chép, hãy truy vấn bảng trên inst2.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \
      -U postgres -d postgres -c "SELECT * FROM replication_test;"
    
    Xác nhận rằng bạn có thể thấy hàng được chèn trên inst1.

12. Dọn dẹp

Dọn dẹp các tài nguyên. Trước tiên, hãy huỷ các phiên bản AlloyDB Omni trên VM, sau đó xoá các tài nguyên trên Google Cloud.

Huỷ các phiên bản AlloyDB Omni

Trước khi xoá VM, bạn có thể dọn dẹp các phiên bản AlloyDB Omni bằng cách dừng và tắt các dịch vụ, đồng thời xoá cấu hình và dữ liệu của các phiên bản đó.

  1. Dừng và tắt dịch vụ cho inst1, đồng thời xoá dữ liệu và cấu hình của dịch vụ đó.
    sudo systemctl stop alloydbomni18@inst1
    sudo systemctl disable alloydbomni18@inst1
    sudo rm -rf /var/lib/alloydbomni/inst1
    sudo rm -f /etc/alloydbomni/inst1.conf
    
  2. Dừng và tắt dịch vụ cho inst2, đồng thời xoá dữ liệu và cấu hình của dịch vụ đó.
    sudo systemctl stop alloydbomni18@inst2
    sudo systemctl disable alloydbomni18@inst2
    sudo rm -rf /var/lib/alloydbomni/inst2
    sudo rm -f /etc/alloydbomni/inst2.conf
    
  3. Tải lại cấu hình trình quản lý systemd và đặt lại các đơn vị không thành công.
    sudo systemctl daemon-reload
    sudo systemctl reset-failed
    

Dọn dẹp tài nguyên trên Google Cloud

Sau khi bạn dọn dẹp các phiên bản, hãy xoá VM Compute Engine và các tài nguyên khác.

  1. Ngắt kết nối khỏi phiên SSH.
    exit
    
  2. Xoá phiên bản VM Compute Engine.
    gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet
    
  3. Xoá quy tắc tường lửa.
    gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet
    
  4. Xoá Cloud NAT và Bộ định tuyến.
    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
    
  5. Xoá tuyến đường Internet mặc định.
    gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
    

13. Xin chúc mừng

Bạn đã triển khai và định cấu hình thành công nhiều phiên bản AlloyDB Omni trên một máy ảo Compute Engine.

Nội dung đã đề cập

  • Cách cung cấp và chuẩn bị một máy ảo Compute Engine.
  • Cách cài đặt các RPM của AlloyDB Omni.
  • Cách định cấu hình mẫu systemd cho nhiều phiên bản.
  • Cách khởi tạo, định cấu hình và khởi động nhiều dịch vụ độc lập trên các cổng khác nhau.
  • Cách xác minh tính độc lập của từng phiên bản.

Tìm hiểu thêm

  • Hãy tham khảo tài liệu về AlloyDB Omni để biết thêm thông tin về cách cài đặt và định cấu hình.
  • Để biết thông tin chi tiết về tiện ích sao chép được dùng trong lớp học lập trình này, hãy xem tài liệu pglogical.