MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mẹo quản lý cấu hình cơ sở dữ liệu của bạn

Trong năm bài đăng trước đây của loạt bài blog, chúng tôi đã đề cập đến việc triển khai phân cụm / nhân bản (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL), quản lý và giám sát cơ sở dữ liệu và cụm hiện có của bạn, giám sát hiệu suất và tình trạng, cách thiết lập của bạn rất có sẵn thông qua HAProxy và MaxScale và trong bài đăng cuối cùng, cách chuẩn bị cho các thảm họa bằng cách lên lịch sao lưu.

Kể từ ClusterControl 1.2.11, chúng tôi đã thực hiện các cải tiến lớn đối với trình quản lý cấu hình cơ sở dữ liệu. Phiên bản mới cho phép thay đổi các tham số trên nhiều máy chủ cơ sở dữ liệu cùng lúc và, nếu có thể, thay đổi giá trị của chúng trong thời gian chạy.

Chúng tôi đã giới thiệu Quản lý cấu hình MySQL mới trong một bài đăng trên blog Mẹo &Thủ thuật, nhưng bài đăng trên blog này sẽ đi sâu hơn và bao gồm Quản lý cấu hình trong ClusterControl cho MySQL, PostgreSQL và MongoDB.

Quản lý cấu hình ClusterControl

Bạn có thể tìm thấy giao diện quản lý cấu hình trong Quản lý> Cấu hình. Từ đây, bạn có thể xem hoặc thay đổi cấu hình của các nút cơ sở dữ liệu và các công cụ khác mà ClusterControl quản lý. ClusterControl sẽ nhập cấu hình mới nhất từ ​​tất cả các nút và ghi đè các bản sao đã tạo trước đó. Hiện tại không có dữ liệu lịch sử nào được lưu giữ.

Nếu bạn muốn chỉnh sửa thủ công các tệp cấu hình trực tiếp trên các nút, bạn có thể nhập lại cấu hình đã thay đổi bằng cách nhấn nút Nhập.

Và cuối cùng nhưng không kém phần quan trọng:bạn có thể tạo hoặc chỉnh sửa các mẫu cấu hình. Các mẫu này được sử dụng bất cứ khi nào bạn triển khai các nút mới trong cụm của mình. Tất nhiên, bất kỳ thay đổi nào được thực hiện đối với các mẫu sẽ không được áp dụng trở lại cho các nút đã được triển khai đã được tạo bằng các mẫu này.

Quản lý cấu hình MySQL

Như đã đề cập trước đây, quản lý cấu hình MySQL đã được đại tu hoàn toàn trong ClusterControl 1.2.11. Giao diện bây giờ trực quan hơn. Khi thay đổi các tham số ClusterControl kiểm tra xem tham số có thực sự tồn tại hay không. Điều này đảm bảo cấu hình của bạn sẽ không từ chối khởi động MySQL do các tham số không tồn tại.

Từ Quản lý -> Cấu hình, bạn sẽ tìm thấy tổng quan về tất cả các tệp cấu hình được sử dụng trong cụm đã chọn, bao gồm cả các nút cân bằng tải.

Chúng tôi sử dụng cấu trúc cây để dễ dàng xem các máy chủ và các tệp cấu hình tương ứng của chúng. Ở dưới cùng của cây, bạn sẽ tìm thấy các mẫu cấu hình có sẵn cho cụm này.

Thay đổi thông số

Giả sử chúng ta cần thay đổi một tham số đơn giản như số lượng kết nối tối đa được phép (max_connections), chúng ta có thể chỉ cần thay đổi tham số này trong thời gian chạy.

Trước tiên, hãy chọn máy chủ để áp dụng thay đổi này.

Sau đó chọn phần bạn muốn thay đổi. Trong hầu hết các trường hợp, bạn sẽ muốn thay đổi phần MYSQLD. Nếu bạn muốn thay đổi bộ ký tự mặc định cho MySQL, bạn sẽ phải thay đổi bộ ký tự đó trong cả MYSQLD và phần khách hàng.

Nếu cần, bạn cũng có thể tạo một phần mới bằng cách chỉ cần nhập tên phần mới. Thao tác này sẽ tạo một phần mới trong my.cnf.

Khi chúng tôi thay đổi một tham số và đặt giá trị mới của nó bằng cách nhấn “Tiếp tục”, ClusterControl sẽ kiểm tra xem tham số có tồn tại cho phiên bản MySQL này hay không. Điều này là để ngăn chặn bất kỳ tham số không tồn tại nào để chặn khởi tạo MySQL trong lần khởi động lại tiếp theo.

Khi chúng tôi nhấn “tiến hành” cho thay đổi max_connections, chúng tôi sẽ nhận được xác nhận rằng nó đã được áp dụng cho cấu hình và được đặt trong thời gian chạy bằng SET GLOBAL. Không bắt buộc phải khởi động lại vì max_connections là một tham số mà chúng tôi có thể thay đổi trong thời gian chạy.

Bây giờ, giả sử chúng ta muốn thay đổi kích thước vùng đệm, điều này sẽ yêu cầu khởi động lại MySQL trước khi nó có hiệu lực:

Và như mong đợi, giá trị đã được thay đổi trong tệp cấu hình, nhưng bắt buộc phải khởi động lại. Bạn có thể thực hiện việc này bằng cách đăng nhập vào máy chủ theo cách thủ công và khởi động lại quy trình MySQL. Một cách khác để thực hiện việc này từ ClusterControl là sử dụng bảng điều khiển Nodes.

Khởi động lại các nút trong một cụm Galera

Bạn có thể thực hiện khởi động lại mỗi nút bằng cách chọn “Nút khởi động lại” và nhấn nút “Tiếp tục”.

Khi bạn chọn “Khởi động ban đầu” trên một nút Galera, ClusterControl sẽ làm trống thư mục dữ liệu MySQL và buộc sao chép đầy đủ theo cách này. Điều này rõ ràng là không cần thiết đối với một sự thay đổi cấu hình. Đảm bảo rằng bạn bỏ chọn hộp kiểm “ban đầu” trong hộp thoại xác nhận. Thao tác này sẽ dừng và khởi động MySQL trên máy chủ lưu trữ nhưng tùy thuộc vào khối lượng công việc và kích thước vùng đệm của bạn, điều này có thể mất một lúc vì MySQL sẽ bắt đầu chuyển các trang bẩn từ vùng đệm InnoDB sang đĩa. Đây là những trang đã được sửa đổi trong bộ nhớ nhưng không có trên đĩa.

Khởi động lại các nút trong cấu trúc liên kết MySQL Master-Slave

Đối với cấu trúc liên kết chủ-tớ của MySQL, bạn không thể chỉ khởi động lại từng nút. Trừ khi có thể chấp nhận được thời gian ngừng hoạt động của thiết bị chính, trước tiên bạn sẽ phải áp dụng các thay đổi cấu hình cho các nô lệ và sau đó thăng cấp một nô lệ trở thành chủ mới.

Bạn có thể đi qua từng nô lệ một và thực hiện “Nút khởi động lại” trên chúng.

Sau khi áp dụng các thay đổi cho tất cả nô lệ, hãy thăng cấp nô lệ trở thành chủ nhân mới:

Sau khi nô lệ đã trở thành nút chính mới, bạn có thể tắt và khởi động lại nút chính cũ để áp dụng thay đổi.

Nhập cấu hình

Bây giờ chúng ta đã áp dụng thay đổi trực tiếp trên cơ sở dữ liệu, cũng như tệp cấu hình, sẽ mất cho đến lần nhập cấu hình tiếp theo để xem thay đổi được phản ánh trong cấu hình được lưu trữ trong ClusterControl. Nếu bạn ít kiên nhẫn hơn, bạn có thể lên lịch nhập cấu hình ngay lập tức bằng cách nhấn nút “Nhập”.

Quản lý cấu hình PostgreSQL

Đối với PostgreSQL, Quản lý cấu hình hoạt động hơi khác với Quản lý cấu hình MySQL. Nói chung, bạn có cùng chức năng ở đây:thay đổi cấu hình, nhập cấu hình cho tất cả các nút và xác định / thay đổi mẫu.

Sự khác biệt ở đây là bạn có thể ngay lập tức thay đổi toàn bộ tệp cấu hình và ghi cấu hình này trở lại nút cơ sở dữ liệu.

Nếu các thay đổi được thực hiện yêu cầu khởi động lại, nút “Khởi động lại” sẽ xuất hiện cho phép bạn khởi động lại nút để áp dụng các thay đổi.

Quản lý cấu hình MongoDB

Quản lý cấu hình MongoDB hoạt động tương tự như Quản lý cấu hình MySQL:bạn có thể thay đổi cấu hình, nhập cấu hình cho tất cả các nút, thay đổi tham số và thay đổi mẫu.

Thay đổi cấu hình khá đơn giản, bằng cách sử dụng hộp thoại Thay đổi Tham số (như được mô tả trong phần "Thay đổi Tham số" ::

Sau khi thay đổi, bạn có thể thấy hành động sau sửa đổi do ClusterControl đề xuất trong hộp thoại "Nhật ký thay đổi cấu hình":

Sau đó, bạn có thể tiến hành khởi động lại các nút MongoDB tương ứng, mỗi nút một, để tải các thay đổi.

Lời kết

Trong bài đăng trên blog này, chúng tôi đã tìm hiểu về cách quản lý, thay đổi và tạo mẫu cho các cấu hình của bạn trong ClusterControl. Thay đổi các mẫu có thể giúp bạn tiết kiệm rất nhiều thời gian khi bạn chỉ triển khai một nút trong cấu trúc liên kết của mình. Vì mẫu sẽ được sử dụng cho các nút mới, điều này sẽ giúp bạn không phải thay đổi tất cả các cấu hình sau đó. Tuy nhiên, đối với các nút dựa trên MySQL và MongoDB, việc thay đổi cấu hình trên tất cả các nút trở nên tầm thường do giao diện Quản lý cấu hình mới.

Xin nhắc lại, gần đây chúng tôi đã đề cập đến việc triển khai phân cụm / nhân bản cùng một loạt (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL), quản lý và giám sát cơ sở dữ liệu và cụm hiện có của bạn, giám sát hiệu suất và tình trạng, cách thiết lập của bạn đạt hiệu quả cao có sẵn thông qua HAProxy và MaxScale và trong bài đăng cuối cùng, cách chuẩn bị cho các thảm họa bằng cách lên lịch sao lưu.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Schema Design - Nhiều tài liệu nhỏ hay ít tài liệu lớn hơn?

  2. MongoDB năm 2018 - Một năm được đánh giá

  3. Cách tốt nhất để phân trang ajax với MongoDb và Nodejs là gì?

  4. Redis hoặc Mongo để xác định xem một số có nằm trong phạm vi không?

  5. Lưu Tập hợp con của Bộ sưu tập MongoDB vào Bộ sưu tập khác