Top 5 công cụ mã nguồn mở dành cho MySQL administrator

                                               
 
sử dụng những công cụ tuyệt này để cải thiện CLI và web admin, SQL queries, schema migration, sao chép và hồi phục môi trường MySQL của bạn.

Đối với các database administrators (DBA), việc giữ cho cơ sở dữ liệu chạy ở tốc độ tối đa có thể giống như cù: tốc độ, tụ hội, phản ứng nhanh với cái đầu lạnh và đôi khi hãy nhờ từ người xem bổ ích. Database là trọng tâm của sự thành công của hồ hết các vận dụng. vị DBA chịu trách nhiệm về dữ liệu của tổ chức, việc ngần các dụng cụ đáng tin tưởng giúp họ hợp lý hóa quá trình quản lý cơ sở dữ liệu và giảm bớt các công việc bảo trì hàng ngày là rất cần thiết. DBAs cần những dụng cụ đủ tốt để giữ cho hệ thống của họ hoạt động trơn tuột.

Vậy các phương tiện đáng tin cẩn cho các MySQL administrator là gì? Ở đây tôi chia sẻ 5 công cụ mã nguồn mở hàng đầu các MySQL administrator và công dụng của chúng trong việc tương trợ các công việc quản trị hàng ngày MySQL. Đối với mỗi phương tiện, tôi đã cung cấp liên kết tới kho GitHub và liệt kê số lượng GitHub star tại thời khắc viết.
Mycli
Dự án Mycli cung cấp MySQL tự động hoàn tất dòng lệnh và đánh dấu cú pháp. Đây là một trong những công cụ phổ biến nhất của MySQL.

Các hạn chế về an ninh chả hạn như jump host và xác thực hai nguyên tố để lại nhiều MySQL DBA với lệnh chỉ truy cập vào hệ thống của họ. Trong những trường hợp như vậy, các phương tiện GUI yêu thích giống như MySQL Workbench, Monyog, và các dụng cụ khác không phải là một lựa chọn.

Tại dòng lệnh, ta sẽ tốn nhiều thời gian tại vùng light-on-black terminal. thành thử, một trong những điều tiệt về Mycli là sự phong phú của cú pháp. Điều này cho phép bạn, tỉ dụ, để trực quan seperate function và các nhà phá hoang từ chuỗi query trong mệnh đề WHERE. Đối với một truy ngắn, dòng đơn không phải là một vấn đề lớn, nhưng nó sẽ đổi thay khi bạn làm việc với các query thực hiện các JOIN operation trên nhiều hơn một vài bảng. Tôi đang dùng JOIN bằng cách sử dụng các cột index? Tôi có thể lọc bằng cách dùng ký tự đại diện trong mệnh đề WHERE? Mycli tương trợ các query với nhiều dòng và được đánh dấu cú pháp, điều này có tức là bạn có thể tìm hiểu về các phần quan trọng nhất khi coi xét hoặc tối ưu hóa query. Bạn có thể chọn từ một số cú pháp làm trội hay tạo ra một số của riêng bạn.

Các tính năng đáng giá khác của Mycli thực sự sáng dạ. Nó này cho phép bạn chọn tên bảng và cột từ danh sách bằng cách nhập chỉ vài ký tự trước nhất. Đầu vào hiện tại của bạn không bị bỏ qua để chạy lệnh SHOW CREATE TABLE vị bạn quên tên cột mà bạn muốn xuất hiện trong mệnh đề WHERE!

                                                   

 
Với Mycli, bạn có thể ẩn danh các query chuộng bằng việc dùng dùng \ fs, ví dụ: \ fs myAlias myQuery. Điều này rất tiện dụng, vì bạn có thể thực hành tquery bằng cách dùng \ f myAlias bất cứ khi nào cần thiết.

Dự án Mycli dùng BSD 3 license. Với sự 44 comtributor, 1.2k cam kết, và 5k sao.
Gh-ost

Nếu như 99% người dùng của MySQL DBA phải đối mặt với việc đổi thay đối với bảng MySQL trong khi vẫn lo sợ tác động lên quá trình làm việc thì bạn nên cân nhắc sử dụng Gh-ost (GitHub Online Schema Migration). Gh-ost cung cấp các đổi thay lược đồ MySQL mà không blocking write, hay không sử dụng các trigger, với khả năng tạm dừng và đấu quá trình di chuyển!

Tại sao việc này lại quan trọng đến vậy? Vì MySQL 5.6 được chuyên chở với ALTER TABLE mới … ALGORITHM = INPLACE DDL (Data Definition Language), có thể chỉnh sửa một bảng mà không blocking wite cho các hoạt động chung như thêm một index (B-tree). Tuy nhiên, vẫn còn một đôi điều kiện mà ( DML statement) bị chặn, đáng để ý nhất là việc bổ sung một index ĐẦY ĐỦ, mã hoá không gian bảng và chuyển đổi thành định dạng cột.

Một số phương tiện thay đổi giản đồ trực tuyến phổ thông khác, chả hạn như trình đổi thay giản đồ-trực tuyến Percona, bằng cách thực hành một bộ ba trình trigger (INSERT, UPDATE và DELETE) trên máy chủ để giữ một bảng sao chép để đồng bộ với sự thay đổi. Điều này giới thiệu một hình phạt hiệu suất nhỏ nhờ vào viết khuếch đại, nhưng đáng kể hơn đề nghị bảy trường hợp khóa metadata. Điều này có hiệu quả ngăn chặn DML Data Manipulation Language).

Vì Gh-ost hoạt động sử dụng binary log, nó không dễ bị ảnh hưởng bởi những hạn chế trigger-based. rút cuộc, Gh-ost có thể kích hoạt hoạt động một cách hiệu quả đến mức không, cho phép bạn tạm dừng quá trình chuyển di lược đồ một thời gian nếu máy chủ của bạn bắt đầu xảy ra xung đột và tiếp kiến khi bubble vẫn hoạt động.
 

                                                             

 
Vậy Gh-ost hoạt động như thế nào? Mặc định, Gh-ost kết nối với một bản sao (slave), xác định chủ, và chuyển di trên máy chủ. Nó nhận các đổi thay trên một bản sao cho bảng nguồn trongbinlog_format = ROW, phân tách cú pháp và chuyển đổi các câu lệnh này để được thực hiện lại trên shadow table của Master. Nó theo dõi việc đếm các hàng trên bản sao và xác định khi nè thời kì để thực hiện một atomic cutover (bảng chuyển đổi).

Gh-ost cung cấp một chế độ thay thế nơi bạn thực hành việc chuyển di trực tiếp trên master (cho dù nó có slave hay không), đọc lại các sự kiện binlog_format=ROW của Master, và sau đó ứng dụng lại chúng vào sahdow table.

Tùy chọn rút cục cho phép di chuyển chỉ trên bản sao mà không ảnh hưởng đến master, bởi thế bạn có thể thể nghiệm hoặc bằng cách khác xác thực việc chuyển di

Lưu ý rằng nếu sơ đồ của bạn ở nước ngoài, thì Gh-ost có thể không hoạt động trơn tuột, vì không được hỗ trợ.

Lưu ý rằng oak-online-alter-table là tiền thân của Gh-ost. Bạn có thể đọc một so sánh giữa Gh-ost và pt-online-schema-change performance của Peter Zaitsev, CEO của Percona, cùng với phản hồi từ Shlomi Noach, tác giả và người duy trì bộ công cụ OAK và Gh-ost.

Dự án Gh-ost dùng MIT license. Với 29 contributor, gần 1k cam kết, và 3k sao.
PhpMyAdmin

Một trong những dự án chạy dài hơi và trưởng thành nhất trong số các phương tiện MySQL là công cụ PhpMyAdmin cho phép quản lý MySQL qua web. phpMyAdmin cho phép DBA để duyệt và chỉnh sửa các đối tượng cơ sở dữ liệu MySQL: database, bảng biểu, view, field, và các index. Có các tùy chọn để thực hiện xuất dữ liệu bằng cách dùng một tá định dạng, sửa đổi người dùng MySQL và đặc quyền của họ, và – yêu thích của tôi-thực hành các ad-hoc query.

Bạn cũng sẽ tìm thấy tab Status với những câu hỏi, kết nối/quy trình và lưu lượng truy cập mạng cho trường hợp cơ sở dữ liệu cho phép, cùng với tab Advisor cho bạn thấy danh sách các vấn đề về hiệu năng có thể cùng với các đề xuất khắc phục.

PhpMyAdmin dùng GPLv2 license. Đây là một dự án khổng lồ với hơn 800 contributor, 112k cam kết tuyệt trần, và 2.7k sao. Bản giới thiệu trực tuyến hiện có tại https://demo.phpmyadmin.net/master-config/
Sqlcheck

SQL anti-pattern làm chậm các query, nhưng thường phải yêu cầu DBA có kinh nghiệm và nghiên cứu phát triển qua mã để xác định và giải quyết chúng. Sqlcheck phản ánh những thay của Joy Arulraj để soạn thảo cuốn sách “SQL Anti-patterns: Avoiding the Pitfalls of Database Programming” của Bill Karwin. Karwin phân loại thành bốn loại anti-pattern:
Thiết kế cơ sở dữ liệu hợp lý
Thiết kế cơ sở dữ liệu vật lý
Query
Phát triển áp dụng

Sqlcheck trở nên đích tại nhiều mức độ rủi ro, được phân loại là rủi ro thấp, trung bình hoặc cao. Điều này bổ ích nếu danh sách các anti-pattern của bạn lớn, vì bạn có thể ưu tiên các truy có tác động hiệu quả lớn nhất. tất tật những gì bạn cần làm để bắt đầu là thu thập một danh sách các tróc nã riêng biệt của bạn vào một tệp tin và chuyển chúng như một đối số cho công cụ.

Tôi đã dùng mẫu lấy từ môi trường PMM Demo để tạo ra kết quả sau:

[michael@fedora ~]$ sqlcheck —file_name PMMDemoQueries.txt

SQLCHECK

> RISK LEVEL :: ALL ANTI-PATTERNS
> SQL FILE NAME :: output
> COLOR MODE :: ENABLED
> VERBOSE MODE :: DISABLED
> DELIMITER :: ;

SQL Statement: select table_schema, table_name, table_type, ifnull(engine, ‘none’) as engine,
ifnull(version, ‘0’) as version, ifnull(row_format, ‘none’) as row_format,
ifnull(table_rows, ‘0’) as table_rows, ifnull(data_length, ‘0’) as data_length,
ifnull(index_length, ‘0’) as index_length, ifnull(data_free, ‘0’) as data_free,
ifnull(create_options, ‘none’) as create_options from information_schema.tables
where table_schema = ‘innodb_small’;
[output]: (HINTS) NULL Usage
[Matching Expression: null]

All Anti-Patterns and Hints :: 7
> High Risk :: 0
> Medium Risk :: 0
> Low Risk :: 2
> Hints :: 5

Sqlcheck được bao gồm trong Apache 2.0 license. Dự án có năm người đóng góp, 187 thành viên, và 1,4k sao.
Orchestrator

Orchestrator là công cụ quản lý sẵn có với khả năng nhân rộng cao. Nó cung cấp khả năng để tìm ra replication topology của một môi trường MySQL bằng cách thu thập dữ liệu đổi thay của chuỗi để xác định các master và slave. Nó cũng có thể được sử dụng để tái cấu trúc lại replication topology chuẩn y GUI, cung cấp một giao diện drag-and-drop để xúc tiến một slave cho một master. Quá trình vận hành này rất an toàn. Trong thực tại, Orchestrator khước từ bất kỳ hoạt động phạm pháp để không phá vỡ hệ thống của bạn.

Cuối cùng, Orchestrator có thể tương trợ khôi phục khi các nodes bị lỗi, vì nó sử dụng khái niệm về thể để chọn lựa phương pháp khôi phục xác thực và quyết định quy trình truyền bá chính hợp để áp dụng.

Orchestrator là một công cụ khác được cung cấp bởi Shlomi Noach tại GitHub. Nó được bao gồm trong Apache 2.0 License. Orchestrator có 34 contributor, 2,780 cam kết, và 900 sao.
“Keeping the plates spinning”

Khóa học lập trình Java

SHARE

Milan Tomic

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét