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

Giải pháp DBaaS tốt nhất cho MySQL

Là cơ sở dữ liệu nguồn mở phổ biến nhất, MySQL đã được triển khai ở nhiều nơi, từ các công ty khởi nghiệp nhỏ đến các tổ chức rất lớn. Các trường hợp sử dụng khác nhau, từ các ứng dụng trang web đơn giản đến các môi trường quan trọng với yêu cầu thời gian hoạt động 99,999%. MySQL chỉ hoàn thành công việc và dễ sử dụng.

Mặc dù MySQL tương đối dễ quản lý nhưng nó không tự chạy. Có một khoản chi phí quản lý nhất định - phần mềm cần được vá mọi lúc, mọi nơi, cơ sở dữ liệu cần được theo dõi các lỗi hoặc bất thường trong hiệu suất hoặc bảo mật, các lỗi cần được xử lý và khôi phục từ đó, các bản sao lưu cần được quản lý .. và danh sách tiếp tục .. Vì vậy, không có gì ngạc nhiên khi các nhà cung cấp đám mây lớn nhất cung cấp các dịch vụ DBaaS công khai dựa trên MySQL.

Ba nhà cung cấp dịch vụ đám mây cung cấp MySQL dưới dạng dịch vụ bao gồm:

  • Amazon Web Service với RDS cho MySQL
  • Google Compute Engine với CloudSQL cho MySQL
  • Microsoft Azure, Microsoft Azure MySQL

Trong blog này, chúng tôi sẽ so sánh các giải pháp từ các nhà cung cấp đám mây này.

Phiên bản &Bản vá MySQL

Phiên bản MySQL mới nhất hiện có trong Amazon Web Services (AWS) là MySQL 8.0.20, khá gần với phiên bản mới nhất của Oracle MySQL chính thức (8.0.21 tại thời điểm viết). Bên cạnh phiên bản mới nhất, AWS RDS cũng cung cấp phiên bản MySQL cũ hơn (phiên bản chính 5.5, 5.6 và 5.7), vì vậy bạn có thể triển khai phiên bản chính xác tương thích với ứng dụng của mình.

Trong Google Cloud Platform (GCP), phiên bản MySQL hỗ trợ trong CloudSQL cho MySQL vẫn là MySQL 5.6 &5.7, phiên bản nhỏ mới nhất của bản phát hành 5.6 là 5.6.42 trong khi phiên bản 5.7 mới nhất phiên bản nhỏ là 5.7.25.

Cơ sở dữ liệu Azure cho MySQL hỗ trợ các phiên bản 5.6, 5.7, 8.0, rất tiếc là họ không cung cấp phiên bản nhỏ (hoặc phiên bản sửa lỗi của cơ sở dữ liệu, như Azure gọi) khi triển khai từ bảng điều khiển. Để xác định phiên bản của phiên bản máy chủ MySQL của bạn, người ta có thể sử dụng phiên bản CHỌN (); tại dấu nhắc MySQL.

Vấn đề đã biết và Hạn chế

Có một số vấn đề và hạn chế đã biết tồn tại trên cơ sở dữ liệu dưới dạng dịch vụ trong khi nó không xảy ra trong MySQL trên cơ sở hoặc máy ảo. Trên RDS, một số hạn chế là:

  • Không hỗ trợ plugin tạo khóa MySQL.
  • Kích thước giới hạn bộ nhớ tối đa cho một bảng là 16TB khi sử dụng công cụ lưu trữ InnoDB.
  • Có một số tham số cần cân nhắc đặc biệt khi sử dụng RDS, ví dụ:long_query_time, Lower_case_table_name.

Có một số hạn chế và vấn đề đã biết trong CloudSQL dành cho MySQL, được chia thành các danh mục khác nhau, ví dụ:vấn đề về độ bền và tính khả dụng của dữ liệu, vấn đề kết nối phiên bản, vấn đề quản trị và vấn đề xuất và nhập dữ liệu. Mỗi danh mục có các vấn đề và hạn chế cụ thể, một số trong số đó là:

  • Không thể hủy hoặc dừng các hoạt động đang chạy dài.
  • Không thể sử dụng tên phiên bản ngay sau khi chúng tôi xóa phiên bản.
  • Mệnh đề DEFINER sẽ khiến quá trình nhập không thành công.

Cơ sở dữ liệu Azure cho MySQL có một số hạn chế và các vấn đề đã biết liên quan đến nâng cấp, đặc quyền và công cụ lưu trữ. Một số chi tiết là:

  • Nâng cấp cơ sở dữ liệu lớn hiện không được hỗ trợ. Bạn cần thực hiện kết xuất và khôi phục vào máy chủ mới để nâng cấp lớn.
  • Cơ sở dữ liệu Azure cho MySQL hiện hỗ trợ công cụ lưu trữ InnoDB và Memory.
  • Cơ sở dữ liệu hệ thống trong cơ sở dữ liệu azure cho MySQL được đặt thành chỉ đọc. Bạn không thể thay đổi bất kỳ điều gì trong cơ sở dữ liệu hệ thống mysql.

Bạn cần kiểm tra các giới hạn và các vấn đề đã biết đối với MySQL trên từng nhà cung cấp dịch vụ đám mây và so sánh với các yêu cầu của bạn để hiểu liệu nó có ảnh hưởng đến ứng dụng hay không.

Sao lưu và Khôi phục

Amazon RDS cho MySQL chạy sao lưu tự động theo lịch trình, nó có một ảnh chụp nhanh khối lượng của phiên bản cơ sở dữ liệu. Thời gian lưu giữ bản sao lưu mặc định là 7 ngày. Không chỉ vậy, RDS tải lên nhật ký giao dịch của bạn cho các phiên bản cơ sở dữ liệu lên S3 cứ sau 5 phút để giữ cho thời điểm khôi phục.

Bạn có thể khôi phục một bản sao lưu vào một thời điểm cụ thể bằng cách tạo một bản sao mới trong khoảng thời gian lưu giữ bản sao lưu. Bạn có thể chọn thời gian khôi phục mới nhất để khôi phục về thời gian mới nhất có thể hoặc bạn có thể chọn một tùy chỉnh để xác định thời gian khôi phục dữ liệu cụ thể.

Quá trình sao lưu xảy ra trong CloudSQL cho MySQL tăng dần. Nó chỉ chứa những thay đổi của dữ liệu sau khi sao lưu trước đó. Bản sao lưu cũ nhất tương tự như kích thước cơ sở dữ liệu hiện tại của bạn. Khi bản sao lưu cũ nhất bị xóa, kích thước của bản sao lưu cũ nhất sau sẽ tăng lên, do đó, bản sao lưu đầy đủ vẫn tồn tại.

Sao lưu tự động diễn ra hàng ngày và nó được giữ lại trong 7 ngày theo mặc định. CloudSQL lưu trữ dữ liệu sao lưu ở 2 vùng để dự phòng. Một vùng có thể nằm trong cùng một vùng khi phiên bản đang chạy và vùng còn lại nằm trong một vùng khác.

Khôi phục tại thời điểm trong CloudSQL sẽ tạo một phiên bản mới, cài đặt phiên bản sẽ kế thừa với nguồn của phiên bản. Trước khi bạn thực hiện khôi phục thời điểm, hãy đảm bảo rằng bạn đã bật ghi nhật ký nhị phân. Khi bạn thực hiện khôi phục thời điểm, bạn chỉ cần điền vào tên nhật ký nhị phân và vị trí khôi phục.

Cơ sở dữ liệu Azure cho MySQL lấy sao lưu tệp dữ liệu và nhật ký giao dịch. Bản thân lịch trình sao lưu là sự kết hợp giữa sao lưu toàn bộ và khác biệt cho các máy chủ có kích thước lưu trữ lên đến 4TB, trong khi sao lưu ảnh chụp nhanh diễn ra cho máy chủ lưu trữ tối đa 16TB.

Bản sao lưu đầy đủ chạy mỗi tuần một lần, trong khi bản sao lưu chênh lệch diễn ra hai lần một ngày. Khoảng thời gian lưu giữ mặc định của bản sao lưu là 7 ngày, nhưng bạn luôn có thể định cấu hình lưu giữ lên đến 35 ngày.

Có hai kiểu khôi phục trong cơ sở dữ liệu Azure cho MySQL, đó là:

  • Khôi phục tại chỗ, có sẵn dưới dạng tùy chọn sao lưu dự phòng hoặc bạn có thể tạo một máy chủ mới trong cùng khu vực với máy chủ gốc của mình, sử dụng bản sao lưu đầy đủ và nhật ký giao dịch để khôi phục dữ liệu.
  • Khôi phục địa lý, khả dụng nếu bạn định cấu hình địa lý dự phòng trong tùy chọn lưu trữ. Nó sẽ cho phép bạn khôi phục bản sao lưu của mình đến các khu vực khác nhau.

Xin lưu ý rằng AWS, Google hay Azure đều không cho phép bạn tải xuống các bản sao lưu của mình.

Giám sát Cơ sở dữ liệu

RDS cung cấp tích hợp giám sát với CloudWatch, bạn có thể xem một số chỉ số như Sử dụng CPU, Kết nối DB, ghi IOPS &đọc IOPS, ghi thông lượng và đọc thông lượng, độ trễ ghi và đọc. Bạn có thể tạo báo thức để kích hoạt cảnh báo từ CloudWatch, dựa trên một số danh mục chỉ số và chỉ cần xác định ngưỡng.

Tương tự như RDS, GCP CloudSQL cũng tích hợp với stackdriver, bạn có thể xem các chỉ số như:Sử dụng CPU, sử dụng bộ nhớ, kết nối đang hoạt động, giao dịch / giây, byte nhập / xuất, hoạt động ghi và đọc, độ trễ sao chép .

Cơ sở dữ liệu Azure cho MySQL cung cấp một số số liệu, ví dụ; Kết nối hoạt động, phần trăm CPU, kết nối không thành công, phần trăm IO, phần trăm bộ nhớ, độ trễ sao chép, phần trăm bộ nhớ, bộ nhớ đã sử dụng. Bạn cũng có thể tạo cảnh báo trong cơ sở dữ liệu Azure cho MySQL, chọn số liệu và xác định quy tắc.

Kết luận

Dựa trên 4 lĩnh vực trọng tâm; Phiên bản và bản vá của MySQL, Các vấn đề và hạn chế đã biết, Sao lưu và khôi phục, Giám sát cơ sở dữ liệu, theo tôi Amazon RDS cho MySQL vẫn là cơ sở dữ liệu tốt nhất như một dịch vụ cho MySQL. Nó cung cấp các phiên bản và bản vá chi tiết, các vấn đề và hạn chế rất hạn chế so với các phiên bản khác. Đó là một cách thuận tiện để chạy MySQL, với lưu ý rằng giá dịch vụ đã tăng trong những năm gầ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. Truy vấn MySQL tương đương với dải_tag PHP là gì?

  2. Làm cách nào để tạo cơ sở dữ liệu nhiều người thuê với cấu trúc bảng được chia sẻ?

  3. Làm thế nào để sử dụng MySQLdb với Python và Django trong OSX 10.6?

  4. Cách bảo mật máy chủ MySQL / MariaDB

  5. Làm cách nào để có được nhiều số với một truy vấn SQL?