sql >> Databáze >  >> RDS >> MariaDB

Jak upgradovat z MariaDB 10.4 na MariaDB 10.5

MariaDB 10.5 byla vydána jako GA v červnu 2020. Ve vydání byla přidána podpora pro Amazon S3 nebo jakýkoli veřejný nebo soukromý cloud třetích stran, který podporuje S3 API. Vyznačuje se také sofistikovaným zpracováním oprávnění rozšiřujících jeho granularitu, což umožňuje například správci databází poskytovat omezená oprávnění konkrétnímu uživateli databáze pro přísné zabezpečení vaší databáze.

MariaDB 10.5 se také chlubila svými vylepšeními s úložným jádrem InnoDB pro svůj výkon a jsou také prezentovány některé nové proměnné, ale hlavní zastaralé proměnné byly označeny jako zastaralé nebo zcela odstraněny. Všimněte si například, že v MariaDB 10.5 již byla innodb_buffer_pool_instances označena jako zastaralá, zatímco ve verzi 10.6 je nastavena na její odstranění. Pokud vás zajímá jakýkoli důvod, který říkají, podívejte se na MDEV-15058.

Se všemi těmito změnami je nejlepší doručit tento blog, který poskytne návod, jak upgradovat MariaDB 10.4 na MariaDB 10.5. Vezmeme si to krok za krokem, co jsou věci, které je třeba zvážit při upgradu.

Věci, které potřebujete před upgradem

Není vždy nejlepší metodou upgradovat databázi za provozu bez provedení testu. Tento jednoduchý žargon definuje termín, který nazýváme SNAFU. Můžete kliknout na Google, abyste našli termín, ale v zásadě je vždy nejlepší nedotýkat se normálního zdraví, zejména normálně fungujících systémů. Není to však vždy tak, že váš systém musí zůstat konstantní, musí být upgradován, aby využíval bezpečnostní záplaty, opravy chyb a pokročilé funkce, které jsou přítomné v novějších verzích. Takže v tomto případě máte vždy před upgradem naplánován a nastaven mechanismus obnovení. V případě, že upgrade systému zastihne problémy, které zůstaly bez povšimnutí, může to mít dopad na vaši firmu.

Vždy si vytvořte zálohu databáze

V tomto případě vždy zálohujte svá data. Můžete použít nástroje jako mariabackup nebo mydumper nebo, pokud jste uživatelem ClusterControl, pak použít nástroj Database Backup Management. Pokud ještě nejste připraveni na to, jaký typ zálohy potřebujete, možná budete muset při vytváření zálohy zkontrolovat osvědčené postupy.

Test...Test... a Test znovu

Zatímco záloha poskytuje data pro případ, že byste je potřebovali obnovit do primárního stavu, pokud nastanou nepředvídatelné problémy, upgrade na hlavní vydání je třeba nejprve otestovat na vývojovém nebo přípravném stroji. Pro velké podnikové společnosti je běžnou praxí vždy provést regresní test v cíleném prostředí kontroly kvality nebo v pracovním prostředí, kde je nejprve třeba provést upgrade databázových serverů na jejich hlavní verzi. Všechny systémy z aplikace a databáze musí projít regresním testem nebo řadou QA testování, dokud vše neprojde. Není dobrý nápad zjednodušovat testovací případ vaší aplikace na databázových systémech a pouze vyloučit, že je vše v pořádku, pokud databáze nespadne nebo se to jen na krátkou dobu prokázalo tam, kde je test krátký, velmi jednoduchý test, který pokrývá pouze malé procento vašeho celkového systému. První testování vašeho upgradu ve fázi nebo prostředí QA musí mít prioritu tak, že musí dosáhnout dokonale dobrého stavu vaší aplikace, aniž by to mělo dopad na obchodní stránku a také na uživatele, kteří budou vaši aplikaci využívat, než si pozdě uvědomit, že upgrade databáze způsobí, že se váš systém bude chovat abnormálně kvůli změnám, které jste dosud neobjevili.

Připravte postup obnovení

Vše musí být naplánováno během upgradu vaší databáze. Kdykoli je k dispozici zálohování a testování odhalí silné a slibné výsledky, je vždy bezpečné a předvídatelné pro případ, že se při upgradu vašich produkčních databázových serverů MariaDB vyskytnou neočekávané problémy. V takovém případě si vždy napište a připravte postup, díky kterému se věci vrátí hladce a plynule do normálu.

Pokud vaše okno údržby není příliš dlouhé, příprava procedury obnovy pomocí automatických nástrojů, jako je Ansible, Chef, Puppet, SaltStack nebo Terraform, může být dobrou volbou pro proceduru obnovy. Minimalizuje lidské chyby a poskytuje rychlost a hbitost při provádění životně důležitých úkolů. I když může dojít k poškození v případě, že dojde k jediné chybě, pokud automatizační skript selže, pak to také znamená, že nemůžete ignorovat možnost, že k tomu může dojít. Proto to také poukazuje na to, že obnova musí být bezproblémová a musí být řádně otestována, aby byla schopna obnovy do platné procedury.

Postupy upgradu MariaDB

Upgrade vaší MariaDB verze 10.4 na 10.5 není problém, ale není přímočarý. Níže jsou uvedeny kroky, podle kterých můžete upgradovat na nejnovější verzi MariaDB 10.5.

Připravte si úložiště

Je pochopitelné, že máte MariaDB 10.4, takže se předpokládá, že ve vašich aktuálních serverových uzlech MariaDB existuje repozitář. V opačném případě můžete úložiště přidat tak jako tak a je to jednoduché.

Ubuntu/Debian

U systémů založených na Ubuntu/Debianu pro existující repozitář mariadb můžete repozitář upravit. Možná budete moci ověřit, zda jsou existující úložiště ve vašem hostiteli, nebo zjistit, zda někde existuje existující úložiště MariaDB. Chcete-li to provést, stačí,

$ grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*

Obvykle máte úložiště mariadb.list. V mém nastavení v Ubuntu 18.0 (Bionic) to vypadá následovně:

[email protected]:/vagrant# cat /etc/apt/sources.list.d/mariadb.list

deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.4/ubuntu bionic main

Pro přidání úložiště MariaDB 10.5 stačí spustit následující příkazový řádek,

 . /etc/os-release

sudo echo "deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.5/${ID} ${VERSION_CODENAME}  main" >> /etc/apt/sources.list.d/mariadb.list

Před instalací balíčků MariaDB je nutné, aby balíčky, které se mají nainstalovat, byly importovány s veřejným klíčem GPG, který se používá k ověření digitálních podpisů balíčků v jejich úložišti. Klíče apt můžete zkontrolovat pomocí následujícího:

$ apt-key list |grep -C2 -i 'mariadb'

Pokud klíče nejsou importovány, 

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

nebo pro novější verze založené na Ubuntu/Debianu, tj. počínaje Debianem 9 (Stretch) a Debian Unstable (Sid) a Ubuntu 16.04 LTS (Xenial),

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Po dokončení stačí spustit

$ sudo apt update

CentOS/RHEL

Pro CentOS/RHEL, pokud máte existující úložiště, můžete soubor pouze přidat nebo upravit. Jinak přidání řádků níže pro úložiště MariaDB 10.5 postačí požadavkům na úložiště (viz mariadb.repo). Například mám na svém hostiteli CentOS 8.0 následující mariadb.repo.

[[email protected] ~]# cat /etc/yum.repos.d/mariadb.repo

[mariadb]

name = MariaDB Repository

baseurl = http://yum.mariadb.org/10.4/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1



[mariadb_10.5]

name = MariaDB Repository For 10.5

baseurl = http://yum.mariadb.org/10.5/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1

Můžete si ověřit, že pokud je úložiště MariaDB povoleno a funguje správně:

[[email protected] ~]# dnf --disablerepo=* --enablerepo=mariadb_10.5 repolist 

repo id                                repo name                                              status

mariadb_10.5                           MariaDB Repository For 10.5                            83

Upgradujte své balíčky MariaDB

Upgrade pomocí MariaDB je velmi přímočarý. Nejprve se ujistěte, že jste správně vypnuli server MariaDB.

U zaneprázdněného a živého produkčního serveru se ujistěte, že nemáte žádná příchozí připojení a že jsou špinavé stránky správně vyprázdněny na disk. Před vypnutím serveru můžete agresivně nastavit vyprázdnění nečistých stránek pomocí úložiště Innodb, aby byly všechny špinavé stránky vyprázdněny a proces vypínání byl rychlejší.

set global innodb_max_dirty_pages_pct = 0;

Potom sledujte špinavé stránky pomocí následujícího:

$ mysqladmin ext -i10 | grep dirty

| Innodb_buffer_pool_pages_dirty                         | 0                                                |

| Innodb_buffer_pool_bytes_dirty                         | 0                                                |

Až bude vše v pořádku, vypněte instanci MariaDB,

systemctl stop mariadb

U hlavního/replikovaného databázového clusteru je dobrým zvykem vždy zahájit upgrade na replikách. Před upgradem a po vypnutí se tedy ujistěte, že jste do konfiguračního souboru my.cnf přidali následující:

[mysqld]

….

skip-slave-start

To vám umožní vyhnout se automatickému spouštění replikačních vláken při spuštění serveru MariaDB. To vám poskytuje větší bezpečnost a vyhnete se dalším chybám při replikaci. Podprocesy replikace spusťte ručně až poté, co budete připraveni, pomocí následujícího příkazu

START SLAVE;

Ubuntu/Debian

Upgrade se systémy založenými na Ubuntu/Debianu je docela jednoduchý

sudo apt install --only-upgrade  mariadb-server mariadb-client mariadb-backup mariadb-common

Samozřejmě nezadávejte volbu -y, abyste mohli zkontrolovat následující balíčky, které mají být aktualizovány.

Centos/RHEL

Stejně jako u systémů založených na Ubuntu/Debianu, CentOS/RHEL také nevykazuje žádné potíže s aktualizací vaší aktuální verze MariaDB 10.4. Pro tento proces můžete spustit následující příkaz,

$ dnf --disablerepo=* --enablerepo=mariadb_10.5 upgrade Mariadb-server MariaDB-client MariaDB-backup MariaDB-common Mariadb-shared

Po instalaci/aktualizaci balíčku

Jakmile budou balíčky aktualizovány. Protože se jedná o velký upgrade, nezapomeňte znovu načíst démona pro systemd. Stačí běžet,

$ systemctl daemon-reload

Teď, když jste připraveni, spusťte službu mariadb

$ systemctl start mariadb

 a spusťte mysqld_upgrade,

$ mysql_upgrade 

Při spouštění mysql_upgrade vždy sledujte protokol chyb, abyste mohli zachytit případné chyby před spuštěním a spuštěním všeho pro své běžné operace:

tail -5f /var/log/mariadb/mariadb.log

Tipy pro upgrade pro uživatele ClusterControl

Vzhledem k tomu, že ClusterControl neposkytuje upgrade hlavních verzí, při provádění aktualizace balíčku vždy nezapomeňte vypnout režimy automatického obnovení pro váš cluster MariaDB. Nastavte uzly do režimu údržby, aby výstrahy byly tiché a aby nebyly upozorňovány žádné falešné výstrahy.


  1. Je možné mít v MySQL index založený na funkcích?

  2. Vysvětlete podrobněji návrh výkonu JOIN vs. LEFT JOIN a WHERE

  3. Ušetřete čas spouštěním sestav Microsoft Access pomocí filtrů v zobrazení rozvržení

  4. Automatické zvýšení na částečném primárním klíči s Entity Framework Core