sql >> Databáze >  >> RDS >> Mysql

Jak nahradit MySQL Perconou na Plesk CentOS 7

Tento článek popisuje postup pro nahrazení nativní služby MySQL®️ nebo MariaDB®️, která je předinstalovaná na jakémkoli typickém serveru Plesk Onyx 11 CentOS 7. Postup popisuje odstranění existujících binárních souborů souvisejících s MySQL a jejich nahrazení adekvátní verzí binárních souborů Percona. Jakmile jsou tyto binární soubory Percona na místě, zpracuje se typický vícestupňový upgrade přírůstkové verze MySQL, aby se stávající databáze a binární soubory Percona přenesly na požadovanou verzi Percona 5.7.

Očekávaná údržba:Délka a prostoje

Doporučená délka údržby: 90 minut
Minimální očekávaná doba výpadku: ~30 minut služby mávání

Očekávaný výpadek služby MySQL pro tuto proceduru je méně než 30 minut dostupnosti služby MySQL, která se opakovaně zvyšuje a snižuje (třepání). Tento údaj předpokládá, že vše proběhne hladce a nenastanou žádné nepředvídané chyby. Navrhovaná délka údržby poskytuje čas na odstranění závady, stejně jako dalších 30 minut v nepravděpodobném případě, že bude nutné vrátit všechny změny a plán údržby přerušit.

Přehled fází údržby

Plán je rozdělen do přípravných úkolů a fází. Přípravné úkoly by měly být dokončeny před začátkem období údržby. Fáze probíhají během okna události údržby a procházejí celým postupem pro splnění každé důležité fáze osnovy.

Příprava – Úlohy před údržbou

Tyto dvě důležité úlohy musí být dokončeny před plánovaným časem zahájení vašeho okna údržby:

  • Zkopírujte existující konfigurační soubor MySQL
  • Fázová záloha dat databáze MySQL

V tomto plánu používáme fázi nula, abychom urychlili proces zálohování dat MySQL. Vzhledem k tomu, že množství dat, která MySQL pojme, se u jednotlivých serverů výrazně liší, je dobrým zvykem spouštět řešení pro přírůstkové zálohování, jako je rsync, prior do okna události údržby. Rsync bude zálohovat většinu statických dat, zatímco MySQL stále běží, a poté bude zálohovat přírůstkový rozdíl, jakmile bude MySQL vypnut z důvodu údržby.

Zkopírujte existující konfigurační soubor MySQL:
1) Vytvořte záložní kopii existujícího konfiguračního souboru.

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

Fáze zálohování dat databáze MySQL:

2) Spusťte následující rsync pro klonování dat MySQL. [DŮLEŽITÉ:je vyžadováno koncové lomítko]

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

Poznámka:Dokončení velmi velkých databází bude trvat podstatně déle, proto plánujte odpovídajícím způsobem.

3) Před zahájením fáze 1 počkejte na dokončení kroku 1.

Fáze 1 – Vypnutí MySQL a opětovné spuštění Rsync Final Sync

Účelem první fáze je zajistit, aby byla před pokračováním vytvořena původní záloha dat MySQL. K tomu je nutné úplně zastavit služby MySQL, aby byly zapsány všechny buffery a do databáze se nezapisovaly žádné další změny. Po zastavení se rsync znovu spustí, aby se zkopírovaly rozdíly mezi nyní zastavenými původními daty a cílovými zálohovanými daty.

1) Vypněte službu MySQL/MariaDB

systemctl stop mysql

2) Znovu spusťte následující rsync a dokončete klonovaná data. [DŮLEŽITÉ:je vyžadováno koncové lomítko]

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

3) Počkejte na dokončení rsync, než přejdete do fáze 3.

Fáze 2 – Nahraďte binárky MariaDB 5.5 za Percona 5.5

POZNÁMKA:MariaDB 5.5 je verze nainstalovaná s Onyx 11 CentOS 7, takže toto je výchozí bod.

Nahrazení stávajících binárních souborů zahrnuje odstranění nezbytných binárních balíčků ze systému pomocí nástroje příkazového řádku RPM namísto yum. To umožňuje, aby byly balíčky odstraněny, aniž byste se dotkli jakékoli závislosti odkazující na jiné systémové balíčky. Vzhledem k tomu, že Percona, stejně jako MariaDB, je náhradní náhradou za MySQL, jakmile budou nové binární soubory zavedeny, propojené závislosti nebudou znát rozdíl a budou fungovat normálně.

1) Odeberte balíčky MariaDB bez závislostí:

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

2) Odebrat balíček mariadb-devel (proveďte to jako samostatný příkaz shora, abyste předešli selhání odstranění chybějícího balíčku)

rpm -e --nodeps mariadb-devel

3) Nainstalujte úložiště Percona:

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

4) Nainstalujte server Percona DB:

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

5) Proveďte následující příkazy (umožňuje správné načtení pluginu 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) Ujistěte se, že na portu 3306 nenaslouchají žádné procesy a případně proces ukončete.

netstat -tulpn | grep 3306

7) Spusťte MySQL (nyní Percona 5.5)

service mysql start

8) Spusťte skript mysql_upgrade

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

9) [Volitelné] Povolte 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) Restartováním MySQL dokončíte postup upgradu

systemctl start mysql

Fáze 3 – Přepněte balíček Plesk MySQL na komunitní balíček Plesk MySQL

Spuštění Percony na Plesku je nepodporovaná konfigurace. Z tohoto důvodu, aby se uspokojila závislostní spojení mezi balíčkem Plesk MySQL a novými binárními soubory Percona, je nutné místo toho přepnout vydání Plesk MySQL na používání verze Plesk MySQL Community. Změna je nezbytná pro usnadnění upgradu a downgradu verzí Percona.

1) Vytvořte potřebný konfigurační soubor úložiš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) Nainstalujte balíček „plesk-mysql-server-community“ z nového úložiště:

yum install plesk-mysql-server-community

3) Deaktivujte soubor /etc/yum.repos.d/plesk178.repo, protože již není potřeba:

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

4) Odstraňte balíček „plesk-mysql-server“, aniž byste se dotkli závislostí.

rpm -e --nodeps plesk-mysql-server

Percona by nyní měla být nainstalována a pracovat na základní verzi 5.5. Další fáze jsou totožné s typickým procesem upgradu MySQL, kde se upgradují binární soubory a poté se aktualizace schématu provedou ručně pomocí nástroje mysql_upgrade.

Upgradujte Percona 5.5 na 5.6

1) Zastavit službu MySQL:

service mysql stop

2) Odstraňte balíčky Percona 55 bez závislostí:

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

3) Nainstalujte balíčky Percona 56

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

4) Ujistěte se, že na portu 3306 nenaslouchají žádné procesy a případně proces ukončete.

netstat -tulpn | grep 3306

5) Spusťte službu MySQL:

service mysql start

6) Upgrade tabulek MySQL:

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

Fáze 4 – Upgrade Percona 5.6 na 5.7

1) Zastavit službu MySQL:

service mysql stop

2) Odstraňte balíčky Percona 56 bez závislostí:

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

3) Nainstalujte balíčky Percona 57

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

4) Ujistěte se, že na portu 3306 nenaslouchají žádné procesy a případně proces ukončete.

netstat -tulpn | grep 3306

5) Spusťte službu MySQL:

service mysql start

6) Upgrade tabulek MySQL:

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

Fáze 5 – Dokončení upgradu

Systém by nyní měl používat Percona 5.7 a být plně přístupný aplikacím. V této fázi by měly být otestovány všechny stránky nebo aplikace využívající databázi a prozkoumány případné chyby.


  1. Použití JDeveloper s databází MySQL a databází Oracle na AWS RDS, část 2

  2. Připojení Oracle k SQL Serveru z Windows

  3. Jak vygenerovat balíček API tabulky v Oracle SQL Developer?

  4. SQLAlchemy, Psycopg2 a Postgresql COPY