Bạn có thể đã nghe nói về MariaDB TX và bạn có thể tự hỏi nó là gì?
Có sự khác biệt giữa nó và MariaDB Server 10.3 không?
Trong bài đăng trên blog này, chúng tôi muốn cung cấp cho bạn cái nhìn tổng quan về MariaDB TX và nội dung của nó.
Tóm lại:MariaDB TX là một gói đăng ký trong đó MariaDB kết hợp nhiều dịch vụ để xây dựng một cơ sở dữ liệu giao dịch đầy đủ tính năng.
Cơ sở dữ liệu được sử dụng trong MariaDB TX là MariaDB Server 10.3, cũng bao gồm Galera Cluster để sao chép đồng bộ nhiều chủ. Đối với lớp proxy MariaDB TX sử dụng MaxScale.
Hãy tập trung một chút vào hai dịch vụ chính đó, xem xét các tính năng của chúng.
Máy chủ MariaDB 10.3
Nó phát triển thành một fork hoàn chỉnh về tính năng, thực hiện các chức năng mới trên những gì Oracle triển khai ở thượng nguồn. MariaDB 10.3 đi kèm với một danh sách các tính năng tập trung vào doanh nghiệp.MariaDB Server 10.3 không còn là bản thay thế cho MySQL nữa.
Khả năng tương thích với Oracle
MariaDB 10.3 đi kèm với SQL_MODE =ORACLE, cải thiện khả năng tương thích cho cú pháp SQL được sử dụng trong MariaDB 10.3 với Oracle PL / SQL. Các tính năng tương thích sau được bao gồm trong MariaDB TX:
- Tham số thủ tục được lưu trữ
- Cấu trúc quy trình được lưu trữ không theo ANSI
- Cú pháp con trỏ
- Cú pháp vòng lặp
- Khai báo biến
- Kế thừa Kiểu dữ liệu (% TYPE,% ROWTYPE)
- Ngoại lệ kiểu PL / SQL
- Từ đồng nghĩa với Các kiểu SQL Cơ bản (VARCHAR2, NUMBER,…)
Điều này cho phép dễ dàng di chuyển các ứng dụng của bạn từ cơ sở dữ liệu Oracle sang MariaDB TX.
Có thể thực thi tới 80% mã Oracle PL / SQL trên MariaDB mà không cần thay đổi; điều này ảnh hưởng nghiêm trọng đến đường cong học tập tổng thể và giảm thời gian cần thiết để viết lại mã kế thừa để chạy trên MariaDB TX.
Điều quan trọng cần lưu ý là MariaDB TX đi kèm với một gói hỗ trợ và bạn sẽ được tiếp cận với các chuyên gia tư vấn, những người sẽ có thể chia sẻ các phương pháp di chuyển tốt nhất với bạn hoặc thậm chí trực tiếp trợ giúp bạn trong quá trình lập kế hoạch để việc chuyển đổi trở nên ít rắc rối hơn.
Cải tiến trong SQL
MariaDB TX cũng mang đến cho chúng tôi những cải tiến về cú pháp SQL, bao gồm các tính năng mới sẽ rất hữu ích cho các nhà phát triển như các hàm Window hoặc các biểu thức bảng thông thường. Ngoài ra, các điều khoản con tạm thời có thể rất hữu ích vì chúng cho phép truy cập nhiều phiên bản của một hàng nhất định dựa trên một thời điểm cụ thể.
Tất cả các tính năng được liệt kê bên dưới:
- Các điều khoản phụ tạm thời (ví dụ:AS OF)
- Các hàm tổng hợp do người dùng xác định
- Các hàm tổng hợp được đặt theo thứ tự
- INTERSECT / EXCEPT
- Các hàm tạo giá trị bảng
- Thời gian chờ khóa DDL / SELECT
- Biểu thức bảng phổ biến
- Các chức năng của cửa sổ
- Các hàm JSON
Công cụ lưu trữ bên ngoài
Công cụ mặc định cho MariaDB là công cụ lưu trữ toàn diện, giao dịch, InnoDB.
Nó phù hợp với hầu hết các khối lượng công việc và nó hoạt động tốt cho khối lượng công việc OLTP (Xử lý giao dịch trực tuyến). Tuy nhiên, nó không phải là công cụ lưu trữ duy nhất có sẵn trong MariaDB TX. Bạn có quyền truy cập vào công cụ Spider, công cụ này có thể được sử dụng để phân vùng dữ liệu của bạn trên nhiều phiên bản MariaDB trong khi vẫn duy trì hỗ trợ cho các giao dịch XA.
Một công cụ lưu trữ khác mà bạn có thể sử dụng là MyRocks, một công cụ được tối ưu hóa để lưu trữ và giảm khuếch đại ghi. Đã được thử nghiệm trên Facebook, dựa trên LSN, nó hoàn toàn phù hợp để lưu trữ khối lượng lớn dữ liệu trên bộ lưu trữ SSD, giảm chi phí bằng cách thực hiện nén mạnh và bằng cách giảm số lần ghi cần thiết cho một khối lượng công việc nhất định (và do đó giảm thiểu hao mòn SSD ).
Cụm Galera
MariaDB TX cho phép bạn truy cập dễ dàng vào Cụm Galera, một bản sao đa chủ hầu như đồng bộ. Galera Cluster có thể được sử dụng để thiết kế các cụm WAN có tính khả dụng cao.
Galera Cluster được xây dựng dựa trên giao thức nhận biết số đại biểu, đảm bảo rằng việc phân vùng mạng sẽ không thành vấn đề và bộ não phân chia sẽ không còn là vấn đề nữa. Galera Cluster cung cấp các phương tiện tự động cấp phép các nút mới hoặc không thành công, giúp giảm bớt phạm vi quản lý.
Tính năng hoạt động
MariaDB TX cũng cung cấp một số tính năng liên quan đến các tác vụ hoạt động. ADD COLUMN tức thì giúp giảm tác động của một trong những thay đổi giản đồ phổ biến nhất. Các cột ẩn giúp duy trì khả năng tương thích giữa mã cũ và mã mới. Chỉ mục trên các cột ảo sẽ tăng hiệu suất.
Mariabackup
MariaDB TX triển khai mã hóa dữ liệu lúc nghỉ bao gồm mã hóa các bản ghi nhị phân. Để đảm bảo rằng người dùng MariaDB TX có thể hưởng lợi từ các bản sao lưu không có khóa, Mariabackup đã được tạo. Đây là một nhánh cải tiến của Xtrabackup, không hoạt động chính xác với các tính năng mã hóa MariaDB TX. Giờ đây, bạn có thể tận hưởng các bản sao lưu vật lý, nóng hổi của mình với Mariabackup trong khi dữ liệu của bạn được mã hóa an toàn.
MariaDB MaxScale
Ngoài MariaDB 10.3, MariaDB TX đi kèm với MaxScale 2.3, một proxy nhận biết SQL có thể được sử dụng để xây dựng các môi trường có tính khả dụng cao. Nó đi kèm với nhiều tính năng và chúng tôi muốn điểm qua những tính năng quan trọng nhất ở đây.
Tự động chuyển đổi dự phòng
MaxScale có thể được sử dụng để theo dõi tình trạng của nút MariaDB chính và nếu nó bị lỗi, hãy thực hiện chuyển đổi dự phòng nhanh chóng, tự động. Chuyển đổi dự phòng tự động đóng vai trò quan trọng trong việc xây dựng một giải pháp có tính khả dụng cao có thể khôi phục kịp thời sau sự cố.
Tách đọc-ghi
Chia tách đọc-ghi là tính năng quan trọng để cho phép chia tỷ lệ đọc. Nó là đủ để ứng dụng kết nối với MaxScale và nó sẽ phát hiện cấu trúc liên kết, xác định MariaDB nào hoạt động như chủ và cái nào hoạt động như nô lệ. Sau đó, nó sẽ định tuyến giao thông phù hợp với điều này. Các truy vấn SELECT sẽ được gửi đến các nô lệ, các bản ghi sẽ được gửi đến tổng thể. Mọi thứ diễn ra tự động, cấu trúc liên kết được theo dõi mọi lúc và nếu xảy ra chuyển đổi dự phòng, lưu lượng truy cập sẽ được định tuyến lại dựa trên sự thay đổi.
Định tuyến truy vấn minh bạch
MaxScale, là điểm đi vào của lưu lượng truy cập vào MariaDB TX, có thể được sử dụng để thực hiện phân tách đọc-ghi. Đôi khi điều này vẫn chưa đủ và sẽ thật tuyệt nếu có một cách kiểm soát nơi mà truy vấn nhất định sẽ được gửi. Điều này có thể thực hiện được trong MaxScale - bạn có thể so khớp các truy vấn bằng cách sử dụng biểu thức chính quy và sau đó quyết định xem chúng nên được gửi đến chính hay tới nô lệ. Điều này có thể hữu ích trong một số trường hợp cụ thể khi truy vấn CHỌN phải được thực thi trên trang cái do các vấn đề đọc-sau-ghi hoặc chỉ vì nó phải có chế độ xem cập nhật nhất của tập dữ liệu.
Lưu vào bộ nhớ cache kết quả truy vấn
Để cải thiện hiệu suất, bộ nhớ đệm truy vấn là điều bắt buộc. Bộ đệm truy vấn có sẵn trong MariaDB sẽ không hoạt động trong môi trường đồng thời cao vì nó thực thi tuần tự hóa các truy vấn, làm giảm nghiêm trọng hiệu suất ngay cả đối với khối lượng công việc chỉ đọc. Sử dụng giải pháp bên ngoài cho bộ nhớ cache không phải lúc nào cũng khả thi:sau tất cả, bạn sẽ kết thúc với một cơ sở dữ liệu khác để duy trì, bảo mật và giữ gìn sức khỏe. Có thể tốt hơn nếu sử dụng MaxScale làm bộ nhớ đệm giả sử rằng bạn đã sử dụng nó cho các chức năng khác.
Chặn truy vấn
Đôi khi cơ sở dữ liệu gặp phải một truy vấn không hiệu quả, điều này tạo ra tải trọng cao trên hệ thống. Có thể là việc viết lại truy vấn đó sẽ mất quá nhiều thời gian (ai đó sẽ phải viết lại nó, kiểm tra sự thay đổi về giai đoạn và sau đó cuối cùng triển khai sang phiên bản sản xuất), một khoảng thời gian mà bạn không có. MaxScale có thể giúp bạn ở đây với các tính năng như chặn truy vấn, về cơ bản cho phép bạn ngăn một truy vấn nhất định truy cập vào cơ sở dữ liệu. Tính năng này cũng có thể được sử dụng để xây dựng tường lửa SQL - loại bỏ tất cả các truy vấn khớp với các mẫu trỏ tới SQL injection hoặc các hoạt động khác, có thể nguy hiểm và độc hại.
Như bạn có thể thấy, MariaDB TX đi kèm với danh sách các tính năng và phần mềm được thiết kế để hoạt động cùng nhau và xây dựng cơ sở dữ liệu khả dụng, có thể mở rộng cao để xử lý dữ liệu giao dịch.
Giám sát &Quản lý Doanh nghiệp cho MariaDB TX
ClusterControl hỗ trợ MariaDB TX đầy đủ. Bạn có thể dễ dàng triển khai cả MariaDB Server 10.3 và MaxScale 2.3. ClusterControl hỗ trợ thiết lập sao chép MariaDB cũng như MariaDB Galera Cluster.
Miễn là bạn có kết nối SSH từ phiên bản ClusterControl của mình tới các nút bạn muốn triển khai MariaDB TX, bạn có thể thực hiện việc này chỉ trong một vài cú nhấp chuột.
Trước tiên, bạn phải xác định cách ClusterControl sẽ tiếp cận các nút MariaDB TX.
Sau đó, chọn MariaDB làm nhà cung cấp và sử dụng một trong các phiên bản được hỗ trợ. Chuyển mật khẩu gốc MariaDB.
Cuối cùng, quyết định dựa trên cấu trúc liên kết. Bạn có thể triển khai MariaDB TX trong một thiết lập chính - chủ, hoạt động - ở chế độ chờ với các nô lệ bổ sung. Bản sao sẽ sử dụng MariaDB GTID.
Đối với MariaDB Galera Cluster, bước đầu tiên hoàn toàn giống nhau, sau đó bạn chỉ cần chọn MariaDB làm nhà cung cấp, quyết định phiên bản và xác định các nút trong MariaDB Galera Cluster:
Với các cụm được triển khai, bạn có thể sử dụng sức mạnh của ClusterControl để theo dõi và quản lý các cụm MariaDB TX của mình.Ví dụ:việc thêm bộ cân bằng tải MaxScale chỉ là một vài cú nhấp chuột:
Sau khi triển khai, bạn có thể quản lý MaxScale của mình bằng ClusterControl:
Bạn cũng có thể mở rộng quy mô cụm Galera của mình bằng cách thêm các nút Galera mới hoặc nô lệ sao chép không đồng bộ. Bạn có thể thêm nô lệ hoặc nô lệ bị trì hoãn vào thiết lập sao chép của mình hoặc thực hiện các thay đổi cấu trúc liên kết bằng cách thăng cấp nô lệ thành chủ và khôi phục phần còn lại của thiết lập. ClusterControl sẽ giám sát cụm và cố gắng khôi phục các nút hoặc cụm bị lỗi nếu sự cố xảy ra. Đối với sao lưu, ClusterControl có thể giúp bạn xác định lịch trình sao lưu bằng cách sử dụng cả mysqldump và Mariabackup để bạn có thể dễ dàng hưởng lợi từ các tính năng mã hóa của MariaDB TX.
Đối với phần theo dõi và xu hướng, ClusterControl có thể được sử dụng ở chế độ không có tác nhân:
Hoặc nó có thể được sử dụng cùng với Prometheus và các đại lý để cung cấp thông tin chi tiết hơn nữa về những gì đang xảy ra trong cụm MariaDB TX.
Chúng tôi hy vọng bài đăng trên blog giới thiệu này đã giúp bạn hiểu MariaDB TX là gì và cách ClusterControl có thể giúp bạn quản lý nó.