sql >> Base de Datos >  >> RDS >> MariaDB

Cómo actualizar de MariaDB 10.4 a MariaDB 10.5

MariaDB 10.5 se lanzó como GA en junio de 2020. En el lanzamiento, se agregó soporte para Amazon S3 o cualquier nube pública o privada de terceros que admita la API de S3. También presenta un manejo sofisticado de privilegios que amplía su granularidad, lo que permite que un DBA, por ejemplo, proporcione privilegios limitados a un usuario de base de datos en particular para una mayor seguridad de su base de datos.

MariaDB 10.5 también se jactó de sus mejoras con el motor de almacenamiento InnoDB para su rendimiento y también se presentan algunas variables nuevas, pero las principales variables obsoletas se marcaron como obsoletas o se eliminaron por completo. Por ejemplo, tenga en cuenta que en MariaDB 10.5, innodb_buffer_pool_instances ya se marcó como obsoleto mientras que se eliminó en la versión 10.6. Si tiene curiosidad sobre el motivo que dicen, consulte MDEV-15058.

Con todos estos cambios, es mejor publicar este blog para proporcionar una guía sobre cómo actualizar MariaDB 10.4 a MariaDB 10.5. Explicaremos paso a paso cuáles son las cosas que debe tener en cuenta para actualizar.

Cosas que necesita antes de actualizar

No siempre es el mejor método para actualizar su base de datos en vivo en producción sin hacer una prueba. Esta jerga simple define el término que llamamos SNAFU. Puede presionar Google para encontrar el término, pero básicamente, siempre es mejor no tocar la salud normal, especialmente los sistemas que funcionan normalmente. Sin embargo, no siempre es necesario que su sistema permanezca constante, debe actualizarse para aprovechar los parches de seguridad, las correcciones de errores y las funciones avanzadas que están presentes en las versiones más recientes. Entonces, en este caso, siempre tiene un mecanismo de conmutación por recuperación planificado y configurado antes de la actualización. En caso de que la actualización del sistema se encuentre con problemas que no se observaron, entonces puede tener un impacto en su negocio.

Cree siempre una copia de seguridad de su base de datos

En este caso, proporcione siempre una copia de seguridad de sus datos. Puede utilizar herramientas como mariabackup o mydumper o, si es usuario de ClusterControl, utilice la herramienta de gestión de copias de seguridad de la base de datos. Si aún no está preparado sobre qué tipo de copia de seguridad necesita, es posible que deba consultar las mejores prácticas al realizar una copia de seguridad.

Prueba...Prueba... y vuelve a probar

Si bien la copia de seguridad proporciona datos para alimentar en caso de que necesite restaurar a su estado principal si ocurren problemas imprevistos, la actualización a una versión principal debe probarse primero en una máquina de desarrollo o preparación. Para las grandes empresas, es una práctica común realizar siempre una prueba de regresión en un entorno de control de calidad específico o un entorno de ensayo donde primero se debe aplicar la actualización de los servidores de base de datos a su versión principal. Todos los sistemas de la aplicación y la base de datos deben pasar una prueba de regresión o una serie de pruebas de control de calidad hasta que todo haya pasado. No es una buena idea simplificar un caso de prueba de su aplicación yendo a los sistemas de base de datos y simplemente descartar que todo esté bien siempre y cuando la base de datos no se bloquee o solo se haya probado por un corto período de tiempo donde la prueba es En resumen, una prueba muy simple que solo cubre un pequeño porcentaje de su sistema general. Se debe priorizar la prueba de su actualización primero en un entorno provisional o de control de calidad, de modo que tenga que lograr la forma perfectamente buena de su aplicación sin afectar el lado comercial y también a los usuarios que van a utilizar su aplicación, que darse cuenta tarde de que la actualización de la base de datos hace que su sistema se comporte de manera anormal debido a cambios que aún no ha descubierto.

Preparar un procedimiento de restauración

Todo debe planificarse durante la actualización de su base de datos. Siempre que la copia de seguridad está disponible y las pruebas revelan resultados sólidos y prometedores, siempre se siente seguro y predecible en caso de que surjan desafíos inesperados al actualizar sus servidores de base de datos MariaDB de producción. En este caso, siempre escriba y prepare un procedimiento que haga que las cosas vuelvan a la normalidad sin problemas y sin problemas.

Si su ventana de mantenimiento no es demasiado larga, preparar un procedimiento de restauración con herramientas automatizadas como Ansible, Chef, Puppet, SaltStack o Terraform puede ser una buena opción para el procedimiento de restauración. Minimiza los errores humanos y proporciona velocidad y agilidad para realizar tareas vitales. Aunque podría dañarse en caso de que se encuentre un solo error si falla el script de automatización, eso también significa que no puede ignorar la posibilidad de que esto pueda suceder. Por lo tanto, esto también indica que la restauración debe ser perfecta y se ha probado correctamente para que pueda restaurarse en un procedimiento válido.

Procedimientos de actualización de MariaDB

Actualizar su MariaDB versión 10.4 a 10.5 no es una molestia, pero es sencillo. A continuación se muestran los pasos que puede seguir para actualizar a la última versión de MariaDB 10.5.

Prepare su repositorio

Es comprensible que tenga MariaDB 10.4, por lo que se supone que hay un repositorio presente en sus nodos de servidor MariaDB actuales. De lo contrario, puede agregar un repositorio de todos modos y eso es simple.

Ubuntu/Debian

Para sistemas basados ​​en Ubuntu/Debian, para un repositorio mariadb existente, puede editar el repositorio. Es posible que pueda verificar si los repositorios existentes están en su host o encontrar si hay un repositorio MariaDB existente en alguna parte. Para hacer eso, solo,

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

Normalmente, tiene un repositorio mariadb.list. En mi configuración en Ubuntu 18.0 (Bionic), esto se muestra de la siguiente manera:

[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

Simplemente ejecute la siguiente línea de comando para agregar el repositorio de MariaDB 10.5,

 . /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

Antes de que se puedan instalar los paquetes de MariaDB, se requiere que los paquetes que se instalarán se importen con la clave pública GPG que se utiliza para verificar las firmas digitales de los paquetes en su repositorio. Puede verificar sus claves apt con lo siguiente,

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

Si las claves no se importan, 

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

o para versiones más nuevas basadas en Ubuntu/Debian, es decir, comenzando con Debian 9 (Stretch) y Debian Unstable (Sid) y Ubuntu 16.04 LTS (Xenial),

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

Una vez hecho, simplemente ejecute

$ sudo apt update

CentOS/RHEL

Para CentOS/RHEL, si tiene un repositorio existente, simplemente puede agregar o editar el archivo. De lo contrario, agregar las líneas a continuación para el repositorio de MariaDB 10.5 será suficiente para los requisitos del repositorio (ver mariadb.repo). Por ejemplo, tengo el siguiente mariadb.repo en mi host CentOS 8.0.

[[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

Puede verificar que si el repositorio de MariaDB está habilitado y funciona bien:

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

repo id                                repo name                                              status

mariadb_10.5                           MariaDB Repository For 10.5                            83

Actualice sus paquetes de MariaDB

Actualizar con MariaDB es muy sencillo. Primero asegúrese de haber cerrado correctamente el servidor MariaDB.

Para un servidor de producción activo y ocupado, asegúrese de que no tenga conexiones entrantes y que las páginas sucias se vacíen correctamente en el disco. Antes de apagar el servidor, puede configurar el vaciado de páginas sucias con su motor de almacenamiento Innodb de manera agresiva para que todas las páginas sucias se vacíen y hacer que el proceso de apagado sea más rápido,

set global innodb_max_dirty_pages_pct = 0;

Luego controle las páginas sucias con lo siguiente,

$ mysqladmin ext -i10 | grep dirty

| Innodb_buffer_pool_pages_dirty                         | 0                                                |

| Innodb_buffer_pool_bytes_dirty                         | 0                                                |

Una vez que esté bien, apague la instancia de MariaDB,

systemctl stop mariadb

Para un clúster de base de datos maestro/réplica, es una buena práctica comenzar siempre la actualización en las réplicas. Entonces, antes de la actualización y después del apagado, asegúrese de haber agregado lo siguiente en su archivo de configuración my.cnf,

[mysqld]

….

skip-slave-start

Esto le permite evitar iniciar automáticamente los subprocesos de replicación cuando se inicia el servidor MariaDB. Esto le da más seguridad y evita más errores en la replicación. Solo inicie los subprocesos de replicación manualmente una vez que esté listo con la siguiente declaración,

START SLAVE;

Ubuntu/Debian

Actualizar con sistemas basados ​​en Ubuntu/Debian es bastante sencillo,

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

Por supuesto, no proporcione la opción -y para que pueda revisar los siguientes paquetes para actualizarlos.

Centos/RHEL

Al igual que con los sistemas basados ​​en Ubuntu/Debian, CentOS/RHEL tampoco muestra problemas para actualizar su versión actual de MariaDB 10.4. Puede ejecutar el siguiente comando a continuación para completar el proceso,

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

Instalación posterior/Actualización del paquete

Una vez que se hayan actualizado los paquetes. Dado que esta es una actualización importante, no olvide volver a cargar el daemon para systemd. Solo corre,

$ systemctl daemon-reload

Ahora que está listo, inicie el servicio mariadb

$ systemctl start mariadb

 y ejecute mysqld_upgrade,

$ mysql_upgrade 

Mientras ejecuta mysql_upgrade, siempre controle el registro de errores para que pueda detectar cualquier error antes de ejecutar e iniciar todo para sus operaciones normales:

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

Consejos de actualización para usuarios de ClusterControl

Dado que ClusterControl no proporciona actualizaciones de versiones principales, al realizar una actualización de paquete, no olvide desactivar los modos de recuperación automática para su clúster de MariaDB. Establezca los nodos en modo de mantenimiento para que las alertas sean silenciosas y no se notifiquen alertas falsas.