Lưu trữ thẻ: #mariadb

Giới thiệu về Galera Cluster và cách cài đặt MySQL Galera Cluster trên Ubuntu 22.04

Galera Cluster là một giải pháp đồng bộ hóa dữ liệu mạnh mẽ dành cho MySQL, giúp tạo ra một hệ thống MySQL phân tán với tính nhất quán cao giữa các node trong cluster. Galera Cluster được sử dụng phổ biến trong các môi trường yêu cầu tính sẵn sàng cao, cho phép quản lý nhiều node cùng lúc mà vẫn đảm bảo tính toàn vẹn của dữ liệu.
Trong bài viết này Long Vân sẽ giới thiệu và hướng dẫn các bước để cài đặt cấu hình Galera Cluster cho MySQL, bao gồm:

  • Giới thiệu về Galera Cluster.
  • Sự khác nhau giữa Galera Cluster và mô hình Replication thường.
  • Hướng dẫn cài đặt Galera Cluster.
  • Thêm node Slave

I. Giới thiệu MySQL Galera Cluster

MySQL Galera Cluster là một hệ thống Multi-Master mà trên đó tất cả node đều có thể đọc và ghi dữ liệu tại mọi thời điểm. Client có thể kết nối tới mọi node, dữ liệu sẽ được tự động đồng bộ giữa các node, đồng thời sẽ đồng bộ sang node mới khi mới được thêm vào Cluster.

Một cụm Galera cần có ít nhất 3 node và ưu tiên chạy với số lượng node lẻ để đảm bảo tính toàn vẹn khi xảy ra sự cố với một trong các node.

II .Sự khác nhau giữa Galera Cluster với mô hình Mysql Replicate thường.

  1. Sơ đồ minh họa 
  2. Sự khác nhau
    • MySQL Replication (Hình bên trái)
      • Mô hình Master-Slave: Dữ liệu từ máy chủ chính (Master) sẽ được ghi vào một tệp log (Binlog). Sau đó, dữ liệu này được gửi tới máy chủ phụ (Slave) thông qua các luồng sao chép (IO Thread, SQL Thread).
      • Chế độ ghi và đọc:
        • Master: Cho phép thực hiện cả đọc và ghi dữ liệu.
        • Slave: Chỉ cho phép đọc dữ liệu (không ghi).
      • Nhược điểm chính của mô hình này là có độ trễ trong việc sao chép dữ liệu và chỉ có một máy chủ chính (Master) thực hiện các tác vụ ghi. Điều này có thể gây ra hiện tượng nghẽn cổ chai nếu có quá nhiều yêu cầu ghi vào Master.
    • Galera Cluster (Hình bên phải)

      • Mô hình Multi-Master: Mỗi node trong cụm Galera đều có thể thực hiện cả đọc và ghi dữ liệu. Các giao dịch sau khi được thực hiện sẽ được đồng bộ hóa tức thời giữa các node bằng cách sử dụng API wsrep và cơ chế giao tiếp nhóm (group communication).
      • Chế độ ghi và đọc:
        • Tất cả các node đều có khả năng đọc/ghi (read/write).
      • Galera sử dụng phương pháp đồng bộ dữ liệu đồng thời trên tất cả các node, giúp loại bỏ độ trễ và cho phép ghi vào bất kỳ node nào mà không lo xung đột hoặc mất dữ liệu. Mô hình này đảm bảo tính nhất quán cao hơn so với MySQL Replication.
    • Tóm lại
      • MySQL Replication chỉ có một máy chủ chính (Master) thực hiện các tác vụ ghi và có độ trễ khi sao chép dữ liệu sang máy chủ phụ (Slave).
      • Galera Cluster cho phép mọi node đều có thể ghi và dữ liệu được đồng bộ hóa đồng thời, giúp giảm thiểu các vấn đề về xung đột và độ trễ.

III. Hướng dẫn cài đặt Mysql Galera Cluster

  1. Chuẩn bị:
    • Ở bài viết này Long Vân sẽ sử dụng 4 VPS được cài đặt sẵn Os Ubuntu 22.04. Trong đó
      • 1 server làm Controller , cài đặt Galera Manager
        • 192.168.70.188 ( lvsnodecontroller)
      • 3 server để cấu hình Mysql Galera Cluster
        • 192.168.70.156 ( lvsnode1)
        • 192.168.70.159 ( lvsnode2)
        • 192.168.70.168 ( lvsnode3)
  2. Tiến hành cài đặt:
    • Cập nhật lại hệ thống cho cả 4 node
      sudo apt-get update
      sudo apt-get upgrade 
    • Trên Server Controller ( lvsnodecontroller)
      • Cài đặt trình quản lí Galera Manager để quản lí các lvsnode
        wget https://galeracluster.com/galera-manager/gm-installer
        chmod +x gm-installer
        ./gm-installer install 

        • Chọn a để accept cài đặt .
        • Điền thông tin user admin và password (cần đặt password ở bước này sau đó mới đổi password để tránh không login được ).
        • Điền thông tin server làm controller -> nhấn Enter 
        • Chạy lại cập nhật hệ thống để apply Galera-Manager vừa khởi  tạo
          sudo apt-get update
          sudo apt-get upgrade 
        • Truy cập trình duyệt để tạo Galera Cluster với user và password đã tạo ở trước đó 
        • Lúc này, quản trị viên có thể thực hiện các thao tác trên giao diện controller như tạo Cluster hoặc thêm node vào Cluster.
      • Tạo Cluster:
        • Trong giao diện Galera Controller, chọn ADD CLUSTER -> Deloy cluster on user-provided hosts
        • Nhập thêm thông tin tên Cluster và chọn cơ sở dữ liệu muốn sử dụng ở đây Long Vân sẽ chạy với mysql8.0. Chọn host system là hệ điều hành đang chạy.
        • Click chọn I have added public key to /root/.ssh/authorized_keys file on all nodes
        • Copy đoạn key trên và thêm vào cấu hình /root/.ssh/authorized_keys của các node còn lại ( lvsnode1, lvsnode2, lvsnode3 ).
        • Trên trình duyệt Galena Controller tiếp tục chọn ADD NODE. Thêm thông Node cần thêm –>CHECK ACCESS –> DEPLOY ( ở đây thêm lvsnode1 node đầu tiên vào).

        • Thêm tiếp các node còn lại lvsnode2 và lvsnode3 tương tự như làm ở lvsnode1.
        • Quá trình thêm node hoàn tất.
    • Kiểm tra quá trình đồng bộ giữa các lvsnode trên Cluster
      • Kiểm tra hoạt động của LongVan_Cluster vừa tạo giữa các lvsnode
      • Kiểm tra tính đồng bộ dữ liệu trên database
      • Tiến hành tạo database có tên lvsdemo ở lvsnode1 và kiểm tra đồng bộ ở lvsnode2 và lvsnode3 (như hình trên).

IV. Thêm node Slave vào trong Galera Cluster.

  1. Trong Galera Cluster, bạn có thể kết nối một node không đồng bộ (async slave) vào cụm. Điều này hữu ích vì vài lý do:

    • Chuyển tải truy vấn : Nếu cụm của bạn phải xử lý các truy vấn  hoặc phân tích dài và nặng, nó có thể làm chậm cả hệ thống. Bằng cách gửi các truy vấn này đến một máy chủ async slave riêng, bạn ngăn không cho tải này ảnh hưởng đến Galera Cluster.

    • Sao lưu trực tiếp: Async slave cũng có thể được sử dụng như một sao lưu từ xa, giúp tạo một bản sao dữ liệu trực tiếp để khôi phục khi gặp sự cố.

  2. Các bước thêm node Async
    • Thêm 1 Server  cho quá trình thêm Node Async ( Slave )
      • 192.168.70.180 ( lvsnode4 )
    • Trên node lvsnode4
      • Cài đặt galera-4 mysql-wsrep-8.0
        • Trước tiên, cần đảm bảo rằng khóa Galera Cluster GPG đã được cài đặt:

          apt-key adv --keyserver keyserver.ubuntu.com --recv 8DA84635 

        • Thêm thư viện souce list
          vi /etc/apt/sources.list.d/galera.list 
          deb https://releases.galeracluster.com/galera-4.20/ubuntu jammy main
          deb https://releases.galeracluster.com/mysql-wsrep-8.0.39-26.20/ubuntu jammy main 
        • Thêm kho lưu trữ
          vi /etc/apt/preferences.d/galera.pref 
          Package: *
          Pin: origin releases.galeracluster.com
          Pin-Priority: 1001 
        • Chạy lại update để cập nhật thư viện và kho lưu trữ vừa thêm
          sudo apt-get update 

        • Cài đặt galera-4 mysql-wsrep-8.0
          sudo apt-get install galera-4 mysql-wsrep-8.0 
        • Thêm cấu hình vào file conf mysql vừa đặt
          vi /etc/mysql/mysql.conf.d/mysqld.cnf 
          gtid_mode=ON
          log_bin=binlog
          log_slave_updates=1
          enforce_gtid_consistency
          expire_logs_days=7
          server_id=4
          binlog_format=ROW
          slave_net_timeout=60 
        • Khởi động lại Mysql để lưu lại cấu hình
          systemctl restart mysql 
    • Trên node lvsnode1
      • Thêm cấu hình vào file conf mysql
        vi /etc/mysql/mysql.conf.d/mysqld.cnf 
        gtid_mode=ON
        log_bin=binlog
        log_slave_updates=1
        enforce_gtid_consistency
        expire_logs_days=7
        server_id=1
        binlog_format=ROW 
      • Khởi động lại Mysql để lưu lại cấu hình
        systemctl restart mysql 
      • Tạo user replica cho node lvsnode4
        mysql
        CREATE USER 'replica'@'192.168.70.180' IDENTIFIED WITH 'mysql_native_password' BY 'P@ssw0rd321';
        GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.70.180';
        FLUSH PRIVILEGES;
        exit 

      • Trên node lvsnode4
        • Cấu hình replicate với user vừa tạo ở node lvsnode1
          mysql
          CHANGE MASTER TO MASTER_HOST = '192.168.70.156', MASTER_PORT = 3306, MASTER_USER = 'replica', MASTER_PASSWORD = 'P@ssw0rd321', MASTER_AUTO_POSITION = 1;
          START SLAVE;
          SHOW SLAVE STATUSG; 

      • Kiểm tra đồng bộ giữa server Master ( lvsnode1) và server Slave ( lvsnode4 ).
        • Đứng từ server Master (lvsnode1) tạo database với tên lvsdemo1  để xem quá trình đồng bộ từ Master (lvsnode1) xuống Slave (lvsnode4).
        • Ngược lại từ server Slave (lvsnode4) tạo database với tên lvsdemo2  để xem quá trình có đồng bộ ngược từ Slave ( lvsnode4 ) về Master ( lvsnode1).
        • Kết quả cho thấy dữ liệu phát sinh trên server Slave sẽ không đồng bộ ngược lại.

 

Như vậy qua bài viết này Long Vân đã giúp các bạn tìm hiểu sơ lược về Galera Cluster cũng như cách cài đặt Mysql Galera Cluster với cấu hình 3 node trên Galera-Manager là như thế nào. Chúc các bạn thành công .


Hướng dẫn hạ cấp phiên bản MySQL/MariaDB trên DirectAdmin

I. Tổng quan

Trong bài viết này Long Vân sẽ hướng dẫn hạ version mysql MariaDB trên DirectAdmin đơn giản và nhanh chóng. Để tránh rủi ro Quý Khách nên sao lưu database để tránh trường hợp xấu nhất xảy ra khiến dữ liệu bị lỗi.

II. Hướng dẫn hạ cấp MariaDB trên DirectAdmin

Để hạ version Mysql/MariaDB trên DirectAdmin chúng ta cần thực hiện các bước sau

  1. Bước 1: SSH vào server
    Quý khách có thể tham khảo bài viết hướng dẫn sau
    Hướng dẫn đăng nhập vào VPS Linux với giao thức SSH
  2. Bước 2: Kiểm tra phiên bản MySQL/MariaDB đang sử dụng hiện tại, bằng lệnh
    mysql -V
    Theo ví dụ trên hình, phiên bản đang cài hiện tại là 10.6.16.
  3. Bước 3: Hạ cấp MariaDB trên DirectAdmin với Custombuild
    • Chúng ta sẽ tiến hành xóa hoàn toàn phiên bản hiện tại đang có và thực hiện bước sao lưu trước để tránh mất dữ liệu database ở thư mục /var/lib/mysql
    • Sử dụng lệnh để tắt dịch vụ mysql và sao lưu thư mục /var/lib/mysql thành thư mục /var/lib/mysql.bk
      # perl -pi -e 's/mysqld=ON/mysqld=OFF/' /usr/local/directadmin/data/admin/services.status
      # systemctl stop mysql
      # mv /var/lib/mysql /var/lib/mysql.bk
      # cd /usr/local/directadmin/custombuild
    • Cấu hình  điều chỉnh cấu hình phiên bản (Bạn có thể thay đổi thành phiên bản khác nếu muốn):
      # ./build set mariadb 10.5
      # ./build set mysql_inst mariadb   (Sử dụng hệ quản trị cơ sở dữ liệu là MariaDB)
      # ./build set mysql_backup no    (Tắt sao lưu database tự động vì hiện tại MariaDB đã không còn hoạt động)
    • Cập nhật lại custombuild script và bắt đầu quá trình cài lại sau khi cài xong, sẽ có thông tin mật khẩu user database root kèm mật khẩu.
    • Quá trình cài lại MariaDB cũng không mất quá nhiều thời gian. Sau khi cài xong chúng ta sử dung tiếp lệnh mariadb -V hoặc mysqld -V để xem phiên bản mới vừa được cài đặt nhé.
    • Phiên bản MariaDB được cài đặt là 10.5.24, đã được hạ cấp MariaDB 10.6.16 về phiên bản MariaDB 10.5.24

Như vậy Long Vân đã hoàn thành hướng dẫn Quý Khách cách hạ version MySQL/MariaDB trên DirectAdmin , chúc Quý Khách thành công!

Hướng dẫn cài đặt XAMPP trên Windows

I. XAMPP là gì?

    •   XAMPP viết tắt của Cross-Platform, được phát triển bởi Apache Friends. Đây là một ứng dụng máy chủ web mã nguồn mở và hoàn toàn miễn phí giúp các nhà phát triển tạo và thử nghiệm dụng ngay trên máy chủ web cục bộ. Xampp chứa các ứng dụng như Apache HTTP Server, MariaDB, PHP và Perl có thể được cài đặt dể dàng trên Windows, Linux hoặc MacOS.

   •   Trong bài viết này, Long Vân sẽ hướng dẫn Quý khách cách cài đặt XAMPP trên hệ điều hành Windows.

II. Hướng dẫn cài đặt XAMPP trên Windows

  1. Bước 1: Tải xuống XAMPP Truy cập trang web chính thức của XAMPP tại https://www.apachefriends.org/download.html. Tại đây, bạn có thể chọn phiên XAMPP mong muốn cho môi trường Windows và nhấn download để tải về.
  2. Bước 2: Cài đặt XAMPP
    • Chạy file cài đặt đã download về.
    • Nhấn nút Run để bắt đầu quá trình cài đặt.
    • Chọn các ứng dụng thành phần mong muốn cài đặt (MySQL, Perl, Tomcat,..) và nhấn Next.
    • Nhập đường dẫn cho nơi bạn muốn cài đặt XAMPP và nhấn nút Next.
    • Chọn ngôn ngữ mà bạn muốn sử dụng và nhấn nút “OK”.
    • Nhấn nút Install để bắt đầu quá trình cài đặt.
    • Sau khi tải xong nhấn finish để hoàn tất .

III. Cách cấu hình XAMPP trên Windows

  • Trong cửa sổ làm việc XAMPP Control Panel, trong phần Modules, bạn sẽ tìm thấy tất cả các module ứng dụng có sẵn. Để chạy một module, chỉ nhận nhấn vào Start.
  • Khi bạn chạy một module như Apache và MySQL, Xampp cũng sẽ hiển thị số ID tiến trình (PID) và số cổng TCP/IP (Port) tương ứng. Có thể nhấp vào nút Admin để có quyền truy cập vào trang tổng quan quản trị cho từng service và xác minh rằng mọi thứ đang hoạt động chính xác.
  • Lưu ý: trong trường hợp các port mặc định của module bị chiếm dụng bởi một ứng dụng khác, module có thể bị lỗi khi khởi chạy.
  • Nút Config để cấu hình mô-đun nào sẽ tự động khởi động khi bạn khởi chạy XAMPP.

  • Nút Netstart sẽ cung cấp cho bạn danh sách các service hiện đang truy cập mạng, bao gồm địa chỉ TCP/IP và cổng, cũng nhự thông tin ID tiến trình.
  • Cuối cùng, bạn sẽ thấy phần nhật ký, nơi bạn có thể xem qua những gì sẽ xảy ra mỗi khi bạn khởi động mô-đun hoặc thay đổi cài đặt. 
  • Để kiểm tra hoạt động của module Apache, bạn có thể truy cập http://localhost/ hoặc địa chỉ ip để vào kiểm tra.

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách cài đặt XAMPP trên dịch vụ Windows của Long Vân. Chúc Quý khách thành công!