Cấu hình topology cluster và khởi tạo Greenplum Database
Để Greenplum nhận diện được các node trong cluster, bạn cần tạo file định nghĩa topology. File này liệt kê rõ ràng địa chỉ IP, vai trò (Master hoặc Segment) và các thông số mạng cho từng node.
Bạn sẽ tạo file topology tại đường dẫn /home/gpadmin/gpdb-topology/topology. Nội dung file này xác định Master node là máy chủ điều phối và các Segment nodes là nơi lưu trữ dữ liệu thực tế.
Trong ví dụ này, giả định Master node có IP 192.168.1.10 và 2 Segment nodes có IP 192.168.1.11 và 192.168.1.12. Tất cả chạy trên giao diện mạng eth0.
cat > /home/gpadmin/gpdb-topology/topology
Kết quả mong đợi: File topology được tạo thành công tại thư mục /home/gpadmin/gpdb-topology/ với nội dung chính xác định nghĩa 1 Master và 2 Segment nodes.
Để kiểm tra, bạn chạy lệnh hiển thị nội dung file vừa tạo:
cat /home/gpadmin/gpdb-topology/topology
Thiết lập tham số khởi tạo gp_init_config
File gp_init_config chứa các biến môi trường và tham số quan trọng để lệnh gp_init thực thi. Nó chỉ định đường dẫn đến file topology, đường dẫn thư mục log, và các thông số cấu hình cơ bản như số lượng segment và mode khởi tạo.
Tạo file này tại /home/gpadmin/gpdb-topology/gp_init_config. File này đóng vai trò là "bản đồ" để Greenplum biết cách triển khai cluster dựa trên topology đã định nghĩa.
cat > /home/gpadmin/gpdb-topology/gp_init_config
Kết quả mong đợi: File gp_init_config được tạo với các biến môi trường cần thiết. Các biến này sẽ được source vào shell trước khi chạy gp_init.
Verify bằng lệnh hiển thị nội dung:
cat /home/gpadmin/gpdb-topology/gp_init_config
Thực thi lệnh gp_init để khởi tạo Cluster
Lệnh gp_init là bước quan trọng nhất. Nó đọc file config, tạo thư mục dữ liệu, sao chép binary, khởi động Postgres trên Master và các Segment, đồng thời thiết lập replication giữa các node.
Trước khi chạy, bạn cần đảm bảo đang ở user gpadmin và đã source file config để biến môi trường được áp dụng. Sau đó chạy lệnh gp_init với tham số -c để chỉ file config.
Lưu ý: Lệnh này sẽ yêu cầu xác nhận (Yes/No) trước khi thực thi. Bạn cần trả lời Y.
cd /home/gpadmin/gpdb-topology
source gp_init_config
/usr/local/greenplum-db/bin/gp_init -c gp_init_config
Khi lệnh chạy, bạn sẽ thấy quá trình kiểm tra (pre-checks) như: kiểm tra quyền root, kiểm tra file system, kiểm tra network connectivity giữa các node, và tạo thư mục dữ liệu.
Điểm quan trọng: Khi xuất hiện prompt "Are you sure you want to initialize the Greenplum Database cluster? (Y/N)", bạn phải gõ Y và nhấn Enter.
Quá trình này có thể mất từ 5 đến 15 phút tùy thuộc vào tốc độ I/O và CPU của server. Nó bao gồm việc khởi tạo catalog hệ thống, tạo các role mặc định, và thiết lập replication giữa Primary và Mirror segments.
Kết quả mong đợi: Khi thành công, cuối cùng bạn sẽ thấy dòng thông báo màu xanh: Greenplum Database cluster has been successfully initialized. Nếu có lỗi, quá trình sẽ dừng lại và hiển thị thông báo lỗi cụ thể (thường liên quan đến SSH, quyền truy cập, hoặc xung đột port).
Để verify ngay lập tức, bạn kiểm tra trạng thái của cluster bằng lệnh:
ps -ef | grep postgres | grep -v grep
Bạn nên thấy các tiến trình postgres đang chạy trên Master (port 5432) và trên các Segment (port 5433, 5434).
Kiểm tra trạng thái các Segment sau khi khởi tạo
Sau khi khởi tạo, bước bắt buộc là xác minh toàn bộ cluster đang hoạt động bình thường. Công cụ gpstate cung cấp cái nhìn tổng quan về trạng thái của Master và tất cả Segment nodes.
Chạy lệnh gpstate -s (short status) để kiểm tra nhanh. Lệnh này sẽ hiển thị bảng trạng thái của từng node, bao gồm: Node ID, Hostname, Port, Type (Master/Segment), và Status (Up/Down).
cd /home/gpadmin
/usr/local/greenplum-db/bin/gpstate -s
Kết quả mong đợi: Bạn sẽ thấy một bảng đầu ra với cột STATUS hiển thị toàn bộ là UP. Nếu có node nào DOWN, bạn cần kiểm tra log tại /home/gpadmin/gpdb-logs/ hoặc file log của từng segment.
Để kiểm tra chi tiết hơn, bao gồm cả thông tin về Mirror segments (nếu có cấu hình HA), hãy sử dụng lệnh:
/usr/local/greenplum-db/bin/gpstate -u
Trong đầu ra, tìm phần "Segment Hosts". Bạn sẽ thấy các cặp Primary/Mirror. Cột MIRROR STATUS phải hiển thị là UP để đảm bảo dữ liệu được replication đúng cách.
Cuối cùng, để xác nhận database có thể truy cập được, hãy thử kết nối bằng psql vào database mặc định postgres:
/usr/local/greenplum-db/bin/psql -h localhost -p 5432 -d postgres -c "SELECT version();"
Kết quả mong đợi: Lệnh trả về chuỗi version của Greenplum Database (ví dụ: Greenplum Database 7.x...) và không báo lỗi kết nối. Điều này khẳng định Master node đã sẵn sàng nhận yêu cầu từ client.
Điều hướng series:
Mục lục: Series: Triển khai Database Hybrid OLTP/OLAP với Greenplum trên Ubuntu 24.04
« Phần 3: Tải về, biên dịch và cài đặt Greenplum từ nguồn code
Phần 5: Tối ưu hóa cấu hình Greenplum cho mô hình Hybrid OLTP/OLAP »