Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zastąpić MySQL Perconą w Plesk CentOS 7?

W tym artykule opisano procedurę zastępowania natywnej usługi MySQL®️ lub MariaDB®️, która jest preinstalowana na dowolnym typowym serwerze Plesk Onyx 11 CentOS 7. Procedura obejmuje usunięcie istniejących plików binarnych związanych z MySQL i zastąpienie ich odpowiednią wersją plików binarnych Percony. Po utworzeniu tych plików binarnych Percony, typowa wieloetapowa aktualizacja wersji MySQL Incremental jest przetwarzana w celu dostosowania istniejących baz danych i plików binarnych Percony do pożądanej wersji Percona 5.7.

Oczekiwania dotyczące konserwacji:długość i przestoje

Sugerowany czas trwania konserwacji: 90 minut
Minimalny oczekiwany czas przestoju: ~30 minut trzepotania serwisu

Przewidywany czas przestoju usługi MySQL dla tej procedury to mniej niż 30 minut ciągłego zwiększania i zmniejszania dostępności usługi MySQL (trzepotanie). Ta liczba zakłada, że ​​wszystko idzie gładko i nie występują żadne nieprzewidziane błędy. Sugerowana długość konserwacji zapewnia czas na rozwiązanie problemu w przypadku wystąpienia błędu, a także dodatkowe 30 minut w mało prawdopodobnym przypadku, gdy wszystkie zmiany będą musiały zostać cofnięte, a plan konserwacji przerwany.

Omówienie etapów konserwacji

Plan podzielony jest na zadania i etapy przygotowawcze. Zadania przygotowawcze należy zakończyć przed rozpoczęciem okna konserwacji. Etapy są przeprowadzane w całym oknie konserwacji i przechodzą przez całą procedurę w celu wykonania każdego ważnego etapu zarysu.

Przygotowanie – zadania przed konserwacją

Te dwa ważne zadania muszą zostać wykonane przed zaplanowanym czasem rozpoczęcia okresu konserwacji:

  • Skopiuj istniejący plik konfiguracyjny MySQL
  • Etapowa kopia zapasowa danych bazy danych MySQL

W tym planie używamy etapu zero, aby przyspieszyć proces tworzenia kopii zapasowej danych MySQL. Ponieważ ilość danych przechowywanych przez MySQL różni się znacznie w zależności od serwera, dobrą praktyką jest uruchomienie rozwiązania do przyrostowej kopii zapasowej, takiego jak rsync, prior do okna zdarzenia konserwacji. Rsync wykona kopię zapasową większości statycznych danych, gdy MySQL nadal działa, a następnie wykona kopię zapasową przyrostowej różnicy po zamknięciu MySQL w celu konserwacji.

Skopiuj istniejący plik konfiguracyjny MySQL:
1) Utwórz kopię zapasową istniejącego pliku konfiguracyjnego siebie.

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

Etapowa kopia zapasowa danych bazy danych MySQL:

2) Uruchom następujący rsync, aby sklonować dane MySQL. [WAŻNE:wymagany końcowy ukośnik]

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

Uwaga:Bardzo duże bazy danych potrwają znacznie dłużej, więc odpowiednio zaplanuj.

3) Poczekaj na zakończenie kroku 1 przed rozpoczęciem etapu 1.

Etap 1 – Wyłącz MySQL i ponownie uruchom Rsync Final Sync

Celem pierwszego etapu jest zapewnienie nieskazitelnej kopii zapasowej danych MySQL przed kontynuowaniem. Aby to osiągnąć, konieczne jest całkowite zatrzymanie usług MySQL, aby wszystkie bufory zostały zapisane i żadne dodatkowe zmiany nie były zapisywane w bazie danych. Po zatrzymaniu rsync jest wykonywany ponownie, aby skopiować różnice między zatrzymanymi pierwotnymi danymi a docelowymi danymi kopii zapasowej.

1) Wyłącz usługę MySQL/MariaDB

systemctl stop mysql

2) Uruchom ponownie następujący program rsync, aby sfinalizować sklonowane dane. [WAŻNE:wymagany końcowy ukośnik]

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

3) Poczekaj na zakończenie rsync, zanim przejdziesz do etapu 3.

Etap 2 – Zamień pliki binarne MariaDB 5.5 na Percona 5.5

UWAGA:MariaDB 5.5 to wersja instalowana z Onyx 11 CentOS 7, więc jest to punkt wyjścia.

Zastąpienie istniejących plików binarnych wiąże się z usunięciem niezbędnych pakietów binarnych z systemu za pomocą narzędzia wiersza poleceń RPM zamiast yum. Pozwala to na usunięcie pakietów bez dotykania żadnej z zależności łączących się z innymi pakietami systemowymi. Ponieważ Percona, podobnie jak MariaDB, jest bezpośrednim zamiennikiem MySQL, po wprowadzeniu nowych plików binarnych, połączone zależności nie będą rozpoznawać różnicy i będą działać normalnie.

1) Usuń pakiety MariaDB bez zależności:

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

2) Usuń pakiet mariadb-devel (zrób to jako oddzielne polecenie od powyższego, aby uniknąć niepowodzenia usuwania z braku pakietu)

rpm -e --nodeps mariadb-devel

3) Zainstaluj repozytorium Percona:

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

4) Zainstaluj serwer Percona DB:

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

5) Wykonaj następujące polecenia (pozwala na poprawne załadowanie wtyczki InnoDB)

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) Upewnij się, że nie ma żadnych procesów nasłuchujących na porcie 3306 i zabij proces, jeśli taki istnieje.

netstat -tulpn | grep 3306

7) Uruchom MySQL (teraz Percona 5.5)

service mysql start

8) Uruchom skrypt mysql_upgrade

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

9) [Opcjonalnie] Włącz Percona XtraDB Cluster UDF z 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) Uruchom ponownie MySQL, aby zakończyć procedurę aktualizacji

systemctl start mysql

Etap 3 – Przełącz pakiet Plesk MySQL na pakiet społeczności Plesk MySQL

Uruchamianie Percony na Plesku to nieobsługiwana konfiguracja. Z tego powodu, aby spełnić zależności między pakietem Plesk MySQL a nowymi plikami binarnymi Percona, konieczne jest przełączenie wersji Plesk MySQL na korzystanie z wersji Plesk MySQL Community. Zmiana jest konieczna, aby ułatwić aktualizowanie i obniżanie wersji Percony.

1) Utwórz niezbędny plik konfiguracyjny repozytorium:

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) Zainstaluj pakiet „plesk-mysql-server-community” z nowego repozytorium:

yum install plesk-mysql-server-community

3) Wyłącz plik /etc/yum.repos.d/plesk178.repo, ponieważ nie jest już potrzebny:

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

4) Usuń pakiet „plesk-mysql-server” bez dotykania zależności.

rpm -e --nodeps plesk-mysql-server

Percona powinna być teraz zainstalowana i działać na podstawowej wersji 5.5. Kolejne etapy są identyczne z typowym procesem aktualizacji MySQL, w którym uaktualniane są pliki binarne, a następnie aktualizacje schematu są dokonywane ręcznie za pomocą narzędzia mysql_upgrade.

Uaktualnij Perconę 5.5 do 5.6

1) Zatrzymaj usługę MySQL:

service mysql stop

2) Usuń pakiety Percona 55 bez zależności:

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

3) Zainstaluj pakiety Percona 56

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

4) Upewnij się, że nie ma żadnych procesów nasłuchujących na porcie 3306 i zabij proces, jeśli taki istnieje.

netstat -tulpn | grep 3306

5) Uruchom usługę MySQL:

service mysql start

6) Uaktualnij tabele MySQL:

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

Etap 4 – Ulepsz Perconę 5.6 do 5.7

1) Zatrzymaj usługę MySQL:

service mysql stop

2) Usuń pakiety Percona 56 bez zależności:

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

3) Zainstaluj pakiety Percona 57

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

4) Upewnij się, że nie ma żadnych procesów nasłuchujących na porcie 3306 i zabij proces, jeśli taki istnieje.

netstat -tulpn | grep 3306

5) Uruchom usługę MySQL:

service mysql start

6) Uaktualnij tabele MySQL:

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

Etap 5 – Finalizacja aktualizacji

System powinien teraz działać w wersji Percona 5.7 i być w pełni dostępny dla aplikacji. Na tym etapie wszelkie witryny lub aplikacje korzystające z bazy danych powinny zostać przetestowane, a wszelkie błędy zbadane.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy pole tabeli może zawierać myślnik?

  2. Zarządzanie bazą danych MySQL w cPanel za pomocą PHPMyAdmin

  3. Jak wybrać tylko datę z pola DATETIME w MySQL?

  4. Wystąpił błąd JNI, sprawdź instalację i spróbuj ponownie w Eclipse x86 Windows 8.1

  5. Jak zrobić zbiorcze wstawianie w mySQL za pomocą node.js?