Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách di chuyển Moodle độc ​​lập sang thiết lập có thể mở rộng cơ sở dữ liệu theo cụm

Học trực tuyến ngày nay đang nhanh chóng đạt được sức hút kể từ khi đại dịch COVID-19 xảy ra. Hầu hết các cơ sở giáo dục đang phải thiết lập nền tảng cho việc học trực tuyến và hầu hết học sinh đều phải truy cập vào nền tảng để học và tương tác với giáo viên. Moodle là một trong những hệ thống quản lý học tập mã nguồn mở cho việc học trực tuyến,

Nền tảng Moodle có tính khả dụng cao là điều bắt buộc đối với các tổ chức, nếu không nó sẽ làm gián đoạn và ngừng quá trình học trực tuyến. Với nhiều sinh viên truy cập nền tảng cùng một lúc, tính khả dụng và khả năng mở rộng là rất quan trọng. Tại thời điểm này, các tổ chức giáo dục cần phải có kiến ​​thức và kiến ​​trúc nền tảng có tính khả dụng và khả năng mở rộng cao của Moodle. Nếu bạn muốn biết thêm về cách di chuyển Moodle độc ​​lập sang Cơ sở dữ liệu được phân nhóm có thể mở rộng, bạn có thể làm theo hướng dẫn này.

Moodle ở chế độ "Điểm lỗi duy nhất"

Nền tảng Moodle độc ​​lập bao gồm một máy chủ và mọi thứ được cài đặt trên máy chủ (cơ sở dữ liệu và máy chủ ứng dụng ở một nơi). Hoặc bạn có 2 máy chủ, dành cho máy chủ ứng dụng và máy chủ cơ sở dữ liệu như mô tả trong hình dưới đây:

Cả hai kiến ​​trúc đều thiếu tính khả dụng và khả năng mở rộng của dịch vụ. Từ góc độ tính khả dụng, bạn có thể tưởng tượng, nếu máy chủ gặp sự cố, bạn không có bất kỳ dịch vụ nào đang chạy trên máy chủ. Nếu máy chủ ứng dụng bị treo hoặc cơ sở dữ liệu bị treo, dịch vụ sẽ ngừng hoạt động.

Mặt khác, khả năng mở rộng cũng rất quan trọng, nhiều người dùng hơn đồng nghĩa với nhiều lưu lượng truy cập hơn và nhiều kết nối hơn đến cơ sở dữ liệu. Khả năng mở rộng có thể đạt được bằng cách thêm nhiều tài nguyên hơn trong các máy chủ hoặc thêm nhiều máy chủ hơn để lưu lượng truy cập có thể được phân phối trên các nút, nếu không, hiệu suất sẽ bị ảnh hưởng.

Chuyển đổi Từ Cơ sở dữ liệu Độc lập sang Cơ sở dữ liệu Nhóm

Việc di chuyển nút độc lập của bạn sang cơ sở dữ liệu nhóm có thể mất một chút thời gian và đây không phải là một hoạt động không có rủi ro. Dưới đây là các bước chúng tôi cần thực hiện:

  1. Bạn cần sao lưu (sử dụng mysqldump hoặc xtrabackup).
  2. Cài đặt cơ sở dữ liệu trong tất cả các nút cơ sở dữ liệu bản sao.
  3. Khôi phục bản sao lưu vào các nút bản sao.
  4. Kết nối nút bản sao với nút chính.
  5. Thiết lập ProxySQL và lưu trữ trước các nút cơ sở dữ liệu
  6. Định cấu hình bộ cân bằng tải ProxySQL (ví dụ:tạo nhóm máy chủ, máy chủ, người dùng).
  7. Trỏ cấu hình Moodle tới Địa chỉ IP ảo mới.

Cách ClusterControl có thể hỗ trợ

ClusterControl là phần mềm quản lý cơ sở dữ liệu giúp bạn triển khai, giám sát và quản lý cơ sở dữ liệu nguồn mở của mình. Chúng tôi sẽ cố gắng chuyển từ kiến ​​trúc Moodle độc ​​lập như được hiển thị bên dưới:

Đối với kiến ​​trúc cơ sở dữ liệu nhóm dựa trên bản sao:

Bạn sẽ cần ít nhất hai máy chủ cho cơ sở dữ liệu và hai máy chủ cho cơ sở dữ liệu proxy (chúng tôi sẽ sử dụng ProxySQL làm bộ cân bằng tải) và dịch vụ đủ điều kiện để cung cấp Địa chỉ IP ảo.

Giả sử chúng ta có cơ sở dữ liệu MySQL độc lập đang chạy:

Thêm nhiều nút cơ sở dữ liệu trong ClusterControl thực sự đơn giản, bạn có thể truy cập Menu cụm ở bên phải cụm của bạn và Thêm Nô lệ sao chép.

Nó sẽ hiển thị hộp thoại mới để Thêm Nô lệ mới, bạn chỉ cần điền địa chỉ IP và sau đó chỉ cần nhấp vào nút Thêm nô lệ mới như được hiển thị bên dưới:

Như bạn có thể thấy từ ảnh chụp màn hình, có thể bắt nguồn nô lệ với dữ liệu từ một bản sao lưu hiện có. Điều này là để tránh phát trực tuyến tất cả dữ liệu từ cơ sở dữ liệu chính đang chạy. Sau khi cơ sở dữ liệu nô lệ được triển khai, nó sẽ được mồi bằng dữ liệu chính và ClusterControl sẽ đảm bảo rằng máy chủ nô lệ đồng bộ hóa với cơ sở dữ liệu chính.

Bạn có thể lặp lại bước này để thêm một nút bản sao khác.

Kiến trúc mới sẽ như hình dưới đây:

Bước tiếp theo là thêm bộ cân bằng tải trước cơ sở dữ liệu. Một trình cân bằng tải như ProxySQL rất hữu ích vì nó có thể chuyển hướng các yêu cầu ghi tới cái chính và các yêu cầu đọc tới các nô lệ. Theo cách này, bạn đang phân phối lưu lượng Moodle. Lưu ý rằng cũng có thể thực hiện thiết lập tổng thể chính dựa trên Galera Cluster cho MySQL hoặc MariaDB.

Chúng tôi sẽ sử dụng hai bộ cân bằng tải để có tính khả dụng cao. Bạn có thể đi tới Quản lý -> Bộ cân bằng tải trong cụm.

Bạn cần điền một số thông tin như địa chỉ máy chủ, mật khẩu quản trị và giám sát, thêm người dùng tâm trạng vào ProxySQL, sau đó chỉ cần nhấp vào Triển khai ProxySQL. Nó sẽ kích hoạt một công việc mới. Lặp lại triển khai trên nút cân bằng tải khác.

Điều cuối cùng là định cấu hình keepalived cho các bộ cân bằng tải. Đi tới Quản lý -> Cân bằng tải, có tab cho Keepalived

Bạn chỉ cần chọn loại cân bằng tải và thêm loại cân bằng tải . Điền vào giao diện Mạng và Địa chỉ IP Ảo. Nhấp vào nút Triển khai Keepalived.

Kiến trúc cuối cùng của cơ sở dữ liệu Moodle có tính khả dụng cao được phân nhóm của chúng tôi sẽ như hình dưới đây:

Bạn chỉ cần thay đổi cấu hình kết nối trong config.php trỏ dbhost đến Địa chỉ IP ảo mà chúng tôi đã định cấu hình.

Sau khi tất cả được chuyển sang Cơ sở dữ liệu được phân cụm, bạn có thể muốn đặt một số giám sát trong cơ sở dữ liệu Moodle của mình, bạn có thể làm theo hướng dẫn này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, Nối hai cột

  2. So sánh ngày tháng trong MySQL

  3. Làm cách nào để lấy ID của nhiều hàng được chèn trong MySQL?

  4. Tìm hiểu về Quyền cấp bảng MySQL

  5. Đã vượt quá thời gian chờ nhận được Khóa; thử bắt đầu lại giao dịch mặc dù tôi không sử dụng giao dịch