Chuyển đến nội dung chính

Azure Database for PostgreSQL: Hướng Dẫn Triển Khai Hoàn Chỉnh

Hướng dẫn này giúp bạn triển khai, bảo mật và tối ưu Azure Database for PostgreSQL, kèm hướng dẫn thực hành cho các ứng dụng thực tế.
· 15 phút đọc

Khám phá cùng AI

Khi ngày càng nhiều khối lượng công việc chuyển lên đám mây, tôi nhận thấy việc quản trị PostgreSQL hiệu quả và an toàn đã trở thành kỹ năng cốt lõi đối với các chuyên gia dữ liệu. 

PostgreSQL từ lâu đã là một trong những hệ quản trị cơ sở dữ liệu quan hệ ưa thích của tôi. Nó đáng tin cậy, có thể mở rộng tính năng và được cộng đồng mã nguồn mở hậu thuẫn. 

Nhưng vận hành nó trên đám mây - đặc biệt ở quy mô lớn - đi kèm nhiều thách thức riêng như: tính sẵn sàng cao, tinh chỉnh hiệu năng, tối ưu chi phí và đáp ứng các yêu cầu bảo mật nghiêm ngặt.

Azure Database for PostgreSQL giải quyết nhiều vấn đề này bằng cách cung cấp một nền tảng được quản lý hoàn toàn, có khả năng mở rộng và an toàn. Theo kinh nghiệm của tôi, nó đơn giản hóa việc triển khai và vận hành, đồng thời mang lại cho bạn sự linh hoạt cần thiết để xây dựng nhanh và thích ứng với nhu cầu thay đổi. Vì vậy, trong hướng dẫn này, tôi sẽ trình bày mọi thứ bạn cần biết về việc triển khai cơ sở dữ liệu Azure PostgreSQL.

> Để làm quen với các khái niệm cơ bản và cách thức hoạt động của PostgreSQL, hãy xem PostgreSQL là gì? Cách hoạt động, các trường hợp sử dụng và tài nguyên.

Tổng quan về Azure Database for PostgreSQL

Azure Database for PostgreSQL là dịch vụ PostgreSQL thuần đám mây, được quản lý hoàn toàn do Microsoft cung cấp. 

Được thiết kế cho cả khối lượng công việc nhỏ và cấp doanh nghiệp, dịch vụ loại bỏ nhu cầu cấp phát, cấu hình, vá lỗi và bảo trì hạ tầng cơ sở dữ liệu thủ công.

Xây dựng trên nền tảng Azure tin cậy, dịch vụ hỗ trợ ba mô hình triển khai riêng biệt: single server, flexible server và Hyperscale (Citus), đáp ứng các khối lượng công việc và kiến trúc ứng dụng khác nhau.

Một số lợi ích chính của Azure PostgreSQL gồm:

  • Tự động vá lỗi và sao lưu: Azure tự động sao lưu hàng ngày với thời gian lưu giữ tùy chỉnh và áp dụng bản vá, cập nhật bảo mật mà không gây gián đoạn.
  • Bảo mật và tuân thủ cấp doanh nghiệp: Hỗ trợ mã hóa dữ liệu khi lưu trữ và khi truyền, kiểm soát truy cập dựa trên vai trò, private endpoint, và tuân thủ các chứng nhận ngành (ví dụ: SOC, HIPAA, GDPR).
  • Tích hợp sâu với hệ sinh thái Azure: Kết nối liền mạch với Azure Data Factory, Azure Monitor, Azure Active Directory, Power BI và các dịch vụ khác, tăng tốc phát triển và bật quan sát tổng thể.

Image showing the key benefits of Azure PostgreSQL.

Hình ảnh minh họa các lợi ích chính của Azure PostgreSQL. Tạo bằng Napkin AI.

Mô hình triển khai và khung kiến trúc

Azure Database for PostgreSQL hỗ trợ nhiều mô hình triển khai, cho phép bạn chọn kiến trúc phù hợp nhất với nhu cầu mở rộng, sẵn sàng và hiệu năng của ứng dụng.

Triển khai flexible server

Mô hình triển khai flexible server là tùy biến nhất, cung cấp khả năng kiểm soát chi tiết cấu hình tài nguyên, tính sẵn sàng và tinh chỉnh hiệu năng.

Phù hợp với các ứng dụng quan trọng đòi hỏi thời gian hoạt động cao và hiệu năng ổn định.

Tính sẵn sàng cao (HA)

Để đảm bảo dịch vụ liên tục và giảm thiểu thời gian ngừng, bạn nên cân nhắc các cấu hình sẵn sàng cao sau:

  • Same-Zone HA: Triển khai một bản sao dự phòng trong cùng Vùng Sẵn sàng với nút chính. Cung cấp dự phòng với thời gian chuyển đổi nhanh và độ trễ mạng tối thiểu.
  • Zone-Redundant HA: Phân bố nút chính và dự phòng qua các Vùng Sẵn sàng khác nhau, tăng khả năng chống chịu trước sự cố diện rộng của cả vùng.

Mở rộng và tối ưu hóa

Để đảm bảo hiệu năng và hiệu quả chi phí, hãy áp dụng các chiến lược sau cho quản lý tài nguyên linh hoạt và tinh chỉnh khối lượng công việc:

  • Mở rộng tính toán theo chiều dọc: Điều chỉnh vCore và bộ nhớ linh hoạt theo nhu cầu. Hữu ích khi có đột biến theo mùa hoặc tiết kiệm chi phí khi nhàn rỗi.
  • Tự động dừng/khởi động: Lên lịch tắt máy chủ ngoài giờ cao điểm để giảm chi phí.
  • Tự động mở rộng lưu trữ: Tự động tăng dung lượng đĩa khi dữ liệu tăng, loại bỏ nhu cầu phân bổ lại thủ công.
  • Tinh chỉnh IOPS: Tùy biến IOPS lưu trữ phù hợp nhu cầu, giúp giảm độ trễ cho ứng dụng đọc nhiều hoặc ghi nặng.

Cách triển khai flexible server với HA bật sẵn

Để triển khai “flexible server” với tính sẵn sàng cao (HA), hãy thực hiện các bước sau:

01: Vào Azure Portal, đến Azure Database for PostgreSQL flexible servers, và chọn “create”.

Các hình dưới minh họa bước này.

Image containing a screenshot of the Azure Portal interface showing the steps to create a new PostgreSQL flexible server (01).Hình ảnh chụp màn hình giao diện Azure Portal minh họa các bước tạo PostgreSQL flexible server mới (01).

Image containing a screenshot of the Azure Portal interface showing the steps to create a new PostgreSQL flexible server (02).Hình ảnh chụp màn hình giao diện Azure Portal minh họa các bước tạo PostgreSQL flexible server mới (02).

02: Trong “High availability”, chọn “Same zone” hoặc “Zone redundant”.

Hình dưới minh họa bước này.

Image containing a screenshot of the flexible server creation, showing options for ‘Same zone’ and ‘Zone redundant’ selections.Image chụp màn hình quá trình tạo flexible server, hiển thị các tùy chọn “Same zone” và “Zone redundant”.

03: Cấu hình vCore, dung lượng lưu trữ và thiết lập IOPS.

04: Hoàn tất cấu hình mạng (ví dụ: VNet hoặc truy cập công khai) và triển khai.

Image containing a screenshot of the ‘Networking’ configuration page.Hình ảnh chụp màn hình trang cấu hình “Networking”.

Triển khai single server

Mô hình single server được thiết kế để đơn giản và thiết lập nhanh. 

Cung cấp sao lưu tự động, tinh chỉnh hiệu năng cơ bản và chi phí cấu hình tối thiểu. 

Phù hợp cho phát triển, kiểm thử hoặc khối lượng sản xuất nhỏ.

Các hạng mức khả dụng

Một số hạng mức bao gồm:

  • Basic: Phù hợp cho môi trường dev/test hoặc ứng dụng nhẹ.
  • General purpose: Cân bằng CPU và bộ nhớ cho khối lượng công việc tiêu chuẩn.
  • Memory optimized: Tỷ lệ bộ nhớ/vCore cao cho khối lượng công việc đòi hỏi bộ nhớ đệm.

Cách tạo single server

01: Trong Azure Portal, điều hướng đến Azure Database for PostgreSQL servers và chọn “create”.

Image containing a screenshot of the Azure Portal interface showing the steps to create a new PostgreSQL single serverHình ảnh chụp màn hình giao diện Azure Portal minh họa các bước tạo PostgreSQL single server mới.

02: Chọn hạng mức giá theo yêu cầu khối lượng công việc.

Tham khảo trang giá Azure để có thông tin mới nhất về các hạng mức và giá.

Image containing a screenshot of the Azure pricing page.Hình ảnh chụp màn hình trang giá Azure.

03: Thiết lập thông tin quản trị, cấu hình quy tắc tường lửa và triển khai.

> Nếu bạn mới làm quen với PostgreSQL, Hướng dẫn cho người mới bắt đầu về PostgreSQL là nơi tuyệt vời để bắt đầu làm việc với cơ sở dữ liệu trước khi triển khai lên đám mây.

Phần mở rộng Hyperscale (Citus)

Mô hình triển khai Hyperscale (Citus) được thiết kế cho các trường hợp sử dụng PostgreSQL phân tán. 

Nó biến cơ sở dữ liệu một nút thành cụm có thể mở rộng theo chiều ngang bằng cách chia mảnh dữ liệu qua các nút worker và điều phối truy vấn hiệu quả.

Một số trường hợp sử dụng chính gồm:

  • Phân tích thời gian thực: Chạy truy vấn đồng thời trên hàng tỷ dòng với độ trễ tính bằng mili giây.
  • Ứng dụng SaaS đa thuê bao: Phân phối thuê bao qua các shard để cô lập khối lượng công việc và duy trì hiệu năng.

Cách tạo và phân phối một bảng

01: Tạo một nhóm máy chủ Hyperscale (Citus) trong Azure Portal. Việc này thiết lập cụm PostgreSQL phân tán bằng phần mở rộng Citus.

02: Kết nối tới nút điều phối bằng công cụ như psql hoặc Azure Data Studio. 

Đảm bảo bạn kết nối tới nút điều phối (không phải worker), vì lệnh cho bảng phân tán phải chạy từ nút điều phối.

03: Tạo bảng bằng SQL (nếu chưa tồn tại):

CREATE TABLE your_table_name (
  id SERIAL PRIMARY KEY,
  distribution_column INT,
  ... other columns ...
);

04: Phân phối bảng bằng lệnh:

SELECT create_distributed_table('your_table_name', 'distribution_column');

Thay 'your_table_name' bằng tên bảng thực tế và 'distribution_column' bằng cột có tính phân biệt tốt và thường được dùng trong truy vấn.

Chọn mô hình triển khai phù hợp

Bảng dưới đây phác thảo mô hình triển khai khuyến nghị dựa trên các trường hợp sử dụng phổ biến.

Trường hợp sử dụngMô hình khuyến nghị
Phát triển/kiểm thử chi phí thấpSingle server
Phân tích quy mô lớn, đa thuê baoHyperscale (Citus)
Ứng dụng mục đích chung với tải biến độngFlexible server

Việc chọn mô hình triển khai phù hợp phụ thuộc vào đặc tính tải của ứng dụng, nhu cầu sẵn sàng cao và kỳ vọng hiệu năng. 

> Nếu bạn chưa chắc PostgreSQL có phù hợp với dự án, hãy xem bài  PostgreSQL vs. MySQL: Chọn cơ sở dữ liệu phù hợp cho dự án của bạn và SQLite vs PostgreSQL: So sánh chi tiết.

Kiến trúc Bảo mật và Tuân thủ

Bảo mật Azure Database for PostgreSQL của bạn là tối quan trọng để bảo vệ dữ liệu nhạy cảm, đảm bảo liên tục kinh doanh và duy trì tuân thủ quy định. 

Azure cung cấp các khả năng mạnh mẽ tích hợp sẵn giúp thực thi quản lý danh tính, bảo mật truy cập mạng và phù hợp với tiêu chuẩn ngành.

Cơ chế xác thực

Xác thực là tuyến phòng thủ đầu tiên để bảo vệ quyền truy cập vào cơ sở dữ liệu PostgreSQL của bạn. 

Tích hợp Azure Active Directory (AAD)

Azure AD cho phép bạn quản lý tập trung người dùng và quyền truy cập của họ vào tài nguyên Azure, bao gồm PostgreSQL. 

Điều này an toàn hơn so với quản lý người dùng cục bộ và hỗ trợ xác thực đa yếu tố, truy cập có điều kiện và quản lý vòng đời người dùng.

Hãy xem một kiến trúc ví dụ: 

Bạn có thể tích hợp miền Active Directory tại chỗ với Azure AD để mở rộng hạ tầng danh tính hiện có lên đám mây. 

Hình dưới minh họa kiến trúc danh tính lai điển hình:

Image illustrating a hybrid identity architecture integrating on-premises Active Directory with Azure Active Directory (Azure AD).Hình minh họa kiến trúc danh tính lai tích hợp Active Directory tại chỗ với Azure Active Directory (Azure AD). Nguồn: Microsoft Azure Architecture

Cách bật xác thực AAD:

01: Đăng ký máy chủ PostgreSQL với AAD:

  • Mở Azure Portal.
  • Đi tới Azure Database for PostgreSQL flexible servers.
  • Trong phần Settings, nhấp “Active Directory admin”.
  • Nhấp “Set admin”, tìm người dùng/nhóm, rồi “Save”.

02: Thiết lập AAD admin bằng Azure CLI (tùy chọn):

az postgres flexible-server ad-admin create \
  --resource-group <your-resource-group> \
  --server-name <your-server-name> \
  --display-name <aad-user-name> \
  --object-id <aad-user-object-id>

03: Kết nối bằng psql:

psql "host=<your-postgres-host> dbname=<your-db> user=<aad-user>@<tenant>.onmicrosoft.com sslmode=require"

Xác thực SCRAM-SHA-256

Azure PostgreSQL hỗ trợ SCRAM-SHA-256, cơ chế xác thực dựa trên mật khẩu hiện đại và an toàn, vượt trội so với MD5 lỗi thời.

Bật trong tham số máy chủ PostgreSQL:

  • Đi tới mục “server parameters” dưới flexible server trong Azure portal.
  • Tìm password_encryption và đặt là scram-sha-256.
  • Lưu thay đổi và khởi động lại máy chủ nếu cần.

Bảo mật cấp hàng (RLS)

Dùng RLS để định nghĩa chính sách kiểm soát truy cập chi tiết, cho phép chỉ một số hàng nhất định của bảng hiển thị hoặc có thể sửa với những người dùng cụ thể.

Cách bật RLS:

01: Kết nối tới cơ sở dữ liệu và chạy:

ALTER TABLE employees ENABLE ROW LEVEL SECURITY;

02: Tạo chính sách:

CREATE POLICY employee_policy
ON employees
USING (user_email = current_user);

Bảo vệ mạng

Bảo vệ Azure Database for PostgreSQL ở tầng mạng là thiết yếu để ngăn truy cập trái phép và giảm bề mặt tấn công. 

Azure cung cấp nhiều tính năng mạng tích hợp sẵn để cô lập lưu lượng và thực thi kiểm soát truy cập.

01: Sử dụng private endpoint

Private endpoint cho phép máy chủ PostgreSQL của bạn chỉ truy cập được trong Azure Virtual Network, loại bỏ việc phơi bày công khai.

Cấu hình private endpoint như sau:

01: Vào Azure portal và chọn PostgreSQL flexible server của bạn

02: Trong “Settings”, nhấp “Networking”.

03: Chọn “Private access (VNet integration)”.

04: Nhấp “Add Private Endpoint”.

05: Cung cấp tên và chọn nhóm tài nguyên cùng VNet/subnet.

06: Chọn tích hợp Private DNS (khuyến nghị).

07: Xem lại và tạo private endpoint.

Các hình dưới đây hiển thị một số bước chính trong Azure portal để thiết lập private endpoint.

Image showing a screenshot of the Azure portal steps for configuring a private endpoint (01).Hình ảnh chụp màn hình các bước cấu hình private endpoint trong Azure portal (01).

Image showing a screenshot of the Azure portal steps for configuring a private endpoint (02).Hình ảnh chụp màn hình các bước cấu hình private endpoint trong Azure portal (02).

02: Network Security Groups (NSG)

NSG kiểm soát lưu lượng vào/ra đối với giao diện mạng và subnet. Dùng để chỉ cho phép IP tin cậy kết nối.

Cấu hình NSG cho private endpoint của bạn:

01: Điều hướng đến subnet chứa private endpoint.

02: Gắn NSG và định nghĩa quy tắc như:

  • Chỉ cho phép dải IP từ tổ chức của bạn.
  • Từ chối mọi kết nối vào khác.

03: Kết nối ngang vùng (Cross-Region Peering)

Đối với ứng dụng toàn cầu, sử dụng VNet Peering giữa các vùng Azure để định tuyến an toàn lưu lượng giữa các mạng ảo.

Thiết lập peering xuyên vùng trong Azure portal:

01: Trong Azure portal, vào “Virtual networks” và chọn “Peerings”.

02: Nhấp “Add” và chọn mạng ảo (VNet) từ xa. 

03: Bật “Use remote gateways for cross-region connectivity”.

Chứng nhận tuân thủ

Azure Database for PostgreSQL tuân thủ nhiều tiêu chuẩn ngành và chính phủ, đảm bảo bảo vệ dữ liệu và phù hợp pháp lý:

Một số chứng nhận bao gồm:

  • GDPR
  • HIPAA
  • SOC 1/2/3
  • ISO/IEC 27001, 27018
  • FedRAMP, PCI-DSS

Bạn có thể xem trạng thái tuân thủ tại Microsoft Trust Center và tải các báo cáo tuân thủ phù hợp với khu vực hoặc ngành của bạn.

Tối ưu hóa Hiệu năng và Giám sát

Tối đa hóa hiệu năng và độ tin cậy là rất quan trọng cho khối lượng công việc sản xuất. 

Azure cung cấp công cụ tinh chỉnh thông minh, giám sát theo thời gian thực và cảnh báo để đảm bảo máy chủ PostgreSQL của bạn vận hành tối ưu.

Tinh chỉnh thông minh

Azure hỗ trợ cải thiện hiệu năng chủ động thông qua phân tích và công cụ tối ưu hóa tích hợp sẵn.

Các trường hợp gồm tự động mở rộng, phân phối khối lượng công việc và tăng hiệu năng lưu trữ.

Dùng Azure Advisor cho khuyến nghị hiệu năng

Azure Advisor phân tích dữ liệu telemetry và đề xuất thực tiễn tốt nhất.

Cách áp dụng khuyến nghị hiệu năng:

01: Vào Azure Portal và chọn “Azure Advisor”.

02: Nhấp “Recommendations”, rồi “Performance”.

03: Tìm máy chủ PostgreSQL flexible của bạn.

04: Áp dụng gợi ý như:

  • Tăng/giảm vCore
  • Tăng IOPS
  • Dùng bản sao chỉ đọc (read replica)

Tạo read replica

Giảm tải các tác vụ đọc nặng bằng cách tạo bản sao. Thực hiện như sau: 

01: Trong Azure portal, chọn máy chủ PostgreSQL của bạn.

02: Trong “Settings”, chọn “Replicas”.

03: Nhấp “Add Replica”, chọn vùng và tạo.

04: Sử dụng endpoint chỉ đọc trong ứng dụng của bạn.

Khung giám sát

Azure Monitor cung cấp khả năng quan sát sâu về tình trạng và mức sử dụng tài nguyên PostgreSQL của bạn.

Chỉ số chính cần theo dõi

  • Mức sử dụng CPU
  • Mức sử dụng bộ nhớ
  • Disk I/O và IOPS
  • Thời gian thực thi truy vấn
  • Kết nối đang hoạt động
  • Lỗi kết nối

Cách xem chỉ số:

Bước 01: Vào Azure portal và mở Monitor.

Bước 02: Nhấp “Metrics” và chọn máy chủ PostgreSQL flexible của bạn.

Bước 03: Chọn chỉ số (ví dụ: % CPU).

Bước 04: Áp dụng bộ lọc và đặt cách tổng hợp (ví dụ: trung bình, lớn nhất).

Bước 05: Tạo biểu đồ trực quan hoặc ghim lên dashboard.

Tạo quy tắc cảnh báo

Cảnh báo giúp bạn xử lý bất thường về hiệu năng trước khi ảnh hưởng đến người dùng.

Cách tạo cảnh báo:

Bước 01: Trong Azure portal, vào Monitor và chọn “Alerts”.

Bước 02: Nhấp “New Alert Rule”.

Bước 03: Chọn tài nguyên PostgreSQL của bạn.

Bước 04: Chọn điều kiện, ví dụ: CPU usage > 80%.

Bước 05: Đặt khoảng thời gian đánh giá và tần suất.

Bước 06: Xác định nhóm hành động (email, webhook, Logic App).

Bước 07: Đặt tên và tạo cảnh báo.

Chỉ số hiệu năng chính (KPI)

Theo dõi KPI đảm bảo hệ thống của bạn khỏe mạnh và đáp ứng SLA:

KPI

Mô tả

Mức sử dụng CPU

Nên duy trì dưới 75% để hiệu năng tối ưu

Mức sử dụng bộ nhớ

Sử dụng cao có thể gây truy vấn chậm hoặc OOM

Thời lượng truy vấn

Theo dõi truy vấn chậm qua nhật ký hiệu năng truy vấn

Kết nối đang hoạt động

Biểu thị tải người dùng đồng thời

Mức sử dụng lưu trữ

Giúp dự đoán thời điểm auto-scaling kích hoạt

Bạn có thể xem và phân tích các KPI này trong Azure Monitor Metrics.

Mẫu Di chuyển và Tích hợp

Di chuyển cơ sở dữ liệu sang Azure Database for PostgreSQL có thể diễn ra trơn tru với công cụ và chiến lược phù hợp. 

Azure hỗ trợ cả di chuyển trực tuyến và ngoại tuyến, nhiều hệ thống nguồn, và tích hợp với AI và công cụ phát triển.

> Nếu bạn muốn hướng dẫn thực hành về làm việc với PostgreSQL trong môi trường phát triển thực tế, hãy đọc Sử dụng PostgreSQL trong Python.

Database Migration Service (DMS)

Azure Database Migration Service (DMS) hỗ trợ di chuyển an toàn, có hướng dẫn từ nhiều nền tảng cơ sở dữ liệu (tại chỗ hoặc đám mây) sang Azure PostgreSQL.

Hình dưới minh họa các kịch bản và nền tảng di chuyển được hỗ trợ:

Diagram showing Azure Database Migration Service (DMS).Sơ đồ minh họa Azure Database Migration Service (DMS). Nguồn: Microsoft Products

Thực hiện di chuyển bằng DMS

01: Tạo một phiên bản DMS:

  • Vào Azure portal và tìm “Database Migration Services”.
  • Nhấp “Create”, rồi chọn subscription, resource group và vùng.
  • Chọn “Integration Runtime (IR)” và tạo hoặc dùng IR hiện có.

02: Tạo dự án di chuyển:

  • Trong phiên bản DMS của bạn, nhấp “Add New Migration Project”.
  • Đặt tên và thiết lập:
    • Loại máy chủ nguồn: PostgreSQL
    • Loại máy chủ đích: Azure Database for PostgreSQL
    • Loại hoạt động di chuyển: Online hoặc Offline

03: Xác định máy chủ nguồn và đích:

  • Nhập thông tin kết nối cho máy chủ PostgreSQL nguồn (on-prem, AWS RDS, v.v.).
  • Nhập thông tin xác thực cho Azure PostgreSQL flexible server đích.

04: Chạy và giám sát di chuyển:

  • Chọn cơ sở dữ liệu/lược đồ để di chuyển.
  • Cấu hình ánh xạ bảng và tùy chọn chuyển đổi dữ liệu.
  • Bắt đầu di chuyển và theo dõi tiến độ trong Azure portal.

Di chuyển từ tại chỗ hoặc đám mây khác

Với di chuyển nhỏ hoặc đơn lẻ, bạn có thể dùng công cụ gốc của PostgreSQL như pg_dump và pg_restore.

Di chuyển ngoại tuyến qua CLI

Để di chuyển ngoại tuyến từ PostgreSQL tại chỗ hoặc đám mây khác sang Azure, thực hiện các bước sau:

01: Xuất cơ sở dữ liệu từ nguồn:

pg_dump -Fc --no-acl --no-owner -h <source-host> -U <source-user> dbname > db.dump

02: Nhập vào Azure PostgreSQL:

pg_restore -h <azure-host> -U <azure-user> -d <target-db> db.dump

Mẹo: dùng cờ --jobs với pg_restore để tăng tốc khi phục hồi cơ sở dữ liệu lớn.

Di chuyển từ Oracle sang PostgreSQL

Để di chuyển từ Oracle sang PostgreSQL, bạn có thể dùng Ora2Pg để chuyển đổi lược đồ Oracle sang cú pháp tương thích PostgreSQL. Thực hiện các bước sau:

01: Cài đặt Ora2Pg.

02: Cấu hình tệp ora2pg.conf với thông tin Oracle của bạn.

03: Chạy các lệnh sau:

ora2pg -c ora2pg.conf -o schema.sql
psql -h <azure-host> -U <user> -d <dbname> -f schema.sql

> Để nâng cao khả năng quản lý cơ sở dữ liệu sau di chuyển, hãy xem Quản lý cơ sở dữ liệu trong PostgreSQL.

Khả năng Tích hợp AI

Azure PostgreSQL hỗ trợ khối lượng công việc AI qua phần mở rộng pgvector và có thể tích hợp với Azure Cognitive Services.

Bật và sử dụng pgvector:

CREATE EXTENSION IF NOT EXISTS vector;

02: Tạo và sử dụng cột vector:

CREATE TABLE embeddings (
  id SERIAL PRIMARY KEY,
  description TEXT,
  embedding vector(1536)
);

03: Chèn và tìm kiếm vector:

INSERT INTO embeddings (description, embedding) 
VALUES ('example', '[0.1, 0.2, 0.3, 0.4]');

SELECT * FROM embeddings 
ORDER BY embedding <-> '[0.1, 0.2, 0.3, 0.4]' 
LIMIT 5;

04: Tích hợp với dịch vụ AI:

Kỹ thuật Tối ưu Chi phí

Azure cung cấp nhiều chiến lược giảm chi phí hạ tầng và vận hành PostgreSQL.

Định giá flexible server

Để tối ưu chi phí với các tùy chọn định giá flexible server, bạn nên làm theo các hướng dẫn sau:

01: Dùng SKU Burstable (ví dụ: B1ms) cho môi trường phát triển hoặc tải CPU thấp.

  • Trong Azure portal, vào PostgreSQL và chọn “Pricing tier”.
  • Chọn “Burstable”.

02: Dung lượng đặt trước (Reserved capacity):

  • Cam kết 1 hoặc 3 năm để tiết kiệm đến 60%.
  • Mua qua Azure portal: vào “Reservations”, nhấp “Add” và chọn “PostgreSQL flexible server”.

Hiệu quả kinh tế của Hyperscale (Citus)

Hyperscale sử dụng chia mảnh theo chiều ngang để cải thiện thông lượng.

Lợi ích bao gồm:

  • Cân bằng tải qua các nút
  • Cô lập tài nguyên tốt hơn
  • Hiệu quả lưu trữ nhờ nén

Bật Hyperscale bằng cách vào Azure portal, chọn “Create Resource”, rồi chọn “Azure Database for PostgreSQL (Hyperscale, Citus)”.

Quản lý chi phí lưu trữ và sao lưu

Để quản lý hiệu quả chi phí lưu trữ và sao lưu, hãy cân nhắc các bước sau:

Xem lại thời gian lưu giữ ảnh chụp (snapshot retention):

  • Azure mặc định giữ bản sao lưu hằng ngày.
  • Vào “Server settings”, rồi “Backups” và điều chỉnh “Retention Period” (mặc định 7–35 ngày).

Ước tính chi phí bằng Azure Pricing Calculator:

Quản lý Phiên bản và Nâng cấp PostgreSQL

Giữ môi trường an toàn và được hỗ trợ bằng cách cập nhật thường xuyên.

Phiên bản được hỗ trợ và vòng đời

Hiểu các phiên bản PostgreSQL được hỗ trợ và chính sách vòng đời quan trọng để duy trì môi trường an toàn và được hỗ trợ:

  • Azure hỗ trợ PostgreSQL phiên bản 11–16.
  • Hỗ trợ phiên bản được căn chỉnh với chính sách EOL của cộng đồng PostgreSQL.
  • Lên kế hoạch nâng cấp trước EOL để duy trì hỗ trợ và bảo mật.

Nâng cấp và vá lỗi

Nâng cấp và vá lỗi PostgreSQL flexible server bao gồm quy trình tự động và thủ công, tùy loại bản cập nhật:

  • Cập nhật phiên bản nhỏ được áp dụng tự động.
  • Nâng cấp phiên bản lớn yêu cầu bước thủ công:

Các bước nâng cấp:

01: Sao lưu cơ sở dữ liệu hiện tại:

pg_dumpall -h <current-host> -U <user> > backup.sql

02: Tạo máy chủ mới với phiên bản PostgreSQL mong muốn từ Azure Portal.

03: Khôi phục bản sao lưu vào máy chủ mới:

psql -h <new-host> -U <user> -f backup.sql

04: Cập nhật chuỗi kết nối trong ứng dụng hoặc biến môi trường.

Hệ sinh thái Phát triển

Azure PostgreSQL hỗ trợ các khối lượng công việc DevOps hiện đại và không gian địa lý.

Hạ tầng như Mã (IaC)

Sử dụng Terraform để cung cấp tài nguyên tự động, lặp lại. Dưới đây là mẫu script Terraform tạo Azure PostgreSQL flexible server:

resource "azurerm_postgresql_flexible_server" "example" {
  name                   = "mypgflexserver"
  resource_group_name    = "myrg"
  location               = "East US"
  administrator_login    = "pgadmin"
  administrator_password = "password123!"
  sku_name               = "Standard_B1ms"
  version                = "14"
}

Để tạo tài nguyên, chạy terraform init → terraform plan → terraform apply.

> Để tìm hiểu thêm, hãy xem hướng dẫn toàn diện về sử dụng Terraform với Azure. 

Khả năng địa không gian với PostGIS

PostGIS mở rộng PostgreSQL để truy vấn không gian và địa lý.

Bật PostGIS:

CREATE EXTENSION postgis;

Dùng cho ứng dụng dựa trên vị trí, bản đồ, tối ưu tuyến và geofencing.

Phần mở rộng & tích hợp phổ biến

Bật các phần mở rộng PostgreSQL mạnh mẽ để tăng khả năng quan sát và lập lịch:

Phần mở rộng

Mục đích

pg_stat_statements

Theo dõi và phân tích hiệu năng truy vấn

uuid-ossp

Tạo UUID

postgis

Truy vấn không gian

pg_cron

Lập lịch tác vụ nền bằng SQL

Để bật các phần mở rộng mong muốn, vào Azure Portal và truy cập PostgreSQL flexible server của bạn. 

Từ đó, mở mục Server Parameters, tìm thiết lập azure.extensions, thêm các phần mở rộng cần thiết dạng danh sách phân tách bằng dấu phẩy và lưu thay đổi.

Kết luận

Azure Database for PostgreSQL giúp bạn triển khai, mở rộng và quản trị PostgreSQL với độ tin cậy, bảo mật và hiệu năng cấp doanh nghiệp trên đám mây. 

Khi nhu cầu đám mây phát triển, tận dụng hệ sinh thái vững mạnh của Azure và độ tin cậy đã được kiểm chứng của PostgreSQL sẽ giúp ứng dụng của bạn linh hoạt, tuân thủ và tiết kiệm chi phí.

Nếu bạn muốn nâng cao kiến thức, tôi rất khuyến nghị bạn tham khảo lộ trình kỹ năng Azure Fundamentals. Chúc bạn học tốt!

Don Kaluarachchi

Tác giả

Don Kaluarachchi

Tôi là Don—một Tư vấn, Nhà phát triển, Kỹ sư, Kiến trúc sư số và Tác giả (nói chung là đội rất nhiều mũ 👨‍💻🎩). Tôi yêu việc giữ cho các nền tảng số vận hành mượt mà và luôn tìm cách cải thiện chúng. Khi không viết code, tôi viết về trí tuệ nhân tạo, khoa học dữ liệu và mọi thứ liên quan đến công nghệ.
 
Trong nhiều năm, tôi đã làm mọi thứ từ xây dựng và tối ưu hóa phần mềm đến triển khai mô hình AI và thiết kế giải pháp đám mây. Tôi có bằng Thạc sĩ Khoa học về Trí tuệ nhân tạo và Cử nhân Khoa học Máy tính, đều từ Brunel University London.

Chủ đề

Liên quan