mysql, reubicación de bases de datos individuales versus directorio de datos completo

mysql, reubicación de bases de datos individuales versus directorio de datos completo

Necesito reubicar las bases de datos de clientes MySQL a otro disco, con el fin de:

 1. Separation of user data from system files
 2. Ease of backing up system and user data separately
 3. Ease of upgrading the system

Los siguientes artículos fueron útiles:

  [how-to-move-mysql-datadir-to-another-drive][1]
  [move-a-mysql-database-to-another-location][2]

Al ejecutarse en un sistema ubuntu-18, parece que la variable innodb_file_per_table está configurada de forma predeterminada:

mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_%';
...
| innodb_file_per_table                    | ON 
...

(Mismos resultados sin el GLOBAL)

no puedo encontrarcualquierreferencia a innodb_file_per_table en cualquier archivo de configuración; el único archivo con mucho contenido es

  /etc/mysql/mysql.conf.d/mysqld.cnf

Me preocupa lo que todavía se almacena en los archivos.

  /var/lib/mysql/ibdata1
                /ib_logfileN

He notado que simplemente acceder a una base de datos hace que éstas se actualicen.

Mis preguntas son:

  1. Si muevo solo las bases de datos del cliente (a un disco separado) y el disco del sistema se pierde y es necesario volver a crearlo desde cero, ¿se perderá algo?

  2. ¿Es mejor mover todas las bases de datos, incluidas (mysql, performance_schema y sys) a un disco separado?

  3. ¿Es mejor mover todo el directorio de datos a un disco separado, apuntándolo a través de la variable "datadir" en /etc/mysql/mysql.conf.d/mysqld.cnf?

  4. ¿Cuáles son las ramificaciones deno¿Usar la opción 3 si se pierde el disco del sistema?

Respuesta1

Lo mejor sería mover todas las tablas de MySQL a otro disco. Cualquier intento de dividir a los "clientes" agregaría complejidad y dificultaría sus objetivos. (Si eso se convierte en un requisito, podemos discutirlo más a fondo).

Básicamente, el único archivo que queda tras tal movimiento son los archivos de configuración. Mencionaste /etc/mysql/mysql.conf.d/mysqld.cnf, pero puede haber otros archivos de configuración por ahí.

En otro lugar hay un directorio más grande que contiene un montón de archivos, además de subdirectorios que corresponden a las "bases de datos" que ha creado. Simplemente movería todo ese árbol. Si está utilizando un sistema operativo basado en Linux, utilice un enlace simbólico desde la ubicación anterior a la nueva. No se necesitan cambios de configuración explícitos.

Luego, si alguno de los discos falla, no podrá acceder a los datos. Lo que quiero decir es que jugar con archivos y directorios no necesariamente te acercará a la "seguridad".

En su lugar, concéntrese en las copias de seguridad. Y/o "Replicación". Esto último requiere un extraservidory entrega una copia completa de los datos. Entonces, si alguno de los servidores falla, no habrá perdido nada.

LVM es otra técnica de respaldo; los beneficios de tener un disco para la base de datos. Pero eso añade mucha complejidad.

Te sugiero que leas un poco más y mantengas la mente abierta. Encontrará muchas cosas que coincidan directamente con sus ideas.

información relacionada