Percona XtraDB Cluster là giải pháp nhóm cơ sở dữ liệu mã nguồn mở hoàn toàn dành cho MySQL. Giải pháp này cho phép bạn tạo triển khai máy chủ MySQL mạnh mẽ, có tính khả dụng cao, cung cấp hiệu suất cao. Phiên bản mới nhất của Percona XtraDB Cluster là 8.0, hoàn toàn tương thích với MySQL Server Comunity Edition 8.0.
Percona XtraDB Cluster cung cấp các tính năng như sao chép đồng bộ, sao chép đa nguồn, cung cấp nút tự động, cấu hình mã hóa SSL tự động và hiệu suất được tối ưu hóa.
Percona XtraDB Cluster đảm bảo tính khả dụng cao của máy chủ cơ sở dữ liệu của bạn, cung cấp khả năng mở rộng tuyến tính và ngăn ngừa thời gian chết và mất dữ liệu.
Trong hướng dẫn này, bạn sẽ cài đặt và thiết lập cụm MySQL thông qua Percona XtraDB Cluster (PXC) trên máy chủ Debian 11. Bạn sẽ cài đặt Percona XtraDB Cluster - Giải pháp mã nguồn mở cho cụm MySQL - vào nhiều máy chủ Debian, sau đó thiết lập cụm MySQL để cho phép sao chép giữa nhiều máy chủ MySQL.
Ví dụ này sử dụng ba máy chủ Debian 11 với các chi tiết sau:
Khi tất cả các máy chủ đã sẵn sàng, bạn có thể bắt đầu cài đặt Percona XtraDB Cluster.
Dưới đây là thông tin chi tiết về các cổng Percona XtraDB Cluster mà bạn phải mở trên tường lửa của mình.
Để bắt đầu, hãy mở tệp cấu hình '/etc/hosts' bằng lệnh nano sau biên tập viên.
Thêm các dòng sau vào tệp và đảm bảo thay đổi thông tin chi tiết về địa chỉ IP và tên máy chủ theo môi trường của bạn.
Lưu và thoát tệp khi hoàn tất.
Bây giờ hãy nhập lệnh 'apt install' sau để cài đặt gói tường lửa ufw. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22662%22%20height=%22333%22%3E%3C/svg%3E
Sau khi ufw được cài đặt, hãy chạy lệnh ufw sau để thêm dịch vụ OpenSSH. Điều này sẽ đảm bảo rằng bạn không bị khóa khỏi máy chủ của mình. Và nếu bạn có cổng SSH tùy chỉnh, bạn chỉ cần thay đổi tham số 'OpenSSH' bằng cổng SSH của mình.
Tiếp theo, nhập lệnh ufw sau để mở một số cổng mà Percona XtraDB Cluster sẽ sử dụng. Hãy chắc chắn thay đổi subnet của địa chỉ IP nội bộ với môi trường hiện tại của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22741%22%20height=%22371%22%3E%3C/svg%3E
Sau đó, chạy và bật tường lửa ufw bằng cách nhập lệnh 'ufw enable'. Khi được nhắc, nhập y để xác nhận và nhấn ENTER để tiếp tục. Đầu ra 'Tường lửa đang hoạt động và được bật khi khởi động hệ thống' xác nhận rằng tường lửa ufw đang chạy và sẽ tự động khởi động khi hệ thống khởi động.
Cuối cùng, hãy xác minh trạng thái tường lửa ufw bằng lệnh sau.
Bạn sẽ nhận được đầu ra như thế này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22352%22%3E%3C/svg%3E
Ngoài ra, trong quá trình cài đặt, bạn sẽ được nhắc thiết lập mật khẩu gốc MySQL và thiết lập plugin xác thực mặc định cho Percona XtraDB Cluster. Cuối cùng, bạn sẽ xác minh cài đặt Percona XtraDB Cluster bằng cách đăng nhập vào shell MySQL thông qua người dùng gốc MySQL và mật khẩu mà bạn đã cấu hình.
Để bắt đầu, hãy nhập lệnh apt sau để cài đặt một số phụ thuộc cơ bản. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22435%22%3E%3C/svg%3E
Tiếp theo, tải xuống gói kho lưu trữ Percona XtraDB thông qua lệnh wget sau. Sau khi tải xuống, hãy cài đặt thông qua lệnh 'dpkg -i' bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22395%22%3E%3C/svg%3E
Bây giờ hãy cập nhật và làm mới chỉ mục gói Debian của bạn và chạy lệnh 'percona-release' để thiết lập kho lưu trữ Percona XtraDB Cluster. Trong ví dụ này, bạn sẽ kích hoạt gói Percona XtraDB Cluster v8.0, tương đương với máy chủ MySQL v8.0.
Cập nhật kho lưu trữ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Kích hoạt kho lưu trữ Percona XtraDB Cluster v8.0.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22388%22%3E%3C/svg%3E
Sau khi kho lưu trữ được bật, hãy nhập lệnh 'apt install' để cài đặt gói 'percona-xtradb-cluster' vào hệ thống của bạn. Nhập y để xác nhận cài đặt và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22344%22%3E%3C/svg%3E
Trong quá trình cài đặt Percona XtraDB Cluster, bạn sẽ được yêu cầu thiết lập mật khẩu gốc MySQL.
Nhập mật khẩu mạnh mới và chọn OK.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22171%22%3E%3C/svg%3E
Lặp lại mật khẩu của bạn và chọn OK một lần nữa.
Đối với plugin xác thực MySQL mặc định, hãy chọn tùy chọn 'Sử dụng mã hóa mật khẩu mạnh (ĐƯỢC KHUYẾN NGHỊ)' và chọn OK.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ Percona XtraDB Cluster sẽ được cài đặt và nó sẽ tự động khởi động và được kích hoạt.
Khi Percona XtraDB Cluster được cài đặt, hãy nhập lệnh sau để xác minh trạng thái của dịch vụ MySQL.
Đầu ra 'enabled' xác nhận rằng MySQL máy chủ được bật và sẽ tự động khởi động khi hệ thống khởi động. Và đầu ra 'active (running)' xác nhận rằng máy chủ MySQL đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Để xác minh mật khẩu gốc MySQL của bạn, hãy đăng nhập vào shell MySQL thông qua lệnh 'mysql' bên dưới. Khi được yêu cầu nhập mật khẩu, hãy nhập mật khẩu gốc MySQL của bạn.
Khi thành công, bạn sẽ nhận được MySQL shell.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E
Bạn cũng có thể xác minh trạng thái chi tiết của máy chủ MySQL bằng cách nhập lệnh sau truy vấn.
Bạn sẽ nhận được kết quả tương tự như sau - Bạn đã đăng nhập vào MySQL 8.0 Percona XtraDB Cluster.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22331%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã cấu hình tệp /etc/hosts của hệ thống, cài đặt và cấu hình tường lửa ufw và cũng cài đặt Percona XtraDB Cluster MySQL 8.0 trên tất cả các máy chủ của bạn. Bạn đã sẵn sàng để bắt đầu cấu hình Percona XtraDB Cluster.
Nhập tiện ích lệnh systemctl sau để dừng máy chủ MySQL trên máy chủ của bạn. Sau đó, xác minh trạng thái máy chủ MySQL để đảm bảo rằng dịch vụ đã dừng.
Đầu ra 'inactive (dead)' xác nhận rằng máy chủ MySQL đã dừng.
Bây giờ bạn có thể bắt đầu khởi tạo Percona XtraDB Cluster cho nút đầu tiên 'pxc01'.
Trong quá trình cài đặt Percona XtraDB Cluster, SSL/TLS được tự động tạo tại thư mục dữ liệu '/var/lib/mysql'. Nhập lệnh sau để kiểm tra danh sách chứng chỉ SL/TLS trên thư mục '/var/lib/mysql'.
Bạn sẽ thấy ba loại chứng chỉ SSL/TLS, Client, Server và CA.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2291%22%3E%3C/svg%3E
Để tạo và thiết lập Percona XtraDB Cluster, tất cả máy chủ phải có cùng chứng chỉ CA và Máy chủ. Vì vậy, bạn phải sao chép các chứng chỉ CA và chứng chỉ Máy chủ mặc định từ 'pxc01' sang 'pxc02' và 'pxc03'.
Trên máy chủ 'pxc01', hãy di chuyển thư mục làm việc của bạn đến thư mục '/var/lib/mysql'.
Nhập lệnh scp sau để sao chép các chứng chỉ CA và Máy chủ vào 'pxc02' và 'pxc03' máy chủ.
Bạn sẽ nhận được kết quả tương tự như sau - Sao chép chứng chỉ CA và Máy chủ từ 'pxc01' sang 'pxc02' và máy chủ 'pxc03'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2299%22%3E%3C/svg%3E
Sau khi sao chép chứng chỉ SSL/TLS, bạn có thể khởi tạo Percona XtraDB Cluster.
Mở tệp cấu hình MySQL '/etc/mysql/my.cnf' bằng lệnh trình chỉnh sửa nano sau.
Thêm các dòng sau vào tệp. Đảm bảo thay đổi giá trị của 'wsrep_cluster_address' bằng địa chỉ IP của tất cả các máy chủ của bạn. Ngoài ra, trên 'wsrep_node_address', bạn phải nhập địa chỉ IP 'pxc01'.
Lưu và đóng tệp '/etc/mysql/my.cnf' khi hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22601%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh systemctl sau để khởi động và khởi tạo Percona XtraDB Cluster.
'mysql@bootstrap' là dịch vụ systemd được sử dụng để chạy Percona XtraDB Cluster và dịch vụ này khác với dịch vụ 'mysql'. Khi xây dựng máy chủ MySQL bằng percona XtraDB Cluster, nút đầu tiên phải được chạy bằng dịch vụ 'mysql@bootstrap'.
Khi hoàn tất, hãy nhập lệnh mysql sau để đăng nhập vào shell MySQL. Nhập mật khẩu gốc của máy chủ MySQL của bạn.
Nhập truy vấn MySQL sau để đảm bảo cụm được khởi tạo.
Bạn sẽ nhận được kết quả như thế này - Trên phần 'wsrep_cluster_size', bạn sẽ thấy giá trị '1', nghĩa là Percona XtraDB Cluster được khởi tạo với 1 máy chủ. Bạn cũng sẽ nhận được địa chỉ IP của máy chủ trên phần 'wsrep_incoming_address'. Cuối cùng, nút ở trạng thái Đồng bộ hóa, nghĩa là nó được kết nối hoàn toàn và sẵn sàng để sao chép tập lệnh ghi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22720%22%3E%3C/svg%3E
Khi nút đầu tiên được khởi tạo, bạn đã sẵn sàng để thêm nút thứ hai và thứ ba 'pxc02' và 'pxc03' vào Percona XtraDB Cluster.
Thêm các dòng sau vào tệp và đảm bảo thay đổi giá trị của 'wsrep_cluster_address' bằng địa chỉ IP của tất cả máy chủ của bạn. Ngoài ra, trên 'wsrep_node_address', bạn phải nhập địa chỉ IP 'pxc02'.
Lưu và đóng tệp '/etc/mysql/my.cnf' khi hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22587%22%3E%3C/svg%3E
Tiếp theo, khởi động máy chủ MySQL bằng cách nhập tiện ích lệnh systemctl sau. Sau đó, hãy xác minh trạng thái máy chủ MySQL để đảm bảo rằng nó đang chạy.
Điều này sẽ khởi động dịch vụ MySQL và tham gia Cụm Percona XtraDB đã khởi tạo trên máy chủ 'pxc01'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22322%22%3E%3C/svg%3E
Để xác minh rằng Quá trình thành công, bạn nên đăng nhập vào MySQL shell. Nhập lệnh sau để đăng nhập vào MySQL shell với tư cách là người dùng root. Khi được nhắc, hãy nhập mật khẩu gốc MySQL của bạn.
Sau khi đăng nhập, hãy nhập truy vấn MySQL sau để xác minh trạng thái Cụm Percona XtraDB.
Bạn sẽ nhận được đầu ra như thế này - Trên phần 'wsrep_cluster_size', bạn sẽ thấy giá trị '2', nghĩa là có hai máy chủ khả dụng trên Percona XtraDB Cluster. Bạn cũng sẽ nhận được địa chỉ IP máy chủ trên phần 'wsrep_incoming_address', đó là địa chỉ IP máy chủ pxc01 và pxc02. Cuối cùng, nút ở trạng thái Đồng bộ hóa, nghĩa là nó được kết nối hoàn toàn và sẵn sàng để sao chép tập lệnh ghi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22657%22%3E%3C/svg%3E
Với điều này, Percona XtraDB Cluster hiện đang chạy với hai nút/máy chủ pxc01 và pxc02. Tiếp theo, di chuyển đến máy chủ pxc03 để thêm nó vào Percona XtraDB Cluster.
Thêm các dòng sau vào tệp và đảm bảo thay đổi giá trị của 'wsrep_cluster_address' bằng địa chỉ IP của tất cả các máy chủ của bạn. Ngoài ra, trên 'wsrep_node_address', bạn phải nhập địa chỉ IP 'pxc03'.
Lưu và đóng tệp '/etc/mysql/my.cnf' khi hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22591%22%3E%3C/svg%3E
Tiếp theo, khởi động máy chủ MySQL bằng cách nhập tiện ích lệnh systemctl sau. Sau đó, hãy xác minh trạng thái máy chủ MySQL để đảm bảo rằng nó đang chạy.
Điều này sẽ khởi động dịch vụ MySQL và tham gia vào Percona XtraDB Cluster.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Để xác minh rằng quá trình thành công, bạn nên đăng nhập vào shell MySQL. Nhập lệnh sau để đăng nhập vào shell MySQL với tư cách là người dùng root. Khi được nhắc, hãy nhập mật khẩu gốc MySQL của bạn.
Sau khi đăng nhập, hãy nhập truy vấn MySQL sau để xác minh trạng thái Cụm Percona XtraDB.
Bạn sẽ nhận được đầu ra như thế này - Trên phần 'wsrep_cluster_size', bạn sẽ thấy giá trị '3', nghĩa là có ba máy chủ khả dụng trên Percona XtraDB Cluster. Bạn cũng sẽ nhận được địa chỉ IP máy chủ trên phần 'wsrep_incoming_address', đó là các địa chỉ IP máy chủ pxc01, pxc02 và pxc03. Cuối cùng, nút ở trạng thái Đồng bộ hóa, nghĩa là nó được kết nối hoàn toàn và sẵn sàng để sao chép tập lệnh ghi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22688%22%3E%3C/svg%3E
Với điều này, Percona XtraDB Cluster hiện đang chạy với ba máy chủ Debian pxc01, pxc02 và pxc03. Bây giờ bạn đã hoàn tất việc triển khai Percona XtraDB Cluster với ba máy chủ Debian 11. Ở bước tiếp theo, bạn sẽ xác minh bản sao cơ sở dữ liệu giữa máy chủ Percona XtraDB Cluster.
Bây giờ hãy di chuyển đến máy chủ 'pxc03', đăng nhập vào shell MySQL thông qua người dùng gốc MySQL, sau đó chuyển sang cơ sở dữ liệu 'percona' mà bạn đã tạo từ 'pxc02' máy chủ.
Khi thành công, bạn sẽ nhận được thông báo như 'Cơ sở dữ liệu đã thay đổi'. Điều này cũng xác nhận rằng cơ sở dữ liệu 'percona' được sao chép trên các máy chủ Percona XtraDB Cluster.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22248%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn MySQL sau để tạo một bảng mới 'example' từ 'pxc03' máy chủ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22532%22%3E%3C/svg%3E
Sau đó, di chuyển đến máy chủ 'pxc01' một lần nữa và chạy truy vấn sau để chèn dữ liệu mới vào cơ sở dữ liệu 'percona'.
Cuối cùng, di chuyển trở lại máy chủ 'pxc02' và chạy truy vấn sau để lấy dữ liệu từ cơ sở dữ liệu 'percona' và bảng 'ví dụ'.
Bạn sẽ nhận được kết quả như thế này - Dữ liệu có sẵn trên Cụm Percona XtraDB 'pxc02'. Với điều này, quá trình sao chép giữa các máy chủ Percona XtraDB Cluster đang hoạt động, điều đó có nghĩa là việc triển khai Percona XtraDB Cluster của bạn trên các máy chủ Debian 11 cũng thành công.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22318%22%3E%3C/svg%3E
Ngoài ra, bạn cũng đã bảo mật Percona XtraDB Cluster bằng cách mã hóa lưu lượng giữa tất cả các máy chủ bằng chứng chỉ SSL/TLS. Điều này đạt được với tùy chọn 'pxc-encrypt-cluster-traffic', được bật theo mặc định.
Với tùy chọn này, giờ đây bạn có thể bắt đầu thêm nhiều máy chủ hơn vào Percona XtraDB Cluster của mình bằng cách sử dụng các bước bạn đã học và thêm các nút bổ sung sẽ cho phép tính khả dụng cao và cân bằng tải trên Percona XtraDB Cluster. Để tìm hiểu thêm, hãy truy cập tài liệu chính thức của Percona XtraDB Cluster.
Percona XtraDB Cluster cung cấp các tính năng như sao chép đồng bộ, sao chép đa nguồn, cung cấp nút tự động, cấu hình mã hóa SSL tự động và hiệu suất được tối ưu hóa.
Percona XtraDB Cluster đảm bảo tính khả dụng cao của máy chủ cơ sở dữ liệu của bạn, cung cấp khả năng mở rộng tuyến tính và ngăn ngừa thời gian chết và mất dữ liệu.
Trong hướng dẫn này, bạn sẽ cài đặt và thiết lập cụm MySQL thông qua Percona XtraDB Cluster (PXC) trên máy chủ Debian 11. Bạn sẽ cài đặt Percona XtraDB Cluster - Giải pháp mã nguồn mở cho cụm MySQL - vào nhiều máy chủ Debian, sau đó thiết lập cụm MySQL để cho phép sao chép giữa nhiều máy chủ MySQL.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, bạn sẽ cần hai hoặc nhiều máy chủ chạy Debian 11. Ngoài ra, bạn phải có người dùng không phải root có quyền quản trị viên sudo/root trên tất cả các máy chủ của mình.Ví dụ này sử dụng ba máy chủ Debian 11 với các chi tiết sau:
Mã:
Hostname IP Address
--------------------------
pxc01 192.168.5.15
pxc02 192.168.5.16
pxc03 192.168.5.17
Thiết lập Máy chủ và Tường lửa
Trước tiên, bạn phải thiết lập tệp /etc/hosts trên mỗi máy chủ để đảm bảo rằng mọi tên máy chủ đều được phân giải thành địa chỉ IP phù hợp, sau đó thiết lập tường lửa để mở một số cổng mà Percona XtraDB Cluster sẽ sử dụng. Bạn phải thực hiện thao tác này trên tất cả các máy chủ.Dưới đây là thông tin chi tiết về các cổng Percona XtraDB Cluster mà bạn phải mở trên tường lửa của mình.
Mã:
Ports Used for
---------------------------
3306 MySQL client connection and SST (State Snapshot Transfer)
4444 SST via Percona XtraBackup
4567 write-set replication traffic (over TCP) and multicast replication (over TCP and UDP)
4568 IST (Incremental State Transfer)
Mã:
sudo nano /etc/hosts
Mã:
192.168.5.15 pxc01
192.168.5.16 pxc02
192.168.5.17 pxc03
Bây giờ hãy nhập lệnh 'apt install' sau để cài đặt gói tường lửa ufw. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
Mã:
sudo apt install ufw
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22662%22%20height=%22333%22%3E%3C/svg%3E
Sau khi ufw được cài đặt, hãy chạy lệnh ufw sau để thêm dịch vụ OpenSSH. Điều này sẽ đảm bảo rằng bạn không bị khóa khỏi máy chủ của mình. Và nếu bạn có cổng SSH tùy chỉnh, bạn chỉ cần thay đổi tham số 'OpenSSH' bằng cổng SSH của mình.
Mã:
sudo ufw allow OpenSSH
Mã:
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 3306
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4444
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4567
sudo ufw allow from 192.168.5.1/24 proto udp to any port 4567
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4568
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22741%22%20height=%22371%22%3E%3C/svg%3E
Sau đó, chạy và bật tường lửa ufw bằng cách nhập lệnh 'ufw enable'. Khi được nhắc, nhập y để xác nhận và nhấn ENTER để tiếp tục. Đầu ra 'Tường lửa đang hoạt động và được bật khi khởi động hệ thống' xác nhận rằng tường lửa ufw đang chạy và sẽ tự động khởi động khi hệ thống khởi động.
Mã:
sudo ufw enable
Mã:
sudo ufw status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22352%22%3E%3C/svg%3E
Cài đặt Percona XtraDB Cluster
Trong phần này, bạn sẽ thêm và thiết lập kho lưu trữ Percona XtraDB cho bản phân phối dựa trên Debian. Sau đó, bạn sẽ cài đặt Percona XtraDB trên tất cả các máy chủ của mình.Ngoài ra, trong quá trình cài đặt, bạn sẽ được nhắc thiết lập mật khẩu gốc MySQL và thiết lập plugin xác thực mặc định cho Percona XtraDB Cluster. Cuối cùng, bạn sẽ xác minh cài đặt Percona XtraDB Cluster bằng cách đăng nhập vào shell MySQL thông qua người dùng gốc MySQL và mật khẩu mà bạn đã cấu hình.
Để bắt đầu, hãy nhập lệnh apt sau để cài đặt một số phụ thuộc cơ bản. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo apt install wget gnupg2 lsb-release curl -y
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22435%22%3E%3C/svg%3E
Tiếp theo, tải xuống gói kho lưu trữ Percona XtraDB thông qua lệnh wget sau. Sau khi tải xuống, hãy cài đặt thông qua lệnh 'dpkg -i' bên dưới.
Mã:
wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22395%22%3E%3C/svg%3E
Bây giờ hãy cập nhật và làm mới chỉ mục gói Debian của bạn và chạy lệnh 'percona-release' để thiết lập kho lưu trữ Percona XtraDB Cluster. Trong ví dụ này, bạn sẽ kích hoạt gói Percona XtraDB Cluster v8.0, tương đương với máy chủ MySQL v8.0.
Mã:
sudo apt update
sudo percona-release setup pxc80
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Kích hoạt kho lưu trữ Percona XtraDB Cluster v8.0.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22388%22%3E%3C/svg%3E
Sau khi kho lưu trữ được bật, hãy nhập lệnh 'apt install' để cài đặt gói 'percona-xtradb-cluster' vào hệ thống của bạn. Nhập y để xác nhận cài đặt và nhấn ENTER để tiếp tục.
Mã:
sudo apt install percona-xtradb-cluster
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22344%22%3E%3C/svg%3E
Trong quá trình cài đặt Percona XtraDB Cluster, bạn sẽ được yêu cầu thiết lập mật khẩu gốc MySQL.
Nhập mật khẩu mạnh mới và chọn OK.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22171%22%3E%3C/svg%3E
Lặp lại mật khẩu của bạn và chọn OK một lần nữa.
Đối với plugin xác thực MySQL mặc định, hãy chọn tùy chọn 'Sử dụng mã hóa mật khẩu mạnh (ĐƯỢC KHUYẾN NGHỊ)' và chọn OK.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ Percona XtraDB Cluster sẽ được cài đặt và nó sẽ tự động khởi động và được kích hoạt.
Khi Percona XtraDB Cluster được cài đặt, hãy nhập lệnh sau để xác minh trạng thái của dịch vụ MySQL.
Mã:
sudo systemctl is-enabled mysql
sudo systemctl status mysql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Để xác minh mật khẩu gốc MySQL của bạn, hãy đăng nhập vào shell MySQL thông qua lệnh 'mysql' bên dưới. Khi được yêu cầu nhập mật khẩu, hãy nhập mật khẩu gốc MySQL của bạn.
Mã:
sudo mysql -u root -p
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E
Bạn cũng có thể xác minh trạng thái chi tiết của máy chủ MySQL bằng cách nhập lệnh sau truy vấn.
Mã:
sudo systemctl status mysql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22331%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã cấu hình tệp /etc/hosts của hệ thống, cài đặt và cấu hình tường lửa ufw và cũng cài đặt Percona XtraDB Cluster MySQL 8.0 trên tất cả các máy chủ của bạn. Bạn đã sẵn sàng để bắt đầu cấu hình Percona XtraDB Cluster.
Dừng Percona XtraDB Cluster Service
Trước khi bắt đầu cấu hình Percona XtraDB Cluster, bạn phải đảm bảo rằng máy chủ MySQL đã dừng.Nhập tiện ích lệnh systemctl sau để dừng máy chủ MySQL trên máy chủ của bạn. Sau đó, xác minh trạng thái máy chủ MySQL để đảm bảo rằng dịch vụ đã dừng.
Mã:
sudo systemctl stop mysql
Bây giờ bạn có thể bắt đầu khởi tạo Percona XtraDB Cluster cho nút đầu tiên 'pxc01'.
Sao chép chứng chỉ SSL/TLS
Percona XtraDB Cluster có hai loại mã hóa lưu lượng: kết nối máy khách-máy chủ và lưu lượng sao chép. Trên Percona XtraDB Cluster v8.0 mới nhất, tất cả lưu lượng sao chép được bật theo mặc định để tăng cường bảo mật.Trong quá trình cài đặt Percona XtraDB Cluster, SSL/TLS được tự động tạo tại thư mục dữ liệu '/var/lib/mysql'. Nhập lệnh sau để kiểm tra danh sách chứng chỉ SL/TLS trên thư mục '/var/lib/mysql'.
Mã:
ls /var/lib/mysql/*.pem
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2291%22%3E%3C/svg%3E
Để tạo và thiết lập Percona XtraDB Cluster, tất cả máy chủ phải có cùng chứng chỉ CA và Máy chủ. Vì vậy, bạn phải sao chép các chứng chỉ CA và chứng chỉ Máy chủ mặc định từ 'pxc01' sang 'pxc02' và 'pxc03'.
Trên máy chủ 'pxc01', hãy di chuyển thư mục làm việc của bạn đến thư mục '/var/lib/mysql'.
Mã:
cd /var/lib/mysql
Mã:
scp server-key.pem server-cert.pem ca.pem root@pax02:/var/lib/mysql
scp server-key.pem server-cert.pem ca.pem root@pax03:/var/lib/mysql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2299%22%3E%3C/svg%3E
Sau khi sao chép chứng chỉ SSL/TLS, bạn có thể khởi tạo Percona XtraDB Cluster.
Khởi tạo Percona XtraDB Cluster trên Nút đầu tiên
Trong phần này, bạn sẽ khởi tạo Percona XtraDB Cluster từ máy chủ nút đầu tiên 'pxc01'. Đảm bảo rằng bạn chạy các bước sau trên máy chủ 'pxc01'.Mở tệp cấu hình MySQL '/etc/mysql/my.cnf' bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/mysql/my.cnf
Mã:
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so
# Cluster connection URL contains the IPs of pxc01, pxc02, and pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB
# This InnoDB autoincrement locking mode is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node 1 address
wsrep_node_address=192.168.5.15
# SST method
wsrep_sst_method=xtrabackup-v2
# Cluster name
wsrep_cluster_name=pxc_cluster
#pxc_strict_mode allowed values: DISABLED,PERMISSIVE,ENFORCING,MASTER
pxc_strict_mode=ENFORCING
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22601%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh systemctl sau để khởi động và khởi tạo Percona XtraDB Cluster.
'mysql@bootstrap' là dịch vụ systemd được sử dụng để chạy Percona XtraDB Cluster và dịch vụ này khác với dịch vụ 'mysql'. Khi xây dựng máy chủ MySQL bằng percona XtraDB Cluster, nút đầu tiên phải được chạy bằng dịch vụ 'mysql@bootstrap'.
Mã:
systemctl start [emailprotected]
Mã:
sudo mysql -u root -p
Mã:
show status like 'wsrep%';
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22720%22%3E%3C/svg%3E
Khi nút đầu tiên được khởi tạo, bạn đã sẵn sàng để thêm nút thứ hai và thứ ba 'pxc02' và 'pxc03' vào Percona XtraDB Cluster.
Thêm Node2 và Node3 vào Cluster
Việc thêm các nút mới vào percona XtraDB Cluster tương tự như việc khởi tạo trên nút đầu tiên. Dưới đây là các bước đơn giản bạn cần thực hiện:- Sửa đổi tệp cấu hình MySQL '/etc/mysql/my.cnf'.
- Khởi động máy chủ MySQL
- Đăng nhập vào shell MySQL và xác minh Percona XtraDB Cluster.
Thêm Node pxc02
Đăng nhập vào máy chủ 'pxc02' và mở tệp cấu hình MySQL '/etc/mysql/my.cnf' bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/mysql/my.cnf
Mã:
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so
# Cluster connection URL contains the IPs of pxc01, pxc02, and pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# Using the MyISAM storage engine is not recommended
default_storage_engine=InnoDB
# This InnoDB autoincrement locking mode is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #2 address
wsrep_node_address=192.168.5.16
# Cluster name
wsrep_cluster_name=pxc_cluster
# SST method
wsrep_sst_method=xtrabackup-v2
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22587%22%3E%3C/svg%3E
Tiếp theo, khởi động máy chủ MySQL bằng cách nhập tiện ích lệnh systemctl sau. Sau đó, hãy xác minh trạng thái máy chủ MySQL để đảm bảo rằng nó đang chạy.
Điều này sẽ khởi động dịch vụ MySQL và tham gia Cụm Percona XtraDB đã khởi tạo trên máy chủ 'pxc01'.
Mã:
sudo systemctl start mysql
sudo systemctl status mysql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22322%22%3E%3C/svg%3E
Để xác minh rằng Quá trình thành công, bạn nên đăng nhập vào MySQL shell. Nhập lệnh sau để đăng nhập vào MySQL shell với tư cách là người dùng root. Khi được nhắc, hãy nhập mật khẩu gốc MySQL của bạn.
Mã:
sudo mysql -u root -p
Mã:
show status like 'wsrep%';
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22657%22%3E%3C/svg%3E
Với điều này, Percona XtraDB Cluster hiện đang chạy với hai nút/máy chủ pxc01 và pxc02. Tiếp theo, di chuyển đến máy chủ pxc03 để thêm nó vào Percona XtraDB Cluster.
Thêm Node pxc03
Đăng nhập vào máy chủ 'pxc03' và mở tệp cấu hình MySQL '/etc/mysql/my.cnf' bằng lệnh nano editor sau.
Mã:
sudo nano /etc/mysql/my.cnf
Mã:
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so
# Cluster connection URL contains the IPs of pxc01, pxc02, and pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# Using the MyISAM storage engine is not recommended
default_storage_engine=InnoDB
# This InnoDB autoincrement locking mode is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #2 address
wsrep_node_address=192.168.5.17
# Cluster name
wsrep_cluster_name=pxc_cluster
# SST method
wsrep_sst_method=xtrabackup-v2
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22591%22%3E%3C/svg%3E
Tiếp theo, khởi động máy chủ MySQL bằng cách nhập tiện ích lệnh systemctl sau. Sau đó, hãy xác minh trạng thái máy chủ MySQL để đảm bảo rằng nó đang chạy.
Điều này sẽ khởi động dịch vụ MySQL và tham gia vào Percona XtraDB Cluster.
Mã:
sudo systemctl start mysql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Để xác minh rằng quá trình thành công, bạn nên đăng nhập vào shell MySQL. Nhập lệnh sau để đăng nhập vào shell MySQL với tư cách là người dùng root. Khi được nhắc, hãy nhập mật khẩu gốc MySQL của bạn.
Mã:
sudo mysql -u root -p
Mã:
show status like 'wsrep%';
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22688%22%3E%3C/svg%3E
Với điều này, Percona XtraDB Cluster hiện đang chạy với ba máy chủ Debian pxc01, pxc02 và pxc03. Bây giờ bạn đã hoàn tất việc triển khai Percona XtraDB Cluster với ba máy chủ Debian 11. Ở bước tiếp theo, bạn sẽ xác minh bản sao cơ sở dữ liệu giữa máy chủ Percona XtraDB Cluster.
Kiểm tra bản sao
Đăng nhập vào shell MySQL từ máy chủ 'pxc02' và tạo cơ sở dữ liệu mới 'percona'.
Mã:
sudo mysql -u root -p
CREATE DATABASE percona;
Mã:
sudo mysql -u root -p
USE percona;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22248%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn MySQL sau để tạo một bảng mới 'example' từ 'pxc03' máy chủ.
Mã:
CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22532%22%3E%3C/svg%3E
Sau đó, di chuyển đến máy chủ 'pxc01' một lần nữa và chạy truy vấn sau để chèn dữ liệu mới vào cơ sở dữ liệu 'percona'.
Mã:
INSERT INTO percona.example VALUES (1, 'pxc01');
INSERT INTO percona.example VALUES (2, 'pxc02');
INSERT INTO percona.example VALUES (3, 'pxc03');
Mã:
SELECT * FROM percona.example;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22318%22%3E%3C/svg%3E
Kết luận
Trong hướng dẫn này, bạn đã cài đặt và cấu hình Percona XtraDB Cluster với ba máy chủ Debian 11. Bạn đã khởi tạo Percona XtraDB Cluster và thêm hai nút/máy chủ vào Percona XtraDB Cluster. Ngoài ra, bạn đã bảo mật Percona XtraDB Cluster thông qua tường lửa ufw.Ngoài ra, bạn cũng đã bảo mật Percona XtraDB Cluster bằng cách mã hóa lưu lượng giữa tất cả các máy chủ bằng chứng chỉ SSL/TLS. Điều này đạt được với tùy chọn 'pxc-encrypt-cluster-traffic', được bật theo mặc định.
Với tùy chọn này, giờ đây bạn có thể bắt đầu thêm nhiều máy chủ hơn vào Percona XtraDB Cluster của mình bằng cách sử dụng các bước bạn đã học và thêm các nút bổ sung sẽ cho phép tính khả dụng cao và cân bằng tải trên Percona XtraDB Cluster. Để tìm hiểu thêm, hãy truy cập tài liệu chính thức của Percona XtraDB Cluster.