16/09/2018, 13:12

Làm thế nào để tạo một cụm MySQL đa nút trên Ubuntu 18.04

Giới thiệu Cơ sở dữ liệu phân tán MySQL Cluster cung cấp tính sẵn sàng cao và thông lượng cho hệ thống quản lý cơ sở dữ liệu MySQL của bạn. Một cụm MySQL 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 nút dữ liệu (ndbd), nơi dữ liệu cụm được lưu trữ. Sau ...

Giới thiệu

Cơ sở dữ liệu phân tán MySQL Cluster cung cấp tính sẵn sàng cao và thông lượng cho hệ thống quản lý cơ sở dữ liệu MySQL của bạn. Một cụm MySQL 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 nút 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ý, máy khách (máy khách MySQL, máy chủ hoặc API gốc) kết nối trực tiếp với các nút dữ liệu này.

Với MySQL Cluster, thường không có sự sao chép dữ liệu, mà thay vào đó là đồng bộ hóa nút dữ liệu. Với 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 logic logic đơn với các thành phần dự phòng. Vì vậy, một cụm MySQL có thể tham gia vào 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 chia sẻ không có gì. Lý tưởng nhất, không có hai thành phần nên chia sẻ cùng một phần cứng. Để đơn giản và mục đích trình diễn, chúng tôi sẽ giới hạn bản thân chỉ sử dụng ba máy chủ. Chúng tôi sẽ thiết lập hai máy chủ dưới dạng các nút dữ liệu đồng bộ hóa dữ liệu giữa chúng. Máy chủ thứ ba sẽ được sử dụng cho Trình quản lý cụm và cũng cho máy chủ / máy khách MySQL. Nếu bạn quay lên các máy chủ bổ sung, bạn có thể thêm nhiều nút dữ liệu vào cụm, tách trình quản lý cụm từ máy chủ / máy khách MySQL và định cấu hình thêm máy chủ làm Quản lý cụm và máy chủ / máy khá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 tổng cộng ba máy chủ: hai máy chủ cho các nút dữ liệu MySQL dư thừa (ndbd) và một máy chủ cho Trình quản lý cụm (ndb_mgmd) và máy chủ / máy khách MySQL (mysqld và mysql).

bên trong cùng một trung tâm dữ liệu DigitalOcean, tạo các giọt sau với đã bật mạng riêng:

  • Ba Ubuntu 18.04 giọt với mạng riêng đã bật
  • Một người dùng không phải root với quyền sudo được cấu hình cho mỗi Droplet. Bạn có thể tìm hiểu cách thực hiện điều này trong Thiết lập máy chủ ban đầu với Ubuntu 18.04.

Hãy nhớ ghi lại riêng tư Địa chỉ IP của ba giọt của bạn. Trong hướng dẫn này, các nút cụm của chúng tôi có các địa chỉ IP riêng sau đây:

  • 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 máy chủ Cluster Manager & MySQL

Một khi bạn đã tách các giọt của bạn, cấu hình một người dùng không phải root, và ghi lại các đị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 Cluster Manager

Trước tiên, chúng tôi sẽ bắt đầu bằng cách tải xuống 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 chúng tôi cần tìm nạp .deb tập tin cài đặt từ cụm MySQL chính thức trang tải xuống.

Từ trang này, dưới Chọn hệ điều hành, chọn Ubuntu Linux. Sau đó, dưới Chọn phiên bản 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, Máy chủ quản lý NDBvà nhấp vào Tải về liên kết cho một liên kết không phải chứa dbgsym (trừ khi bạn yêu cầu các biểu tượng gỡ lỗi). Bạn sẽ được đưa đến Bắt đầu tải xuống của bạn trang. Ở đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu tải xuống của tôi. và sao chép liên kết đến .deb tập tin.

Bây giờ, đăng nhập vào Cluster Manager Droplet của bạn (trong hướng dẫn này, 198.51.100.2) và tải xuống .deb tập tin:

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, dựng lên ndb_mgmd sử dụng dpkg:

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

Bây giờ chúng ta cần phải cấu hình ndb_mgmd trước khi chạy nó lần đầu tiên; cấu hình thích 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 nút dữ liệu.

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

Trên Cluster Manager Droplet, tạo /var/lib/mysql-cluster thư mục nơi tệp này sẽ cư trú:

sudo mkdir /var/lib/mysql-cluster

Sau đó, tạo và chỉnh sửa tệp cấu hình bằng trình soạn thảo văn bản ưa thích của bạn:

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

Dán văn bản sau vào trình chỉnh sửa 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 Droplet as the cluster manager

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

Lưu tệp và đóng trình soạn thảo văn bản của bạn.

Đây là một tệp cấu hình tối thiểu, nhỏ gọn cho một cụm MySQL. Bạn nên tùy chỉnh các tham số trong tệp này tùy thuộc vào nhu cầu sản xuất của bạn. Đối với mẫu, được định cấu hình đầy đủ ndb_mgmd tập tin cấu hình, tham khảo cụm MySQL tài liệu.

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

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

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

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

OutputMySQL 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 chỉ ra rằng máy chủ MySQL Cluster Management đã được cài đặt thành công và hiện đang chạy trên Droplet của bạn.

Lý tưởng nhất, chúng tôi muốn bắt đầu máy chủ quản lý cụm tự động khi khởi động. Để thực hiện việc này, chúng tôi sẽ tạo và bật dịch vụ systemd.

Trước khi tạo dịch vụ, chúng ta cần phải giết máy chủ đang chạy:

sudo pkill -f ndb_mgmd

Bây giờ, mở và chỉnh sửa tệp đơn vị systemd sau bằng trình chỉnh sửa yêu thích của bạn:

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

Dán vào 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, chúng tôi đã thêm một số 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 ndb_mgmd quá trình. Để tìm hiểu thêm về các tùy chọn được sử dụng trong cấu hình đơn vị này, hãy tham khảo systemd thủ công.

Lưu và đóng tập tin.

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

sudo systemctl daemon-reload

Chúng tôi sẽ kích hoạt dịch vụ mà chúng tôi vừa tạo để MySQL Cluster Manager bắt đầu khởi động lại:

sudo systemctl enable ndb_mgmd

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

sudo systemctl start ndb_mgmd

Bạn có thể xác minh rằng 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

Chỉ ra rằng ndb_mgmd Máy chủ quản lý cụm MySQL hiện đang chạy dưới dạng dịch vụ systemd.

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

Nếu bạn không định cấu hình ufw tường lửa khi thiết lập Droplet này, bạn có thể bỏ qua phần tiếp theo.

Chúng tôi sẽ thêm các quy tắc để cho phép các kết nối đến cục bộ 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:

OutputRule added

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

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

Chú thích: Tất cả các lệnh trong phần này sẽ được thực hiện trên cả hai nút dữ liệu.

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

Để cài đặt nhị phân nút dữ liệu, trước tiên chúng tôi cần tìm nạp tệp thích hợp .deb tập tin cài đặt từ MySQL chính thức trang tải xuống.

Từ trang này, dưới Chọn hệ điều hành, chọn Ubuntu Linux. Sau đó, dưới Chọn phiên bản 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, NDB Data Node Binariesvà nhấp vào Tải về liên kết cho một liên kết không phải chứa dbgsym (trừ khi bạn yêu cầu các biểu tượng gỡ lỗi). Bạn sẽ được đưa đến Bắt đầu tải xuống của bạn trang. Ở đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu tải xuống của tôi. và sao chép liên kết đến .deb tập tin.

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

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 nhị phân nút dữ liệu, chúng ta cần phải cài đặt một phụ thuộc, libclass-methodmaker-perl:

sudo apt update

sudo apt install libclass-methodmaker-perl

Bây giờ chúng ta có thể cài đặt nhị phân lưu ý 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 nút 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 tệp này bằng trình soạn thảo văn bản yêu thích của bạn và bắt đầu chỉnh sửa nó:

sudo nano /etc/my.cnf

Thêm tham số cấu hình sau vào tệp:

/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 cho ndbd để bắt đầu. Phần còn lại của cấu hình sẽ được kéo trực tiếp từ người quản lý.

Lưu và thoát tệp.

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

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

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

sudo ndbd

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

Output2018-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 máy chủ của bạn.

Chúng ta cũng cần cho phép các kết nối đến từ các nút khác của MySQL Cluster trên mạng riêng.

Nếu bạn không định cấu hình ufw tường lửa khi thiết lập Droplet này, bạn có thể bỏ qua để thiết lập dịch vụ systemd cho ndbd.

Chúng tôi sẽ thêm các quy tắc để cho phép các kết nối đến từ Trình quản lý cụm và các nút 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:

OutputRule added

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

Cuối cùng, chúng tôi cũng thích daemon nút dữ liệu để khởi động tự động khi máy chủ khởi động. Chúng tôi sẽ thực hiện theo quy trình tương tự được sử dụng cho Trình quản lý cụm và tạo dịch vụ systemd.

Trước khi chúng tôi tạo dịch vụ, chúng tôi sẽ xóa hoạt động ndbd quá trình:

sudo pkill -f ndbd

Bây giờ, mở và chỉnh sửa tệp đơn vị systemd sau bằng trình chỉnh sửa yêu thích của bạn:

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

Dán vào 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, chúng tôi đã thêm một số 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 ndbd quá trình. Để tìm hiểu thêm về các tùy chọn được sử dụng trong cấu hình đơn vị này, hãy tham khảo systemd thủ công.

Lưu và đóng tập tin.

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

sudo systemctl daemon-reload

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

sudo systemctl enable ndbd

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

sudo systemctl start ndbd

Bạn có thể xác minh rằng 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

Chỉ ra rằng ndbd MySQL daemon nút dữ liệu cụm MySQL hiện đang chạy như một dịch vụ systemd. Nút dữ liệu của bạn 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 thành thiết lập 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 máy chủ và máy khách MySQL

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

Chúng ta sẽ lại một lần nữa lấy tập tin nhị phân MySQL Cluster Server từ MySQL Cluster chính thức trang tải xuống.

Từ trang này, dưới Chọn hệ điều hành, chọn Ubuntu Linux. Sau đó, dưới Chọn phiên bản 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 DEBvà nhấp vào Tải về liên kết (nó phải là người đầu tiên trong danh sách). Bạn sẽ được đưa đến Bắt đầu tải xuống của bạn trang. Ở đây, nhấp chuột phải vào Không, cảm ơn, chỉ cần bắt đầu tải xuống của tôi. và sao chép liên kết đến .tar lưu trữ.

Bây giờ, đăng nhập vào Cluster Manager Droplet (trong hướng dẫn này, 198.51.100.2) và tải xuống .tar lưu trữ (nhớ lại rằng chúng ta đang cài đặt MySQL Server trên cùng một nút như Cluster Manager của chúng ta - trong một thiết lập sản xuất, bạn nên chạy các daemon này trên các nút 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ờ chúng tôi sẽ trích xuất lưu trữ này vào một thư mục có tên install. Đầu tiên, tạo thư mục:

mkdir install

Bây giờ giải nén lưu trữ vào thư mục này:

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

Chuyển vào thư mục này, chứa các tập tin nhị phân thành phần của cụm MySQL được trích xuất:

cd install

Trước khi cài đặt nhị phân máy chủ MySQL, chúng ta cần cài đặt một vài phụ thuộc:

sudo apt update

sudo apt install libaio1 libmecab2

Bây giờ, chúng ta cần phải cài đặt các phụ thuộc của Cluster MySQL, được gói trong tar lưu trữ chúng tôi vừa trích xuất:

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 lời nhắc cấu hình sẽ xuất hiện, yêu cầu bạn đặt mật khẩu cho nguồn gốc tài khoản cơ sở dữ liệu MySQL của bạn. Chọn mật khẩu mạnh, an toàn và nhấn <Ok>. Nhập lại nguồn gốc mật khẩu khi được nhắc và nhấn <Ok> một lần nữa để hoàn thành cài đặt.

Bây giờ chúng ta có thể cài đặt nhị phân máy chủ MySQL bằng cách sử dụng dpkg:

mysql-server_7.6.6-1ubuntu18.04_amd64.deb

Bây giờ chúng ta cần cấu hình cài đặt máy chủ MySQL này.

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

Mở tệp cấu hình này bằng trình chỉnh sửa 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 tệp.

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

sudo systemctl restart mysql

MySQL theo mặc định sẽ bắt đầu tự động khi máy chủ của bạn khởi động lại. Nếu không, lệnh sau sẽ khắc phục điều này:

sudo systemctl enable mysql

Một máy chủ SQL bây giờ sẽ chạy trên Cluster Manager / MySQL Server Droplet của bạn.

Trong bước tiếp theo, chúng tôi sẽ chạy một vài lệnh để xác minh rằng cài đặt MySQL Cluster của chúng tôi 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, đăng nhập vào nút Cluster Manager / SQL Server của bạn.

Chúng tôi sẽ mở ứng dụng khách MySQL từ dòng lệnh và kết nối với nguồn gốc tài khoản chúng tôi vừa định cấu hình bằng cách nhập lệnh sau:

mysql -u root -p 

Nhập mật khẩu của bạn khi được nhắc và nhấn ENTER.

Bạn sẽ thấy một đầu ra tương tự như:

OutputWelcome 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 đã ở trong máy khách MySQL, hãy chạy lệnh sau:

SHOW ENGINE NDB STATUS G

Bây giờ bạn sẽ thấy thông tin về công cụ cụm NDB, bắt đầu với các tham 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 Cluster MySQL của bạn.

Lưu ý ở đây số lượng ready_data_nodes: 2. Dự phòng 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 nút dữ liệu không thành công. Nó cũng có 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 nút dữ liệu để kiểm tra độ ổn định cụm. Thử nghiệm đơn giản nhất là khởi động lại nút dữ liệu Droplet để kiểm tra đầy đủ 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à sao lưu 2 một 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à thử nghiệm đầu tiên chỉ ra rằng cụm MySQL, máy chủ và máy khách đang hoạt động. Bây giờ chúng ta sẽ đi qua một thử nghiệm bổ sung để xác nhận rằng cụm đang hoạt động đúng.

Mở bảng điều khiển quản lý cụm, ndb_mgm sử dụ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 giao diện điều khiển, hãy nhập lệnh SHOW va đanh ENTER:

SHOW

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

OutputConnected 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 có hai nút dữ liệu được kết nối với node-ids 2 và 3. Cũng có một nút quản lý với node-id 1 và một máy chủ MySQL với node-id 4. Bạn có thể hiển thị thêm thông tin về từng id bằng cách nhập số của nó bằng lệnh STATUS như sau:

2 STATUS

Lệnh trên cho bạn thấy trạng thái, phiên bản MySQL và phiên bản NDB của nút 2:

OutputNode 2: started (mysql-5.7.22 ndb-7.6.6)

Để thoát khỏi loại bảng điều khiển quản lý quitvà sau đó nhấn ENTER.

Bảng điều khiển 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 lý cụm và dữ liệu của nó, bao gồm tạo bản sao lưu trực tuyến. Để biết thêm thông tin, hãy tham khảo ý kiến tài liệu MySQL chính thức.

Tại thời điểm này, bạn đã hoàn toàn kiểm tra cài đặt MySQL Cluster của mình. 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 cụm MySQL

Để chứng minh chức năng của cluster, hãy tạo một bảng mới bằng cách sử dụng công cụ NDB và chèn một số dữ liệu mẫu vào nó. Lưu ý rằng để 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 cluster.

Đầu tiên, hãy tạo một cơ sở dữ liệu có tên clustertest với lệnh:

CREATE DATABASE clustertest;

Tiếp theo, chuyển sang cơ sở dữ liệu mới:

USE clustertest;

Bây giờ, tạo một bảng đơn giản gọi là test_table như thế này:

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

Chúng tôi đã chỉ định rõ ràng công cụ ndbcluster để sử dụng cụm.

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

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

Để xác minh rằng dữ liệu đã được chèn vào, 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ừ một ndbcluster bảng, tải cụm cân bằng truy vấn giữa tất cả các nút dữ liệu có sẵn. Điều này cải thiện sự ổn định và hiệu suất của việc cài đặt cơ sở dữ liệu MySQL của bạn.

Bạn cũng có thể đặt công cụ lưu trữ mặc định thành ndbcluster bên trong my.cnf tệp mà chúng tôi đã 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 ENGINE tùy chọn khi tạo bảng. Để tìm hiểu thêm, hãy tham khảo MySQL Hướng dẫn tham khảo.

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chứng minh làm thế nào để thiết lập và cấu hình một cụm MySQL trên Ubuntu 18.04 máy chủ. Điều quan trọng cần lưu ý là đây là một kiến ​​trúc tối ưu, được sử dụng để chứng minh quy trình cài đặt, và có nhiều tùy chọn nâng cao và các tính năng đáng học trước khi triển khai MySQL Cluster trong sản xuất (ví dụ, thực hiện sao lưu). Để tìm hiểu thêm, hãy tham khảo ý kiến ​​của quan chức Tài liệu MySQL Cluster.

0