Thứ Sáu, 22 tháng 12, 2017

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

                                               
 
sử dụng những phương tiện sạch này để cải thiện CLI và web admin, SQL queries, schema migration, sao chép và bình 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ư xoay: tốc độ, tụ họp, phản ứng nhanh với cái đầu lạnh và thỉnh thoảng hãy cậy từ người xem có ích. Database là trung tâm của sự thành công của hầu hết các áp dụng. vày DBA chịu nghĩa vụ về dữ liệu của tổ chức, việc dạo các dụng cụ đáng tin cậy 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ấp thiết. DBAs cần những công cụ đủ tốt để giữ cho hệ thống của họ hoạt động trót lọt.

Vậy các công cụ đáng tin tưởng cho các MySQL administrator là gì? Ở đây tôi chia sẻ 5 dụng cụ mã nguồn thiên lí đầu các MySQL administrator và công dụng của chúng trong việc hỗ trợ các công việc quản trị hàng ngày MySQL. Đối với mỗi công cụ, tôi đã cung cấp liên kết tới kho GitHub và 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ổ thông nhất của MySQL.

Các hạn chế về an ninh chẳng hạn như jump host và chính xá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 dụng cụ 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 kì tại vùng light-on-black terminal. nên, 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 giác seperate function và các nhà phá hoang từ chuỗi query trong mệnh đề WHERE. Đối với một truy tìm 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 sử 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ó nghĩa là bạn có thể tìm hiểu về các phần quan trọng nhất khi xem 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 thụ 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 tiên. Đầu vào hiện tại của bạn không bị bỏ qua để chạy lệnh SHOW CREATE TABLE do 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, thí dụ: \ fs myAlias myQuery. Điều này rất tiện dụng, vì bạn có thể thực hiện 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

phải 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 dùng Gh-ost (GitHub Online Schema Migration). Gh-ost cung cấp các đổi thay sơ đồ 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à tiếp quá trình chuyển di!

vì sao việc này lại quan yếu đến vậy? Vì MySQL 5.6 được vận chuyển 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ố công cụ thay đổi giản đồ trực tuyến phổ quát khác, chả hạn như trình thay đổi 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 dùng binary log, nó không dễ bị ảnh hưởng bởi những hạn chế trigger-based. rút cụ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 sơ đồ 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 chuyệ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 thay đổi 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 hành 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 gian để 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 hiện 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 đó vận dụng lại chúng vào sahdow table.

Tùy chọn chung cục cho phép chuyển di chỉ trên bản sao mà không ảnh hưởng đến master, vì 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, vì không được tương 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ộ dụng cụ OAK và Gh-ost.

Dự án Gh-ost sử 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 dụng cụ MySQL là dụ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 hành xuất dữ liệu bằng cách sử 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 sử 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 vời, 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 đề nghị 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 chiếu những nạm 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 ứng dụng

Sqlcheck trở nên đích tại nhiều chừng độ rủi ro, được phân loại là rủi ro thấp, làng nhàng hoặc cao. Điều này hữu í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 tróc nã có tác động hiệu quả lớn nhất. vớ những gì bạn cần làm để bắt đầu là thu thập một danh sách các truy biệt lập của bạn vào một tệp tin và chuyển chúng như một đối số cho dụ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à phương tiện 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 thay đổi 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 thông qua 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 tiễn, Orchestrator chối từ bất kỳ hoạt động bất hợp pháp để không phá vỡ hệ thống của bạn.

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

Orchestrator là một phương tiện 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

Không có nhận xét nào:

Đăng nhận xét

Stack Overflow đã phát hành nghiên cứu hàng năm về ngành công nghiệp lập trình.

Công ty cho biết ấn bản 2018 của nó đại diện cho nghiên cứu 'lớn nhất từng có' về thái độ, lương và nhân khẩu học của nhà phát triển...