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

Tự động hóa triển khai cơ sở dữ liệu MySQL

Tự động hóa đang thịnh hành những ngày này. Công nghệ phát triển nhanh chóng và ngày càng có nhiều người đóng góp vào các nền tảng phần mềm tự động hóa hiện có của bên thứ ba. Là mùa của triển khai nhịp độ nhanh, tự động hóa hiện là cần thiết và được coi là thực tế; bạn không thể thoát khỏi việc tự động hóa những thứ được cho là cần thiết. Những điều cần thiết này rất quan trọng để hoàn thành công việc nhanh chóng và loại bỏ các nhiệm vụ thừa. Một khi điều này xảy ra, các tổ chức và công ty có thể tập trung vào những việc kinh doanh hợp lý khiến nó trở nên thú vị hơn cho sự phát triển. Blog này bao gồm một số công cụ tổng quan ngắn và các điểm cân nhắc về tự động hóa cơ sở dữ liệu, tiếp theo là chủ đề về cách sử dụng ClusterControl để tự động hóa cơ sở dữ liệu.

Công nghệ cho Tự động hóa Triển khai Cơ sở dữ liệu

Các công cụ phức tạp cho Cơ sở hạ tầng dưới dạng mã (IaC) như Puppet, Chef, Ansible, SaltStack và Terraform thường là những công nghệ chính để lựa chọn. Các công cụ này giúp DBAs với các tác vụ dễ dàng sao chép, như triển khai MySQL. Tự động hóa triển khai MySQL giúp bạn tiết kiệm rất nhiều thời gian, đặc biệt nếu bạn có các nền tảng rộng rãi để hỗ trợ và tuân theo các bước của chu trình kỹ thuật phần mềm để triển khai cho môi trường QA, dàn hoặc phát triển của bạn.

Sử dụng tự động hóa giúp những việc này trở nên nhanh chóng và dễ quản lý hơn khi cần.

Chọn Phần mềm Tự động hóa của Bạn

Trong blog này, hãy thử sử dụng Ansible. Như đã nêu trước đó, việc sử dụng phần mềm của bên thứ ba giúp cung cấp tự động hóa dễ dàng và nhanh hơn, đặc biệt là để triển khai cụm MySQL của bạn. Bây giờ chúng ta sẽ sử dụng các mô-đun hiện có, đặc biệt là các vai trò Ansible có sẵn. Như đã nêu trong blog trước của chúng tôi, chúng tôi có thể sử dụng Ansible Galaxy (kho lưu trữ cho các bộ sưu tập và vai trò có thể kiểm soát được).

Trước đó, bạn cần khai báo máy chủ sẽ bị ảnh hưởng bởi việc triển khai. Ví dụ, trong blog này, tôi có những thứ sau:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Sau đó, trong tệp / etc / ansible / hosts của tôi,

[email protected]:~ # tail -n2 / etc / ansible / hosts

debnode4
debnode5

Sau đó, tạo tệp main.yml giống như bên dưới,

[email protected]:~/deploy-mysql# cat main.yml
---
# tasks file for deploy-mysql
- hosts: all
  become: yes
  vars_files:
    - vars/main.yml
  roles:
    - role: geerlingguy.mysql

Vì tôi đang sử dụng Ubuntu 16.04 để triển khai MySQL đơn giản này sử dụng Ansible để tự động hóa của tôi, nên cuối cùng tôi gặp phải vấn đề này,

[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb

Bây giờ, thử nghiệm triển khai MySQL cho thấy,

[email protected]:~/deploy-mysql# ansible all -a  "mysql -Nse 'select concat(\"hello world at \", @@hostname,\"\!\");' " 2>/dev/null
debnode4 | CHANGED | rc=0 >>
hello world at debnode4!
debnode5 | CHANGED | rc=0 >>
hello world at debnode5!

Tự động hóa, sau đó xây dựng công thức

Như chúng tôi đã trình bày ở trên, tốt hơn hết là bạn nên tự động hóa và tận dụng những cái hiện có. Trong blog này, tôi chọn Ansible vì việc tận dụng các mô-đun hiện có như vai trò trong ví dụ này dễ dàng hơn và chỉ cần một vài bước để triển khai máy chủ MySQL.

Tất nhiên, đó không phải là điều đơn giản. Có những vai trò hiện có, chẳng hạn như vai trò này, hỗ trợ sao chép và nhiều biến hơn để điều chỉnh. Bất cứ điều gì các mô-đun hiện có có thể làm, hãy tận dụng lợi thế của nó hơn là sáng tạo lại mô-đun của riêng bạn. Bạn chỉ có thể sử dụng những cái hiện có, sau đó sửa đổi chúng theo nhu cầu của bạn.

ClusterControl cho Tự động hóa

ClusterControl tự động hóa việc triển khai MySQL một cách thành thạo. Thay vì tạo của riêng bạn, ClusterControl có thể tải xuống miễn phí và bạn có thể sử dụng nó để triển khai MySQL bao nhiêu lần bạn muốn. Bạn có thể sử dụng phần mềm để thiết lập bản sao người viết-người đọc hoặc thiết lập bản sao người viết-người viết. Xem ảnh chụp màn hình bên dưới:

Bạn chỉ cần chỉ định máy chủ nguồn / địa chỉ IP của MySQL mong muốn của bạn máy chủ.

Tự động hóa triển khai ClusterControl thực hiện kiểm tra trước để xác định xem máy chủ đã sẵn sàng quản lý công việc sẽ được triển khai hay chưa. Điều này liên quan đến khả năng truy cập, tính khả dụng của bộ nhớ và dung lượng phần cứng. Các kiểm tra được căn chỉnh để các biến được điều chỉnh khi nó sẵn sàng chạy công việc. Xem ảnh chụp màn hình bên dưới:

Dựa trên nhật ký hoạt động công việc, bạn sẽ thấy rằng nó điều chỉnh các biến hoặc tham số trong hệ thống Linux mà chúng tôi hỗ trợ. Nếu bạn cũng nhìn vào ảnh chụp màn hình ví dụ mà chúng tôi có bên dưới, nó sẽ kiểm tra tính khả dụng của bộ nhớ và ổ đĩa và chuẩn bị cho việc triển khai MySQL. Do đó, nó cài đặt các gói cần thiết, không chỉ để MySQL chạy bình thường mà còn để ClusterControl giám sát và đăng ký máy chủ cũng như các dịch vụ của nó mà chúng tôi thu thập để giám sát.

Công cụ dành cho nhà phát triển ClusterControl

ClusterControl có tính năng nơi bạn có thể tạo các tập lệnh của riêng mình dành riêng cho các cố vấn. Điều này quan trọng như thế nào đối với việc tự động hóa triển khai cơ sở dữ liệu MySQL của bạn là khi cơ sở dữ liệu được đăng ký và triển khai, bạn có thể nâng cao thêm hoặc tạo Cố vấn của riêng mình. Ví dụ:hãy xem blog trước của chúng tôi có tiêu đề Sử dụng Cố vấn ClusterControl để Tạo Kiểm tra cho SELinux và Meltdown / Spectre:Phần Một. Sau khi triển khai, bạn có thể viết Cố vấn đầu tiên của mình, sau đó thường xuyên kiểm tra các hoạt động khai thác. Không chỉ vậy, bạn cũng có thể kiểm tra các thông số tùy chỉnh dành riêng cho nhu cầu của mình.

Công cụ CLI ClusterControl s9s

ClusterControl có các công cụ CLI mà chúng tôi gọi là công cụ CLI s9s có thể tìm thấy ở đây tại kho lưu trữ github của chúng tôi. Các công cụ CLI của s9s cho phép bạn triển khai MySQL chỉ bằng một lệnh. Ví dụ,

$ s9s cluster --create \
        --cluster-type=mysqlreplication \     --nodes="192.168.1.117?master;192.168.1.113?slave;192.168.1.115?slave;192.168.1.116?master;192.168.1.118?slave;192.168.1.119?slave;" \
        --vendor=oracle \
        --db-admin="root" \
        --db-admin-passwd="root123" \
        --cluster-name=ft_replication_23986 \
        --provider-version=5.7 \
        --log

Lệnh trên cho phép bạn triển khai một cụm Sao chép MySQL cung cấp các địa chỉ IP sau cùng với các đối số của nó, cho dù đó là chính hay phụ.

Công cụ này cung cấp các tính năng mạnh mẽ và hiệu quả hơn ngoài việc chỉ triển khai tự động cơ sở dữ liệu yêu thích của bạn mà chúng tôi hỗ trợ, chẳng hạn như MySQL. Xem tài liệu của chúng tôi về ClusterControl để tìm hiểu thêm về các công cụ CLI của s9s


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để rút lại mật khẩu mặn từ Cơ sở dữ liệu và người dùng xác thực?

  2. Xóa dữ liệu khỏi cơ sở dữ liệu MySQL

  3. Cách tìm bản ghi trùng lặp trong MySQL

  4. Python 3.4.0 với cơ sở dữ liệu MySQL

  5. Hiển thị truy vấn SQL đầy đủ trong Hiển thị danh sách xử lý của MySQL