Thứ năm, 26/07/2018 | 00:00 GMT+7

Cách tạo một cụm MySQL nhiều node trên Ubuntu 18.04

Database phân tán MySQL Cluster cung cấp tính khả dụng và thông lượng cao cho hệ quản trị database MySQL của bạn. Một MySQL Cluster bao gồm một hoặc nhiều nút quản lý ( ndb_mgmd ) lưu trữ cấu hình của cụm và kiểm soát các node dữ liệu ( ndbd ), nơi dữ liệu cụm được lưu trữ. Sau khi giao tiếp với nút quản lý, các client (máy khách MySQL, server hoặc API root ) kết nối trực tiếp với các node dữ liệu này.

Với MySQL Cluster thường không có sao chép dữ liệu mà thay vào đó là đồng bộ hóa nút dữ liệu. Vì mục đích này, một công cụ dữ liệu đặc biệt phải được sử dụng - NDBCluster (NDB). Thật hữu ích khi nghĩ về cụm như một môi trường MySQL logic duy nhất với các thành phần dư thừa. Do đó, một Cụm MySQL có thể tham gia nhân rộng với các Cụm MySQL khác.

MySQL Cluster hoạt động tốt nhất trong môi trường không chia sẻ. Tốt nhất, không có hai thành phần nào nên chia sẻ cùng một phần cứng. Vì mục đích đơn giản và trình diễn, ta sẽ giới hạn chỉ sử dụng ba server . Ta sẽ cài đặt hai server làm nút dữ liệu đồng bộ dữ liệu giữa chúng. Server thứ ba sẽ được sử dụng cho Trình quản lý cụm và cũng cho server / client MySQL. Nếu bạn tạo ra các server bổ sung, bạn có thể thêm nhiều nút dữ liệu hơn vào cụm, tách trình quản lý cụm khỏi server / client MySQL và cấu hình nhiều server hơn làm Người quản lý cụm và server / client MySQL.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần tổng cộng ba server : hai server cho các node dữ liệu MySQL dự phòng ( ndbd ) và một server cho Trình quản lý cụm ( ndb_mgmd ) và server / client MySQL ( mysqldmysql ).

Trong cùng một trung tâm dữ liệu DigitalOcean , hãy tạo các Server sau khi bật mạng riêng tư :

Hãy nhớ ghi lại địa chỉ IP riêng của ba server của bạn. Trong hướng dẫn này, các node cụm của ta có các địa chỉ IP riêng sau:

  • 198.51.100.0 sẽ là nút dữ liệu MySQL Cluster đầu tiên
  • 198.51.100.1 sẽ là nút dữ liệu thứ hai
  • 198.51.100.2 sẽ là nút quản lý cụm & server MySQL

Khi bạn đã xoay vòng Server của bạn , cấu hình user không phải root và ghi lại địa chỉ IP cho 3 nút, bạn đã sẵn sàng để bắt đầu với hướng dẫn này.

Bước 1 - Cài đặt và cấu hình trình quản lý cụm

Trước tiên, ta sẽ bắt đầu bằng cách download và cài đặt Trình quản lý cụm MySQL, ndb_mgmd .

Để cài đặt Trình quản lý cụm, trước tiên ta cần tìm nạp file trình cài đặt .deb thích hợp từ trang download Cụm MySQL chính thức.

Từ trang này, trong Chọn Hệ điều hành , hãy chọn Ubuntu Linux . Sau đó, trong Chọn version hệ điều hành , chọn Ubuntu Linux 18.04 (x86, 64-bit) .

Cuộn xuống cho đến khi bạn thấy Gói DEB, Server quản lý NDB và nhấp vào liên kết Download cho liên kết không chứa dbgsym (trừ khi bạn yêu cầu ký hiệu gỡ lỗi). Bạn sẽ được đưa đến trang Bắt đầu download của bạn . Tại đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu download của tôi. và sao chép liên kết đến file .deb .

Bây giờ, hãy đăng nhập vào Cluster Manager Server (trong hướng dẫn này, 198.51.100.2 ) và download file .deb này:

  • cd ~
  • wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Cài đặt ndb_mgmd bằng dpkg :

  • sudo dpkg -i mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Bây giờ ta cần cấu hình ndb_mgmd trước khi chạy nó lần đầu tiên; cấu hình phù hợp sẽ đảm bảo đồng bộ hóa chính xác và phân phối tải giữa các node dữ liệu.

Trình quản lý cụm phải là thành phần đầu tiên được chạy trong bất kỳ cụm MySQL nào. Nó yêu cầu một file cấu hình, được chuyển vào làm đối số cho file thực thi của nó. Ta sẽ tạo và sử dụng file cấu hình sau: /var/lib/mysql-cluster/config.ini .

Trên Cluster Manager Server, tạo folder /var/lib/mysql-cluster nơi file này sẽ cư trú:

  • sudo mkdir /var/lib/mysql-cluster

Sau đó, tạo và chỉnh sửa file cấu hình bằng editor bạn muốn :

  • sudo nano /var/lib/mysql-cluster/config.ini

Dán văn bản sau vào trình soạn thảo của bạn:

/var/lib/mysql-cluster/config.ini
[ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2  # Number of replicas  [ndb_mgmd] # Management process options: hostname=198.51.100.2 # Hostname of the manager datadir=/var/lib/mysql-cluster  # Directory for the log files  [ndbd] hostname=198.51.100.0 # Hostname/IP of the first data node NodeId=2            # Node ID for this data node datadir=/usr/local/mysql/data   # Remote directory for the data files  [ndbd] hostname=198.51.100.1 # Hostname/IP of the second data node NodeId=3            # Node ID for this data node datadir=/usr/local/mysql/data   # Remote directory for the data files  [mysqld] # SQL node options: hostname=198.51.100.2 # In our case the MySQL server/client is on the same Server as the cluster manager 

Sau khi paste vào văn bản này, hãy đảm bảo thay thế các giá trị hostname ở trên bằng địa chỉ IP chính xác của các server bạn đã cấu hình . Đặt tham số hostname này là một biện pháp bảo mật quan trọng ngăn các server khác kết nối với Trình quản lý cụm.

Lưu file và đóng editor của bạn.

Đây là một file cấu hình tối thiểu, được giảm bớt cho một Cụm MySQL. Bạn nên tùy chỉnh các thông số trong file này tùy thuộc vào nhu cầu production của bạn. Để có file cấu hình ndb_mgmd mẫu, được cấu hình đầy đủ, hãy tham khảotài liệu MySQL Cluster.

Trong file trên, bạn có thể thêm các thành phần bổ sung như nút dữ liệu ( ndbd ) hoặc nút server MySQL ( mysqld ) bằng cách thêm các version vào phần thích hợp.

Bây giờ ta có thể bắt đầu trình quản lý bằng cách thực thi binary ndb_mgmd và chỉ định file cấu hình của nó bằng cách sử dụng cờ -f :

  • sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Bạn sẽ thấy kết quả sau:

Output
MySQL Cluster Management Server mysql-5.7.22 ndb-7.6.6 2018-07-25 21:48:39 [MgmtSrvr] INFO -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it... 2018-07-25 21:48:39 [MgmtSrvr] INFO -- Successfully created config directory

Điều này cho thấy rằng server Quản lý cụm MySQL đã được cài đặt thành công và hiện đang chạy trên Server.

Tốt nhất, ta muốn khởi động server Quản lý cụm tự động khi khởi động. Để làm điều này, ta sẽ tạo và kích hoạt một dịch vụ systemd.

Trước khi tạo dịch vụ, ta cần phải hủy server đang chạy:

  • sudo pkill -f ndb_mgmd

Bây giờ, hãy mở và chỉnh sửa file Đơn vị hệ thống sau bằng editor yêu thích của bạn:

  • sudo nano /etc/systemd/system/ndb_mgmd.service

Dán mã sau:

/etc/systemd/system/ndb_mgmd.service
[Unit] Description=MySQL NDB Cluster Management Server After=network.target auditd.service  [Service] Type=forking ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure  [Install] WantedBy=multi-user.target 

Ở đây, ta đã thêm một tập hợp các tùy chọn tối thiểu để hướng dẫn systemd cách bắt đầu, dừng và khởi động lại quy trình ndb_mgmd . Để tìm hiểu thêm về các tùy chọn được sử dụng trong cấu hình thiết bị này, hãy tham khảo hướng dẫn sử dụng hệ thống.

Lưu và đóng file .

Bây giờ, reload cấu hình daemon-reload quản lý của systemd bằng cách sử dụng daemon-reload :

  • sudo systemctl daemon-reload

Ta sẽ kích hoạt dịch vụ mà ta vừa tạo để Trình quản lý cụm MySQL bắt đầu khi server khởi động lại:

  • sudo systemctl enable ndb_mgmd

Cuối cùng, ta sẽ bắt đầu dịch vụ:

  • sudo systemctl start ndb_mgmd

Bạn có thể xác minh dịch vụ Quản lý cụm NDB đang chạy:

  • sudo systemctl status ndb_mgmd

Bạn sẽ thấy kết quả sau:

● ndb_mgmd.service - MySQL NDB Cluster Management Server    Loaded: loaded (/etc/systemd/system/ndb_mgmd.service; enabled; vendor preset: enabled)    Active: active (running) since Thu 2018-07-26 21:23:37 UTC; 3s ago   Process: 11184 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS)  Main PID: 11193 (ndb_mgmd)     Tasks: 11 (limit: 4915)    CGroup: /system.slice/ndb_mgmd.service            └─11193 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini 

Điều này cho biết server quản lý cụm MySQL ndb_mgmd hiện đang chạy dưới dạng dịch vụ systemd.

Bước cuối cùng để cài đặt Trình quản lý cụm là cho phép các kết nối đến từ các node Cụm MySQL khác trên mạng riêng của ta .

Nếu bạn không cấu hình firewall ufw khi cài đặt Server này, bạn có thể chuyển sang phần tiếp theo.

Ta sẽ thêm các luật để cho phép các kết nối đến local từ cả hai nút dữ liệu:

  • sudo ufw allow from 198.51.100.0
  • sudo ufw allow from 198.51.100.1

Sau khi nhập các lệnh này, bạn sẽ thấy kết quả sau:

Output
Rule added

Trình quản lý Cụm bây giờ sẽ được cài đặt và chạy, và có thể giao tiếp với các node Cụm khác qua mạng riêng.

Bước 2 - Cài đặt và cấu hình các node dữ liệu

Lưu ý: Tất cả các lệnh trong phần này phải được thực hiện trên cả hai nút dữ liệu.

Trong bước này, ta sẽ cài đặt daemon nút dữ liệu cụm ndbd MySQL và cấu hình các node để chúng có thể giao tiếp với Trình quản lý cụm.

Để cài đặt mã binary nút dữ liệu, trước tiên ta cần tìm nạp file trình cài đặt .deb thích hợp từ trang download MySQL chính thức.

Từ trang này, trong Chọn Hệ điều hành , hãy chọn Ubuntu Linux . Sau đó, trong Chọn version hệ điều hành , chọn Ubuntu Linux 18.04 (x86, 64-bit) .

Cuộn xuống cho đến khi bạn thấy Gói DEB, Binaries Node Dữ liệu NDB và nhấp vào liên kết Download cho liên kết không chứa dbgsym (trừ khi bạn yêu cầu ký hiệu gỡ lỗi). Bạn sẽ được đưa đến trang Bắt đầu download của bạn . Tại đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu download của tôi. và sao chép liên kết đến file .deb .

Bây giờ, hãy đăng nhập vào nút dữ liệu đầu tiên của bạn Server (trong hướng dẫn này, 198.51.100.0 ) và download file .deb này:

  • cd ~
  • wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Trước khi cài đặt binary nút dữ liệu, ta cần cài đặt một phần phụ thuộc, libclass-methodmaker-perl :

  • sudo apt update
  • sudo apt install libclass-methodmaker-perl

Bây giờ ta có thể cài đặt file binary ghi chú dữ liệu bằng cách sử dụng dpkg :

  • sudo dpkg -i mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Các node dữ liệu kéo cấu hình của chúng từ vị trí chuẩn của MySQL, /etc/my.cnf . Tạo file này bằng editor yêu thích của bạn và bắt đầu chỉnh sửa nó:

  • sudo nano /etc/my.cnf

Thêm thông số cấu hình sau vào file :

/etc/my.cnf
[mysql_cluster] # Options for NDB Cluster processes: ndb-connectstring=198.51.100.2  # location of cluster manager 

Chỉ định vị trí của nút Trình quản lý cụm là cấu hình duy nhất cần thiết để ndbd khởi động. Phần còn lại của cấu hình sẽ được lấy trực tiếp từ trình quản lý.

Lưu và thoát khỏi file .

Trong ví dụ của ta , nút dữ liệu sẽ tìm ra rằng folder dữ liệu của nó là /usr/local/mysql/data , theo cấu hình của trình quản lý. Trước khi khởi động daemon, ta sẽ tạo folder này trên nút:

  • sudo mkdir -p /usr/local/mysql/data

Bây giờ ta có thể bắt đầu nút dữ liệu bằng lệnh sau:

  • sudo ndbd

Bạn sẽ thấy kết quả sau:

Output
2018-07-18 19:48:21 [ndbd] INFO -- Angel connected to '198.51.100.2:1186' 2018-07-18 19:48:21 [ndbd] INFO -- Angel allocated nodeid: 2

Daemon nút dữ liệu NDB đã được cài đặt thành công và hiện đang chạy trên server của bạn.

Ta cũng cần cho phép các kết nối đến từ các node MySQL Cluster khác qua mạng riêng.

Nếu bạn không cấu hình firewall ufw khi cài đặt Server này, bạn có thể chuyển sang cài đặt dịch vụ systemd cho ndbd .

Ta sẽ thêm các luật để cho phép các kết nối đến từ Trình quản lý cụm và các node dữ liệu khác:

  • sudo ufw allow from 198.51.100.0
  • sudo ufw allow from 198.51.100.2

Sau khi nhập các lệnh này, bạn sẽ thấy kết quả sau:

Output
Rule added

Nút dữ liệu MySQL của bạn Server hiện có thể giao tiếp với cả Trình quản lý cụm và nút dữ liệu khác qua mạng riêng.

Cuối cùng, ta cũng muốn daemon nút dữ liệu tự động khởi động khi server khởi động. Ta sẽ làm theo quy trình tương tự được sử dụng cho Trình quản lý cụm và tạo một dịch vụ systemd.

Trước khi ta tạo dịch vụ, ta sẽ giết quá trình ndbd đang chạy:

  • sudo pkill -f ndbd

Bây giờ, hãy mở và chỉnh sửa file Đơn vị hệ thống sau bằng editor yêu thích của bạn:

  • sudo nano /etc/systemd/system/ndbd.service

Dán mã sau:

/etc/systemd/system/ndbd.service
[Unit] Description=MySQL NDB Data Node Daemon After=network.target auditd.service  [Service] Type=forking ExecStart=/usr/sbin/ndbd ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure  [Install] WantedBy=multi-user.target 

Ở đây, ta đã thêm một tập hợp các tùy chọn tối thiểu để hướng dẫn systemd về cách bắt đầu, dừng và khởi động lại quy trình ndbd . Để tìm hiểu thêm về các tùy chọn được sử dụng trong cấu hình thiết bị này, hãy tham khảo hướng dẫn sử dụng hệ thống.

Lưu và đóng file .

Bây giờ, reload cấu hình daemon-reload quản lý của systemd bằng cách sử dụng daemon-reload :

  • sudo systemctl daemon-reload

Bây giờ ta sẽ kích hoạt dịch vụ ta vừa tạo để daemon nút dữ liệu bắt đầu khi server khởi động lại:

  • sudo systemctl enable ndbd

Cuối cùng, ta sẽ bắt đầu dịch vụ:

  • sudo systemctl start ndbd

Bạn có thể xác minh dịch vụ Quản lý cụm NDB đang chạy:

  • sudo systemctl status ndbd

Bạn sẽ thấy kết quả sau:

Output
● ndbd.service - MySQL NDB Data Node Daemon Loaded: loaded (/etc/systemd/system/ndbd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-07-26 20:56:29 UTC; 8s ago Process: 11972 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS) Main PID: 11984 (ndbd) Tasks: 46 (limit: 4915) CGroup: /system.slice/ndbd.service ├─11984 /usr/sbin/ndbd └─11987 /usr/sbin/ndbd

Điều này cho biết daemon nút dữ liệu MySQL Cluster ndbd hiện đang chạy như một dịch vụ systemd. Nút dữ liệu bây giờ sẽ có đầy đủ chức năng và có thể kết nối với Trình quản lý cụm MySQL.

Khi bạn đã hoàn tất cài đặt nút dữ liệu đầu tiên, hãy lặp lại các bước trong phần này trên nút dữ liệu khác ( 198.51.100.1 trong hướng dẫn này).

Bước 3 - Cấu hình và khởi động server và client MySQL

Server MySQL tiêu chuẩn, chẳng hạn như server có sẵn trong repository lưu trữ APT của Ubuntu, không hỗ trợ NDB của MySQL Cluster engine. Điều này nghĩa là ta cần cài đặt server SQL tùy chỉnh được đóng gói với phần mềm MySQL Cluster khác mà ta đã cài đặt trong hướng dẫn này.

Ta sẽ lấy file binary MySQL Cluster Server từ trang download MySQL Cluster chính thức.

Từ trang này, trong Chọn Hệ điều hành , hãy chọn Ubuntu Linux . Sau đó, trong Chọn version hệ điều hành , chọn Ubuntu Linux 18.04 (x86, 64-bit) .

Cuộn xuống cho đến khi bạn thấy Gói DEB và nhấp vào liên kết Download (nó phải là liên kết đầu tiên trong danh sách). Bạn sẽ được đưa đến trang Bắt đầu download của bạn . Tại đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu download của tôi. và sao chép liên kết vào repository .tar .

Bây giờ, hãy đăng nhập vào Cluster Manager Server (trong hướng dẫn này, 198.51.100.2 ) và download .tar lưu trữ .tar này (nhớ lại rằng ta đang cài đặt Server MySQL trên cùng một nút với Trình quản lý cụm của ta - trong cài đặt production , bạn nên chạy chúng daemon trên các node khác nhau):

  • cd ~
  • wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar

Bây giờ ta sẽ extract repository này vào một folder có tên là install . Đầu tiên, tạo folder :

  • mkdir install

Bây giờ extract repository vào folder này:

  • tar -xvf mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar -C install/

Di chuyển vào folder này, chứa các file binary thành phần MySQL Cluster được extract :

  • cd install

Trước khi ta cài đặt file binary server MySQL, ta cần cài đặt một số phụ thuộc:

  • sudo apt update
  • sudo apt install libaio1 libmecab2

Bây giờ, ta cần cài đặt các phụ thuộc MySQL Cluster, được đóng gói trong repositories lưu trữ tar mà ta vừa extract :

  • sudo dpkg -i mysql-common_7.6.6-1ubuntu18.04_amd64.deb
  • sudo dpkg -i mysql-cluster-community-client_7.6.6-1ubuntu18.04_amd64.deb
  • sudo dpkg -i mysql-client_7.6.6-1ubuntu18.04_amd64.deb
  • sudo dpkg -i mysql-cluster-community-server_7.6.6-1ubuntu18.04_amd64.deb

Khi cài đặt mysql-cluster-community-server , một dấu nhắc cấu hình sẽ xuất hiện, yêu cầu bạn đặt password cho account gốc của database MySQL của bạn. Chọn một password mạnh, an toàn và nhấn <Ok> . Nhập lại password gốc này khi được yêu cầu và nhấn <Ok> để hoàn tất cài đặt.

Bây giờ ta có thể cài đặt binary server MySQL bằng dpkg :

  • sudo dpkg -i mysql-server_7.6.6-1ubuntu18.04_amd64.deb

Bây giờ ta cần cấu hình cài đặt server MySQL này.

Cấu hình cho Server MySQL được lưu trữ trong file /etc/mysql/my.cnf mặc định.

Mở file cấu hình này bằng editor yêu thích của bạn:

  • sudo nano /etc/mysql/my.cnf

Bạn sẽ thấy văn bản sau:

/etc/mysql/my.cnf
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA  # # The MySQL Cluster Community Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html  # * IMPORTANT: Additional settings that can override those from this file! #   The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ 

Nối cấu hình sau vào nó:

/etc/mysql/my.cnf
. . . [mysqld] # Options for mysqld process: ndbcluster                      # run NDB storage engine  [mysql_cluster] # Options for NDB Cluster processes: ndb-connectstring=198.51.100.2  # location of management server 

Lưu và thoát khỏi file .

Khởi động lại server MySQL để những thay đổi này có hiệu lực:

  • sudo systemctl restart mysql

MySQL theo mặc định sẽ tự động khởi động khi server của bạn khởi động lại. Nếu không, lệnh sau sẽ sửa lỗi này:

  • sudo systemctl enable mysql

Server SQL bây giờ sẽ chạy trên Cluster Manager / MySQL Server Server.

Trong bước tiếp theo, ta sẽ chạy một vài lệnh để xác minh cài đặt MySQL Cluster của ta đang hoạt động như mong đợi.

Bước 4 - Xác minh cài đặt cụm MySQL

Để xác minh cài đặt MySQL Cluster của bạn, hãy đăng nhập vào nút Cluster Manager / SQL Server .

Ta sẽ mở client MySQL từ dòng lệnh và kết nối với account gốc mà ta vừa cấu hình bằng lệnh lệnh sau:

  • mysql -u root -p

Nhập password của bạn khi được yêu cầu và nhấn ENTER .

Bạn sẽ thấy một kết quả tương tự như:

Output
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.22-ndb-7.6.6 MySQL Cluster Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

Khi ở bên trong client MySQL, hãy chạy lệnh sau:

  • SHOW ENGINE NDB STATUS \G

Đến đây bạn sẽ thấy thông tin về động cơ cụm NDB, bắt đầu với các thông số kết nối:

Output
*************************** 1. row *************************** Type: ndbcluster Name: connection Status: cluster_node_id=4, connected_host=198.51.100.2, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0 . . .

Điều này cho thấy rằng bạn đã kết nối thành công với Cụm MySQL của bạn .

Lưu ý ở đây số lượng ready_data_nodes : 2. Sự dư thừa này cho phép cụm MySQL của bạn tiếp tục hoạt động ngay cả khi một trong các node dữ liệu bị lỗi. Điều đó cũng nghĩa là các truy vấn SQL của bạn sẽ được cân bằng tải trên hai nút dữ liệu.

Bạn có thể thử tắt một trong các node dữ liệu để kiểm tra độ ổn định của cụm. Kiểm tra đơn giản nhất là khởi động lại nút dữ liệu Server để kiểm tra toàn bộ quá trình khôi phục. Bạn sẽ thấy giá trị của number_of_ready_data_nodes thay đổi thành 1 và backup lên 2 lần nữa khi nút khởi động lại và kết nối lại với Trình quản lý cụm.

Để thoát khỏi dấu nhắc MySQL, chỉ cần gõ quit hoặc nhấn CTRL-D .

Đây là bài kiểm tra đầu tiên cho biết cụm MySQL, server và client đang hoạt động. Bây giờ ta sẽ trải qua một bài kiểm tra bổ sung để xác nhận cụm đang hoạt động bình thường.

Mở console quản lý cụm, ndb_mgm bằng lệnh:

  • ndb_mgm

Bạn sẽ thấy kết quả sau:

Output
-- NDB Cluster -- Management Client -- ndb_mgm>

Khi bên trong console , hãy nhập lệnh SHOW và nhấn ENTER :

  • SHOW

Bạn sẽ thấy kết quả sau:

Output
Connected to Management Server at: 198.51.100.2:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @198.51.100.0 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *) id=3 @198.51.100.1 (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @198.51.100.2 (mysql-5.7.22 ndb-7.6.6) [mysqld(API)] 1 node(s) id=4 @198.51.100.2 (mysql-5.7.22 ndb-7.6.6)

Ở trên cho thấy rằng có hai nút dữ liệu được kết nối với node-id s 2 và 3. Ngoài ra còn có một nút quản lý với node-id 1 và một server MySQL với node-id 4. Bạn có thể hiển thị thêm thông tin về từng id bằng lệnh số của nó với lệnh STATUS như sau:

  • 2 STATUS

Lệnh trên hiển thị cho bạn trạng thái, version MySQL và version NDB của nút 2:

Output
Node 2: started (mysql-5.7.22 ndb-7.6.6)

Để thoát khỏi console quản lý, hãy loại quit , sau đó nhấn ENTER .

Control panel quản lý rất mạnh mẽ và cung cấp cho bạn nhiều tùy chọn khác để quản trị cụm và dữ liệu của nó, bao gồm cả việc tạo bản backup trực tuyến. Để biết thêm thông tin, hãy tham khảo tài liệu MySQL chính thức .

Đến đây, bạn đã kiểm tra đầy đủ cài đặt MySQL Cluster của bạn . Bước kết thúc của hướng dẫn này cho bạn thấy cách tạo và chèn dữ liệu thử nghiệm vào Cụm MySQL này.

Bước 5 - Chèn dữ liệu vào MySQL Cluster

Để chứng minh chức năng của cụm, hãy tạo một bảng mới bằng công cụ NDB và chèn một số dữ liệu mẫu vào đó. Lưu ý để sử dụng chức năng cụm, động cơ phải được chỉ định rõ ràng là NDB . Nếu bạn sử dụng InnoDB (mặc định) hoặc bất kỳ công cụ nào khác, bạn sẽ không sử dụng cụm.

Đầu tiên, hãy tạo một database có tên là clustertest bằng lệnh:

  • CREATE DATABASE clustertest;

Tiếp theo, chuyển sang database mới:

  • USE clustertest;

Bây giờ, hãy tạo một bảng đơn giản có tên test_table như sau:

  • CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;

Ta đã chỉ định rõ ràng engine ndbcluster để sử dụng cụm.

Bây giờ, ta có thể bắt đầu chèn dữ liệu bằng truy vấn SQL này:

  • INSERT INTO test_table (name,value) VALUES('some_name','some_value');

Để xác minh dữ liệu đã được chèn, hãy chạy truy vấn chọn sau:

  • SELECT * FROM test_table;

Khi bạn chèn dữ liệu vào và chọn dữ liệu từ bảng ndbcluster , tải cụm sẽ cân bằng các truy vấn giữa tất cả các node dữ liệu có sẵn. Điều này cải thiện tính ổn định và hiệu suất của cài đặt database MySQL của bạn.

Bạn cũng có thể đặt công cụ lưu trữ mặc định thành ndbcluster trong file my.cnf mà ta đã chỉnh sửa trước đó. Nếu bạn làm điều này, bạn sẽ không cần chỉ định tùy chọn ENGINE khi tạo bảng. Để tìm hiểu thêm, hãy tham khảo Hướng dẫn tham khảo MySQL.

Kết luận

Trong hướng dẫn này, ta đã trình bày cách cài đặt và cấu hình Cụm MySQL trên server Ubuntu 18.04. Điều quan trọng cần lưu ý là đây là một kiến trúc đơn giản, tối thiểu được sử dụng để chứng minh quy trình cài đặt và có nhiều tùy chọn và tính năng nâng cao đáng để tìm hiểu trước khi triển khai MySQL Cluster trong version production (ví dụ: thực hiện backup ). Để tìm hiểu thêm, hãy tham khảo tài liệu MySQL Cluster chính thức.


Tags:

Các tin liên quan

Cách cài đặt MySQL mới nhất trên Ubuntu 18.04
2018-07-12
Cách di chuyển thư mục dữ liệu MySQL đến vị trí mới trên Ubuntu 18.04
2018-07-06
Cách triển khai ứng dụng Elixir-Phoenix với MySQL trên Ubuntu 16.04
2018-05-07
Cách sử dụng ProxySQL làm Bộ cân bằng tải cho MySQL trên Ubuntu 16.04
2018-01-08
Cách backup database MySQL vào lưu trữ đối tượng với Percona trên Ubuntu 16.04
2017-10-19
Cách cài đặt Lighttpd với MySQL và PHP trên FreeBSD 11.0
2017-09-18
Cách cấu hình backup MySQL với Percona XtraBackup trên Ubuntu 16.04
2017-08-30
Cách cấu hình sao chép nhóm MySQL trên Ubuntu 16.04
2017-04-13
Cách cài đặt MySQL mới nhất trên Ubuntu 16.04
2017-04-06
Cách cấu hình SSL / TLS cho MySQL trên Ubuntu 16.04
2017-03-20