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

Tăng hiệu suất bằng cách sử dụng tính năng đọc ghi chia tách lưu lượng cơ sở dữ liệu với Moodle 3.9

Moodle là Hệ thống Quản lý Học tập rất nổi tiếng nhằm giúp các tổ chức giáo dục tổ chức các hoạt động học tập trực tuyến của họ. Như bạn có thể tưởng tượng, với sự thay đổi trực tuyến vào năm 2020 do COVID-19 gây ra, các hệ thống như vậy trở nên rất phổ biến và tải mà các hệ thống phải xử lý đã tăng lên đáng kể. Nhiều quản trị viên đang tự hỏi làm thế nào để cải thiện hiệu suất của cơ sở dữ liệu sao lưu cài đặt Moodle. May mắn thay, nếu bạn đang chạy Moodle 3.9 trở lên, bạn có một số tùy chọn tích hợp có thể giúp bạn tăng hiệu suất. Trong bài đăng trên blog này, chúng tôi sẽ hướng dẫn bạn cách thực hiện.

Trước hết, chúng tôi giả định rằng bạn cài đặt Moodle với một nút cơ sở dữ liệu duy nhất. Hãy xem các bước bạn có thể muốn thực hiện để cải thiện hiệu suất của cơ sở dữ liệu Moodle của mình. Tất nhiên, tất cả các bước mà chúng tôi giải thích ở đây có thể được thực hiện bằng tay. Chúng tôi sẽ sử dụng ClusterControl vì chúng tôi coi trọng thời gian của mình.

Giả sử bạn đã cài đặt ClusterControl, bước đầu tiên sẽ là nhập một nút cơ sở dữ liệu hiện có.

Kết nối SSH sử dụng khóa không mật khẩu phải có sẵn. Chúng tôi đã thiết lập nó làm người dùng root với khóa SSH nằm trong /root/.ssh/id_rsa.

Ở bước tiếp theo, chúng tôi đã xác định siêu người dùng và mật khẩu của nó. Chúng tôi cũng đã bật truy vấn information_schema (vì chúng tôi biết rằng chúng tôi không có hàng chục nghìn bảng) và cả hai tùy chọn tự động khôi phục để ClusterControl có thể khôi phục cơ sở dữ liệu của chúng tôi nếu cần.

Sau giây lát, cơ sở dữ liệu của chúng tôi hiển thị trên danh sách các cụm:

Bây giờ, chúng ta có thể bắt đầu mở rộng cụm của mình bằng cách thêm nhiều nô lệ hơn. Chúng tôi nên đảm bảo rằng cái chính đã bật nhật ký nhị phân. Nếu không, nó có thể được thực hiện từ ClusterControl. Xin lưu ý rằng việc bật nhật ký nhị phân yêu cầu khởi động lại, vì vậy bạn có thể muốn thực hiện việc này vào thời điểm tải thấp nhất và lý tưởng nhất là cung cấp một số thông báo cho người dùng nền tảng Moodle của bạn.

Chúng tôi đã chuyển IP (hoặc tên máy chủ) của nút mà chúng tôi muốn sử dụng như một nô lệ. ClusterControl sẽ cung cấp cho nó dữ liệu từ nút chính của chúng tôi. Chúng tôi cũng có thể sử dụng bản sao lưu để cung cấp nô lệ nhưng cho đến nay chúng tôi chưa thực hiện bất kỳ bản sao lưu nào bằng ClusterControl.

Quá trình cài đặt sẽ mất vài phút, chúng ta có thể theo dõi tiến trình bằng cách xem tại nhật ký công việc trong ClusterControl.

Việc thêm nô lệ vào hệ thống của chúng tôi không tạo ra bất kỳ sự khác biệt nào. Chúng tôi phải yêu cầu Moodle thực sự bắt đầu sử dụng nó. May mắn thay, Moodle có một tính năng cho phép bạn định cấu hình các nút nô lệ và sau đó các ghi “an toàn” sẽ được chuyển hướng đến chúng, giảm tải cho nút chính và cải thiện hiệu suất tổng thể.

Trong tệp cấu hình (config-dist.php), bạn có thể thấy phần ‘chỉ đọc’ của mảng ‘dboptions’. Tại nơi đó, bạn có thể xác định một hoặc nhiều nút phụ sẽ được Moodle sử dụng để gửi lưu lượng truy cập.

  'readonly' => [          // Set to read-only slave details, to get safe reads

                            // from there instead of the master node. Optional.

                            // Currently supported by pgsql and mysqli variety classes.

                            // If not supported silently ignored.

     'instance' => [        // Readonly slave connection parameters

       [

         'dbhost' => '10.0.0.132',

         'dbport' => '',    // Defaults to master port

         'dbuser' => '',    // Defaults to master user

         'dbpass' => '',    // Defaults to master password

       ],

       [...],

     ],

Như bạn có thể thấy, chúng tôi có thể thêm nhiều máy chủ nô lệ, cho phép chúng tôi truyền tải các lần đọc an toàn trên nhiều nút mà bạn có thể dễ dàng cung cấp từ ClusterControl và giảm tải cho cụm.

Nếu bạn quan tâm đến các thiết lập cơ sở dữ liệu nâng cao hơn, có tính khả dụng cao hơn cho Moodle, chúng tôi có một số bài đăng trên blog về chủ đề này mô tả cách bạn có thể sử dụng Moodle với Galera Cluster làm chương trình phụ trợ. Chúng tôi cũng đã mô tả các kỹ thuật mở rộng quy mô nâng cao hơn cho Moodle, liên quan đến cân bằng tải ProxySQL.

Hãy cho chúng tôi biết suy nghĩ và kinh nghiệm của bạn khi làm việc với Moodle.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển từ Cơ sở dữ liệu Oracle sang MariaDB - Một bước tiến sâu

  2. Cách trừ một năm khỏi một ngày trong MariaDB

  3. MariaDB NULLIF () Giải thích

  4. Kiểm tra tự động quá trình nâng cấp cho PXC / MariaDB Galera Cluster

  5. Cách khắc phục việc xóa dữ liệu ngẫu nhiên trong MySQL &MariaDB