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

Cách thay thế MySQL bằng Percona trên Plesk CentOS 7

Bài viết này phác thảo quy trình thay thế dịch vụ MySQL®️ hoặc MariaDB®️ gốc được cài đặt sẵn trên bất kỳ máy chủ Plesk Onyx 11 CentOS 7 điển hình nào. Quy trình phác thảo việc loại bỏ các tệp nhị phân liên quan đến MySQL hiện có và thay thế chúng bằng một phiên bản thích hợp của các tệp nhị phân Percona. Sau khi các tệp nhị phân Percona này có sẵn, quá trình nâng cấp phiên bản MySQL Incremental đa tầng điển hình được xử lý để đưa các cơ sở dữ liệu hiện có và các tệp nhị phân Percona sang phiên bản Percona 5.7 mong muốn.

Kỳ vọng bảo trì:Độ dài &Thời gian ngừng hoạt động

Thời gian Bảo trì Đề xuất: 90 phút
Thời gian ngừng hoạt động dự kiến ​​tối thiểu: ~ 30 phút vỗ về dịch vụ

Thời gian ngừng hoạt động dịch vụ MySQL dự kiến ​​cho quy trình này là dưới 30 phút tính khả dụng của dịch vụ MySQL lên và xuống liên tục (vỗ). Con số này giả định rằng tất cả đều diễn ra suôn sẻ và không có sai sót không lường trước được. Thời lượng bảo trì được đề xuất cho phép thời gian để khắc phục sự cố nếu lỗi phát sinh cũng như thêm 30 phút trong trường hợp không chắc chắn rằng tất cả các thay đổi cần được hoàn nguyên và kế hoạch bảo trì bị hủy bỏ.

Tổng quan về các giai đoạn bảo trì

Kế hoạch được chia thành các nhiệm vụ và giai đoạn chuẩn bị. Các công việc chuẩn bị nên được hoàn thành trước thời gian bắt đầu của cửa sổ bảo trì của bạn. Các giai đoạn được tiến hành trong suốt cửa sổ sự kiện bảo trì và hướng dẫn toàn bộ quy trình để hoàn thành từng giai đoạn quan trọng của đề cương.

Chuẩn bị - Nhiệm vụ trước khi bảo trì

Hai nhiệm vụ quan trọng này phải được hoàn thành trước thời gian bắt đầu theo lịch trình của cửa sổ bảo trì của bạn:

  • Sao chép tệp cấu hình MySQL hiện có
  • Giai đoạn sao lưu dữ liệu cơ sở dữ liệu MySQL

Chúng tôi sử dụng giai đoạn 0 trong kế hoạch này để giúp đẩy nhanh quá trình sao lưu dữ liệu MySQL. Vì lượng dữ liệu mà MySQL lưu giữ sẽ rất khác nhau trên mỗi máy chủ, nên bạn nên chạy một giải pháp sao lưu gia tăng, như rsync, trước đó đến cửa sổ sự kiện bảo trì. Rsync sẽ sao lưu phần lớn dữ liệu tĩnh trong khi MySQL vẫn đang chạy và sau đó sẽ sao lưu sự khác biệt gia tăng khi MySQL ngừng hoạt động để bảo trì.

Sao chép tệp cấu hình MySQL hiện có:
1) Tạo một bản sao lưu của tệp cấu hình của chính tôi hiện có.

cp -pv /etc/my.cnf{,.pre-percona.bak}

Giai đoạn sao lưu dữ liệu cơ sở dữ liệu MySQL:

2) Chạy rsync sau để sao chép dữ liệu MySQL. [QUAN TRỌNG:bắt buộc phải có dấu gạch chéo ở cuối]

rsync -vaH /var/lib/mysql{,.pre-percona}/

Lưu ý:Cơ sở dữ liệu rất lớn sẽ mất nhiều thời gian hơn để hoàn thành vì vậy hãy lập kế hoạch cho phù hợp.

3) Chờ bước 1 hoàn thành trước khi bắt đầu Giai đoạn 1.

Giai đoạn 1 - Tắt MySQL &Chạy lại Đồng bộ hóa Rsync Cuối cùng

Mục đích của giai đoạn một là đảm bảo một bản sao lưu nguyên sơ của dữ liệu MySQL được thực hiện trước khi tiếp tục. Để thực hiện điều này, cần phải dừng hoàn toàn các dịch vụ MySQL để tất cả các bộ đệm được ghi và không có thay đổi bổ sung nào được ghi vào cơ sở dữ liệu. Sau khi dừng, rsync lại được thực thi để sao chép sự khác biệt giữa dữ liệu nguyên sơ hiện đã dừng và dữ liệu sao lưu đích.

1) Tắt dịch vụ MySQL / MariaDB

systemctl stop mysql

2) Chạy lại rsync sau để hoàn thiện dữ liệu đã sao chép. [QUAN TRỌNG:bắt buộc phải có dấu gạch chéo ở cuối]

rsync -vaH /var/lib/mysql{,.pre-percona}/

3) Chờ rsync hoàn tất trước khi chuyển sang Giai đoạn 3.

Giai đoạn 2 - Thay thế MariaDB 5.5 Binaries bằng Percona 5.5

LƯU Ý:MariaDB 5.5 là phiên bản được cài đặt với Onyx 11 CentOS 7, vì vậy đây là điểm bắt đầu.

Việc thay thế các mã nhị phân hiện có liên quan đến việc xóa các gói nhị phân cần thiết khỏi hệ thống bằng cách sử dụng công cụ dòng lệnh RPM thay vì yum. Điều này cho phép các gói được gỡ bỏ mà không cần chạm vào bất kỳ phần phụ thuộc nào liên kết đến các gói hệ thống khác. Vì Percona, giống như MariaDB, là một bản thay thế cho MySQL, khi các tệp nhị phân mới được đặt vào vị trí, các phần phụ thuộc được liên kết sẽ không biết sự khác biệt và sẽ hoạt động bình thường.

1) Loại bỏ các gói MariaDB không có phụ thuộc:

rpm -e --nodeps mariadb mariadb-libs mariadb-server

2) Xóa gói mariadb-devel (thực hiện điều này như một lệnh riêng biệt ở trên để tránh việc xóa không thành công do thiếu gói)

rpm -e --nodeps mariadb-devel

3) Cài đặt kho lưu trữ Percona:

yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

4) Cài đặt máy chủ Percona DB:

yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55

5) Thực thi các lệnh sau (cho phép plugin InnoDB tải chính xác)

mv /var/lib/mysql/ibdata1 /var/lib/mysql/ibdata1.bak
cp -a /var/lib/mysql/ibdata1.bak /var/lib/mysql/ibdata1
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
cp -a /var/lib/mysql/ib_logfile0.bak /var/lib/mysql/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
cp -a /var/lib/mysql/ib_logfile1.bak /var/lib/mysql/ib_logfile1

6) Đảm bảo rằng không có quá trình nào đang lắng nghe trên cổng 3306 và hủy quá trình nếu có.

netstat -tulpn | grep 3306

7) Khởi động MySQL (bây giờ là Percona 5.5)

service mysql start

8) Chạy tập lệnh mysql_upgrade

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

9) [Tùy chọn] Bật Percona XtraDB Cluster UDF từ Percona Toolkit:

plesk db -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
plesk db -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
plesk db -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"

10) Khởi động lại MySQL để hoàn tất quy trình nâng cấp

systemctl start mysql

Giai đoạn 3 - Chuyển Gói Plesk MySQL sang gói Cộng đồng MySQL Plesk

Chạy Percona trên Plesk là một cấu hình không được hỗ trợ. Vì lý do này, để đáp ứng các kết nối phụ thuộc giữa gói Plesk MySQL và các tệp nhị phân Percona mới, cần phải chuyển bản phát hành Plesk MySQL sang sử dụng bản phát hành Plesk MySQL Community. Thay đổi là cần thiết để tạo điều kiện thuận lợi cho việc nâng cấp và hạ cấp các phiên bản Percona.

1) Tạo tệp cấu hình repo cần thiết:

printf '[PLESK_17_8_11-dist] %s\nname=PLESK_17_5_3 dist %s\nbaseurl=http://autoinstall.plesk.com/PSA_17.8.11/dist-rpm-CentOS-7-x86_64/ %s\nenabled=1 %s\ngpgcheck=1 %s\n' > /etc/yum.repos.d/plesk178.repo

2) Cài đặt gói “plesk-mysql-server-community” từ kho lưu trữ mới:

yum install plesk-mysql-server-community

3) Tắt tệp /etc/yum.repos.d/plesk178.repo vì nó không còn cần thiết nữa:

mv /etc/yum.repos.d/plesk178.repo{,.disabled}

4) Xóa gói "plesk-mysql-server" mà không chạm vào phần phụ thuộc.

rpm -e --nodeps plesk-mysql-server

Percona hiện đã được cài đặt và hoạt động trên phiên bản 5.5 cơ sở. Các giai đoạn tiếp theo giống với quy trình nâng cấp MySQL điển hình trong đó các tệp nhị phân được nâng cấp và sau đó cập nhật giản đồ được thực hiện theo cách thủ công bằng cách sử dụng công cụ mysql_upgrade.

Nâng cấp Percona 5.5 lên 5.6

1) Dừng dịch vụ MySQL:

service mysql stop

2) Loại bỏ các gói Percona 55 mà không có phụ thuộc:

rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55

3) Cài đặt gói Percona 56

yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

4) Đảm bảo rằng không có quá trình nào đang lắng nghe trên cổng 3306 và hủy quá trình nếu có.

netstat -tulpn | grep 3306

5) Khởi động dịch vụ MySQL:

service mysql start

6) Nâng cấp bảng MySQL:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Giai đoạn 4 - Nâng cấp Percona 5.6 lên 5.7

1) Dừng dịch vụ MySQL:

service mysql stop

2) Loại bỏ các gói Percona 56 mà không có phụ thuộc:

rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

3) Cài đặt gói Percona 57

yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57

4) Đảm bảo rằng không có quá trình nào đang lắng nghe trên cổng 3306 và hủy quá trình nếu có.

netstat -tulpn | grep 3306

5) Khởi động dịch vụ MySQL:

service mysql start

6) Nâng cấp bảng MySQL:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Giai đoạn 5 - Hoàn thiện Nâng cấp

Hệ thống bây giờ sẽ chạy Percona 5.7 và hoàn toàn có thể truy cập được bằng các ứng dụng. Ở giai đoạn này, bất kỳ trang web hoặc ứng dụng nào sử dụng cơ sở dữ liệu phải được kiểm tra và điều tra bất kỳ lỗi nào.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm MySQL FLOOR () - Làm tròn xuống số nguyên gần nhất

  2. Có cách nào để chạy MySQL trong bộ nhớ cho các trường hợp thử nghiệm JUnit không?

  3. Lỗi MySQL 1241:Toán hạng phải chứa 1 (các) cột

  4. Cách chuyển đổi cơ sở dữ liệu MySQL sang mã hóa UTF-8

  5. Hiển thị (Danh sách) Cơ sở dữ liệu MySQL trên Linux qua Dòng lệnh