Mostrando entradas con la etiqueta Xtrabackup. Mostrar todas las entradas
Mostrando entradas con la etiqueta Xtrabackup. Mostrar todas las entradas

domingo, 1 de marzo de 2026

¿Necesita cada nodo PXC tener XtraBackup instalado?

Una pregunta que surge regularmente en los foros de Percona: ¿Necesita cada nodo en un Percona XtraDB Cluster (PXC) tener XtraBackup instalado? Es una pregunta justa, especialmente cuando se gestiona un entorno mixto o se intenta minimizar la huella de software en ciertos nodos. Aquí está lo que confirman las mecánicas reales y las pruebas.

La respuesta corta (pero sigue leyendo)

Depende de lo que quieras que haga ese nodo. La sutileza importa mucho aquí, por lo que vale la pena repasar cómo funciona State Snapshot Transfer (SST) en PXC y por qué la presencia —o ausencia— de XtraBackup en un nodo dado es significativa.

Un repaso rápido sobre SST en PXC

Cuando un nuevo nodo se une a un Percona XtraDB Cluster, o cuando un nodo existente ha estado caído el tiempo suficiente como para que Incremental State Transfer (IST) ya no sea posible, el clúster realiza un State Snapshot Transfer (SST). Esto es esencialmente una copia completa de datos desde un nodo donante al nodo que se une.

PXC soporta múltiples métodos SST, configurados en my.cnf:

[mysqld]
wsrep_sst_method = xtrabackup-v2

Los métodos SST disponibles incluyen:

  • xtrabackup-v2 — El método recomendado para PXC, usando Percona XtraBackup; realiza SST sin bloquear el donante por períodos extendidos
  • clone — Disponible en PXC 8.0.22+ usando el Plugin Clone integrado de MySQL; elimina la dependencia de XtraBackup para SST
  • mysqldump — Más lento y bloquea el donante durante la transferencia; no recomendado para producción
  • rsync — Requiere que el donante esté en modo solo lectura durante la transferencia, bloqueando escrituras; tampoco recomendado para clústeres en vivo

El método xtrabackup-v2 ha sido históricamente el enfoque predeterminado y sigue siendo ampliamente utilizado en implementaciones existentes precisamente porque mantiene el nodo donante disponible para escrituras durante la transferencia. Los otros métodos legacy pueden bloquear escrituras en el donante, lo cual es generalmente inaceptable en un clúster de producción. Nota que Percona ha estado recomendando cada vez más el método clone para nuevas instalaciones en PXC 8.0.22 y posteriores, ya que elimina la dependencia de herramientas externas en la capa SST.

¿Dónde necesita estar instalado XtraBackup?

Cuando se activa un SST usando xtrabackup-v2, tanto el donante como el que se une necesitan tener XtraBackup instalado y accesible. Aquí está por qué ambos lados están involucrados:

``````html
  • El donor ejecuta XtraBackup para transmitir los datos de la instantánea hacia afuera
  • El joiner ejecuta XtraBackup — específicamente las utilidades xbstream y xbcrypt — para recibir y aplicar esos datos transmitidos

Si el nodo joiner no tiene XtraBackup instalado y intentas incorporarlo al clúster usando xtrabackup-v2, el SST fallará. El registro de errores en el joiner típicamente mostrará algo como esto:

[ERROR] WSREP: Failed to read 'ready <addr>' from: wsrep_sst_xtrabackup-v2
...
wsrep_sst_xtrabackup-v2: line 522: xbstream: command not found
[ERROR] WSREP: SST failed: 2 (No such file or directory)

Esa es una modalidad de fallo clara e inequívoca. Si xbstream no está presente en el joiner, el SST no se completará.

¿Qué pasa con los nodos que nunca serán joiners?

Técnicamente, si un nodo siempre actuará como donor y nunca necesitará reincorporarse al clúster desde cero, podrías argumentar que solo necesita XtraBackup en su capacidad de donor. Sin embargo, en la práctica, cualquier nodo puede convertirse en joiner — después de un fallo, después de mantenimiento planificado, o después de recuperarse de una partición de red. No hay forma confiable de garantizar que un nodo nunca necesite recibir un SST.

La guía práctica aquí es directa: instala XtraBackup en cada nodo PXC, sin excepción. La sobrecarga de tenerlo instalado es insignificante. El costo de un SST fallido durante una interrupción no planificada no lo es.

La alternativa del Plugin Clone (PXC 8.0.22+)

A partir de PXC 8.0.22, Percona agregó soporte para el MySQL Clone Plugin como método SST. Esto vale la pena saberlo porque elimina completamente la dependencia de XtraBackup para fines de SST:

[mysqld]
wsrep_sst_method = clone

Con el método clone, el Clone Plugin debe estar cargado en todos los nodos:

INSTALL PLUGIN clone SONAME 'mysql_clone.so';
SHOW PLUGINS WHERE Name = 'clone';
+-------+--------+-------+----------------+---------+
| Name  | Status | Type  | Library        | License |
+-------+--------+-------+----------------+---------+
| clone | ACTIVE | CLONE | mysql_clone.so | GPL     |
+-------+--------+-------+----------------+---------+

El método clone es una opción sólida para estandarizar sin XtraBackup como dependencia SST. Dicho esto, XtraBackup aún tiene valor real para tu estrategia de respaldo externo independientemente del método SST que elijas. SST es un mecanismo de sincronización de clúster — no es un respaldo, y nunca debe tratarse como tal.

Verificando tu configuración SST actual

Puedes verificar tu método SST actual y configuraciones relacionadas con Galera con:

SHOW VARIABLES LIKE 'wsrep_sst_method';
+------------------+---------------+
| Variable_name    | Value         |
+------------------+---------------+
| wsrep_sst_method | xtrabackup-v2 |
+------------------+---------------+

Para verificar el estado del clúster y confirmar qué nodo puede estar actuando como donor:

SHOW STATUS LIKE 'wsrep_local_state_comment';
+---------------------------+--------+
| Variable_name             | Value  |
+---------------------------+--------+
| wsrep_local_state_comment | Synced |
+---------------------------+--------+
SHOW STATUS LIKE 'wsrep_connected';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| wsrep_connected | ON    |
+-----------------+-------+
SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Observaciones prácticas

Algunas cosas que vale la pena notar de trabajar directamente con entornos PXC:

``````html
  • La versión de XtraBackup debe coincidir con la versión de PXC. Usar XtraBackup 2.x con PXC 8.0 provocará fallos en SST. Use Percona XtraBackup 8.0 con PXC 8.0 y confirme la alineación de versiones después de cualquier actualización.
  • Incluso si cambia al método SST clone, mantenga XtraBackup instalado para copias de seguridad programadas. Su estrategia de respaldo y su método SST son preocupaciones separadas y deben tratarse como tales.
  • La variable wsrep_sst_donor le permite especificar un nodo donante preferido, lo cual es útil para dirigir SST lejos de su miembro más ocupado o sensible a la latencia.
  • Si está ejecutando Percona Toolkit junto con PXC, tenga en cuenta cómo funciona la replicación DDL en su versión específica de PXC — el comportamiento de Total Order Isolation (TOI) versus Rolling Schema Upgrade (RSU) difiere y merece una revisión dedicada antes de realizar cambios de esquema en producción.

Resumen

Para responder directamente a la pregunta: si está usando xtrabackup-v2 como su método SST — que sigue siendo el predeterminado en muchas implementaciones existentes de PXC — entonces sí, XtraBackup debe estar instalado en cada miembro del clúster. Cualquier nodo puede ser donante o unidor dependiendo de las circunstancias, y ambos roles requieren que XtraBackup esté presente al usar este método.

Si está en PXC 8.0.22 o posterior y desea eliminar esa dependencia en la capa SST, el método del Plugin Clone es una alternativa viable y cada vez más recomendada por Percona para nuevas implementaciones. Si está comenzando de cero, PXC 8.4 LTS es la versión de soporte a largo plazo actual y el objetivo recomendado para nuevas instalaciones. Incluso al usar clone para SST, XtraBackup sigue siendo la herramienta adecuada para sus trabajos reales de respaldo.

No intente ahorrar unos pocos megabytes de espacio en disco omitiendo XtraBackup en nodos seleccionados. El fallo de SST que eventualmente resulta de esa decisión no es un compromiso que valga la pena hacer.

Recursos

sábado, 10 de agosto de 2013

Cree un servidor esclavo (secundario) con Percona Xtrabackup

Original post: http://anothermysqldba.blogspot.com/2013/08/create-slave-secondary-server-with.html

Así que primero usted podría ahorrar un poco de tiempo y leer el ejemplo Percona para esto:
http://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html

Pero por si acaso aquí es un ejemplo basado en una situación real.

SERVIDOR PRIMARIO

# innobackupex /tmp/ <---- this is whatever directory you want to store the backup in. This is a very basic no fluff hot backup.

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
.........
130809 14:40:11 innobackupex: Connection to database server closed
130809 14:40:11 innobackupex: completed OK!

Asegúrese de ver el archivo xtrabackup_binlog_info. Si no lo hace no tendrá fácilmente la posición y la información de registro. Usted tendrá que excavar en los binlogs basadas en el tiempo, etc ¿Qué es más trabajo de lo que sea necesario.

innobackupex --apply-log /tmp/<Timestamp Directory Here>

Ahora depende de usted. Puede rsync el directorio al esclavo o alquitrán [gzip] y scp al esclavo. Independientemente del método para mover al esclavo, usted tiene una hotbackup creado y listo para funcionar.


SERVIDOR SECUNDARIO

# /etc/init.d/mysql stop
mv /var/lib/mysql /var/lib/mysql_ORIG

Sin embargo ha movido el archivo desde el maestro al esclavo, poner el contenido en la carpeta datadir, asumida por ejemplo: / var / lib / mysql.

# chown -R mysql:mysql mysql
/etc/init.d/mysql start
Starting MySQL... [ OK ]

Ahora en su servidor MySQL esclavo, puede configurar la información del usuario de replicación fácilmente.

CHANGE MASTER TO
MASTER_HOST='<MASTER_HOST>',
MASTER_USER='<MASTER_USER>',
MASTER_PASSWORD='<MASTER_PASSWORD>',
MASTER_CONNECT_RETRY = 10 ;

Obtener el registro y la posición del archivo xtrabackup.

# more xtrabackup_binlog_info
<BinLog info> <POSITION INFO>

CHANGE MASTER TO MASTER_LOG_FILE='<BinLog info>', MASTER_LOG_POS=<POSITION INFO>;

Start slave;


Eso es en pocas palabras. Para más información revise la url Percona dada al principio.

domingo, 16 de junio de 2013

Copia de seguridad y recuperación de secuencias de comandos de MySQL usando innobackup y Xtrabackup de Percona


Original post: http://anothermysqldba.blogspot.com/2013/06/backup-and-recovery-script-for-mysql.html

Así Percona tiene el ampliamente utilizado herramienta de copia de seguridad Xtrabackup y se dan cuenta que todo el mundo a menudo utiliza esta herramienta en una secuencia de comandos de algún tipo. El disponer de una página que habla de esto:


Desde hace poco me dio un ejemplo de cómo utilizar la copia de seguridad en un anteriormensaje . Pensé que también podría escribir un script que muestra cómo automatizar el proceso de copia de seguridad. Además de que hace años que he escrito en Python, así que quería tener un poco de práctica también.

Así que la introducción del código está abajo, pero he puesto el script en github .
Se necesitan más pruebas pero no dude en consultar la base de código a cabo y actualizar y editar.

Una vez que el código se prueba más que pueda actualizar ejemplos pero quería estar abierta en este proyecto desde el principio.

Dado que es en las primeras etapas Yo recomiendo usar la opción - showcommands = 1 opción para que pueda ver lo que el código tiene previsto hacer y tal vez probar los comandos. Es evidente que no se debe utilizar en un sistema de producción todavía.


En primer lugar una introducción a la misma:

# ./backup_restore.py --help
Usage: backup_restore.py --process=[fullbackup,incremental,prepare,restore] --help --version --showcommands=1

This program enables you to backup full and incremental backups then prepare
and restore them using Percona's Xtrabackup

Options:
--version show program's version number and exit
-h, --help show this help message and exit
--process=PROCESS What would you like to do --process=
[fullbackup,incremental,prepare,restore]
--debug=DEBUG TURN DEBUG ON 1 OR OFF 0 OR VERBOSE 3
--showcommands=SHOWCOMMANDS
Shows the commands instead of executing them except
for the restore section because we go through that
step by step
--backup_root_directory=BACKUP_ROOT_DIRECTORY
THE ROOT DIRECTORY OF ALL YOUR BACKUPS, You can set
DEFAULT at start of the script
--percona_xtrabackup_location=PERCONA_XTRABACKUP_LOCATION
THE LOCATION OF YOUR xtrabackup FILE, You can set
DEFAULT at start of the script
--datadir=DATADIR MYSQL DATA DIR LOCATION, You can set DEFAULT at start
of the script
--username=DB_USERNAME
MySQL Username, You can set DEFAULT at start of the
script
--password=DB_PASSWORD
MySQL Password, You can set DEFAULT at start of the
script
--default_file=DEFAULT_FILE
MySQL my.cnf file location, You can set DEFAULT at
start of the script
--options=PERCONA_OPTIONS
Additional Options for innobackupex 



domingo, 9 de junio de 2013

Percona Xtrabackup / innobackupex copia de seguridad y el proceso de restauración

Original post: http://anothermysqldba.blogspot.com/2013/06/percona-xtrabackupinnobackupex-backup.html

Este es un ejemplo muy simple de cómo utilizar Percona Xtrabackup / innobackupex 

Este MariaDB sólo tiene la base de datos mundial en ella como un ejemplo de datos. 
Todo esto podría ser un guión, pero por ahora es para fines de demostración. 

Crear una copia de seguridad completa: 

MariaDB [(none)]> create database Start_Of_Demo; -- Just here for the demo
Query OK, 1 row affected (0.00 sec)


[root@Fedora64 src]# innobackupex --no-lock --parallel=4 --user=root --extra-lsndir=/usr/local/src/incremental_last_checkpoint/ --no-timestamp /usr/local/src/fullbackup/

xtrabackup: Transaction log of lsn (1597964) to (1597964) was copied.

innobackupex: Backup created in directory '/usr/local/src/fullbackup'
130609 15:41:39 innobackupex: Connection to database server closed
130609 15:41:39 innobackupex: completed OK!

[root@Fedora64 src]# ls -al fullbackup/
total 18472
drwxr-xr-x. 6 root root 4096 Jun 9 15:41 .
drwxr-xr-x. 6 root root 4096 Jun 9 15:49 ..
-rw-r--r--. 1 root root 260 Jun 9 15:41 backup-my.cnf
-rw-r-----. 1 root root 18874368 Jun 9 15:41 ibdata1
drwxr-xr-x. 2 root root 4096 Jun 9 15:41 mysql
drwxr-xr-x. 2 root root 4096 Jun 9 15:41 performance_schema
drwxr-xr-x. 2 root root 4096 Jun 9 15:41 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 Jun 9 15:41 world
-rw-r--r--. 1 root root 13 Jun 9 15:41 xtrabackup_binary
-rw-r-----. 1 root root 89 Jun 9 15:41 xtrabackup_checkpoints
-rw-r-----. 1 root root 2560 Jun 9 15:41 xtrabackup_logfile

Crear una copia de seguridad incremental:

MariaDB [(none)]> create database incremental_1; -- Just here for the demo
Query OK, 1 row affected (0.00 sec)

[root@Fedora64 src]#innobackupex --incremental --no-lock --parallel=4 --no-timestamp --user=root --incremental-basedir=/usr/local/src/incremental_last_checkpoint/ --extra-lsndir=/usr/local/src/incremental_last_checkpoint/ /usr/local/src/incremental/

xtrabackup: Transaction log of lsn (1597964) to (1597964) was copied.

innobackupex: Backup created in directory '/usr/local/src/incremental'
130609 15:47:20 innobackupex: Connection to database server closed
130609 15:47:20 innobackupex: completed OK!

[root@Fedora64 src]# ls -al incremental
total 64
drwxr-xr-x. 7 root root 4096 Jun 9 15:47 .
drwxr-xr-x. 6 root root 4096 Jun 9 15:49 ..
-rw-r--r--. 1 root root 260 Jun 9 15:47 backup-my.cnf
-rw-r-----. 1 root root 16384 Jun 9 15:47 ibdata1.delta
-rw-r-----. 1 root root 44 Jun 9 15:47 ibdata1.meta
drwxr-xr-x. 2 root root 4096 Jun 9 15:47 incremental_1
drwxr-xr-x. 2 root root 4096 Jun 9 15:47 mysql
drwxr-xr-x. 2 root root 4096 Jun 9 15:47 performance_schema
drwxr-xr-x. 2 root root 4096 Jun 9 15:47 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 Jun 9 15:47 world
-rw-r--r--. 1 root root 13 Jun 9 15:47 xtrabackup_binary
-rw-r-----. 1 root root 93 Jun 9 15:47 xtrabackup_checkpoints
-rw-r-----. 1 root root 2560 Jun 9 15:47 xtrabackup_logfile 


Cree otra copia de seguridad incremental:

MariaDB [(none)]> create database incremental_2;-- Just here for the demo
Query OK, 1 row affected (0.00 sec)

[root@Fedora64 src]# innobackupex --incremental --no-lock --parallel=4 --no-timestamp --user=root --incremental-basedir=/usr/local/src/incremental_last_checkpoint/ --extra-lsndir=/usr/local/src/incremental_last_checkpoint/ /usr/local/src/incremental_2/

xtrabackup: Transaction log of lsn (1597964) to (1597964) was copied.

innobackupex: Backup created in directory '/usr/local/src/incremental_2'
130609 15:49:49 innobackupex: Connection to database server closed
130609 15:49:49 innobackupex: completed OK!
[root@Fedora64 src]# ls -al incremental_2
total 68
drwxr-xr-x. 8 root root 4096 Jun 9 15:49 .
drwxr-xr-x. 6 root root 4096 Jun 9 15:49 ..
-rw-r--r--. 1 root root 260 Jun 9 15:49 backup-my.cnf
-rw-r-----. 1 root root 16384 Jun 9 15:49 ibdata1.delta
-rw-r-----. 1 root root 44 Jun 9 15:49 ibdata1.meta
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 incremental_1
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 incremental_2
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 mysql
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 performance_schema
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 Jun 9 15:49 world
-rw-r--r--. 1 root root 13 Jun 9 15:49 xtrabackup_binary
-rw-r-----. 1 root root 93 Jun 9 15:49 xtrabackup_checkpoints
-rw-r-----. 1 root root 2560 Jun 9 15:49 xtrabackup_logfile 


Ahora hay que tener esto en cuenta.
  • Usted, por supuesto, la base de datos tiene que estar apagado.
    • Si usted está haciendo una restauración lo más probable es que se estrelló de todos modos
  • El directorio de datos debe estar vacío.

Asegúrese de que el servidor está apagado entonces claro nuestro directorio de datos.

[root@Fedora64 src]# ps -ef | grep mysql
root 4538 1940 0 15:54 pts/2 00:00:00 grep --color=auto mysql

[root@Fedora64 src]# ls -al /var/lib/mysql/
total 28724
drwxr-xr-x. 8 mysql mysql 4096 Jun 9 15:53 .
drwxr-xr-x. 43 root root 4096 Jun 8 19:41 ..
-rw-rw----. 1 mysql mysql 16384 Jun 9 15:53 aria_log.00000001
-rw-rw----. 1 mysql mysql 52 Jun 9 15:53 aria_log_control
-rw-r--r--. 1 mysql mysql 18874368 Jun 9 15:53 ibdata1
-rw-rw----. 1 mysql mysql 5242880 Jun 9 15:53 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 Jun 9 15:17 ib_logfile1
drwx------. 2 mysql mysql 4096 Jun 9 15:43 incremental_1
drwx------. 2 mysql mysql 4096 Jun 9 15:48 incremental_2
drwxr-xr-x. 2 mysql mysql 4096 Jun 9 15:16 mysql
drwxr-xr-x. 2 mysql mysql 4096 Jun 9 15:16 performance_schema
drwx------. 2 mysql mysql 4096 Jun 9 15:40 Start_Of_Demo
drwxr-xr-x. 2 mysql mysql 4096 Jun 9 15:16 world

[root@Fedora64 src]# rm -Rf /var/lib/mysql/*

Ahora hay que tener esto en cuenta. Al crear las copias de seguridad y copias de seguridad incrementales después, tendrá que restaurar la copia de seguridad completa y luego aplicar todas las copias de seguridad incrementales. Así que no creo que usted puede hacer una copia de seguridad completa de una tarde sólo restaurar desde la última copia incremental.Siempre tenga en cuenta el número de copias de seguridad incrementales que puede permitirse el lujo de mantener para que se solicite otra copia de seguridad completa.

Para restaurar sólo la copia de seguridad completa:

innobackupex --copy-back /usr/local/src/fullbackup/

innobackupex: Starting to copy InnoDB log files
innobackupex: in '/usr/local/src/fullbackup'
innobackupex: back to original InnoDB log directory '/var/lib/mysql'
innobackupex: Finished copying back files.

130609 15:54:57 innobackupex: completed OK!

[root@Fedora64 src]# ls -al /var/lib/mysql/
total 18456
drwxr-xr-x. 6 mysql mysql 4096 Jun 9 15:54 .
drwxr-xr-x. 43 root root 4096 Jun 8 19:41 ..
-rw-r--r--. 1 root root 18874368 Jun 9 15:54 ibdata1
drwxr-xr-x. 2 root root 4096 Jun 9 15:54 mysql
drwxr-xr-x. 2 root root 4096 Jun 9 15:54 performance_schema
drwxr-xr-x. 2 root root 4096 Jun 9 15:54 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 Jun 9 15:54 world


[root@Fedora64 mysql]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.31-MariaDB MariaDB Server


Eso hace la copia de seguridad completa, pero he hecho copias de seguridad incrementales después de eso. Por lo tanto, tendrá que ser apagado y el directorio de datos limpiado. ¿Por qué? Usted tiene que solicitar las copias de seguridad incrementales para el pleno y luego restaurarlo. Se lleva a cabo como en el siguiente ejemplo:



innobackupex --apply-log --redo-only /usr/local/src/fullbackup/
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
130609 15:57:59 InnoDB: Starting shutdown...
130609 15:58:00 InnoDB: Shutdown completed; log sequence number 1597964
130609 15:58:00 innobackupex: completed OK!

Ahora apliquemos el primer directorio incrementales. Se puede ver en el siguiente ejemplo que el directorio incremental_1 se aplica ahora en el directorio fullbackup. Este no era el caso anteriormente.

innobackupex --apply-log --redo-only /usr/local/src/fullbackup/ --incremental-dir=/usr/local/src/incremental/
130609 15:58:42 innobackupex: completed OK!
[Root @ Fedora64 src] # ls-al fullbackup /
total de 20.520
drwxr-xr-x. 7 root root 4096 09 de junio 15:58.
drwxr-xr-x. 6 root root 4096 09 de junio 15:49 ..
-Rw-r - r -. 1 root root 260 09 de junio 15:41 backup-my.cnf
-Rw-r -----. 1 root root 18874368 09 de junio 15:58 ibdata1
drwxr-xr-x. 2 root root 4096 09 de junio 15:58 incremental_1
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 mysql
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 performance_schema
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 09 de junio mundo 15:41
-Rw-r - r -. 1 root pie 13 09 de junio 15:41 xtrabackup_binary
-Rw-r -----. 1 root root 89 09 de junio xtrabackup_checkpoints 15:58
-Rw-r -----. 1 root root 2097152 09 de junio 15:58 xtrabackup_logfile

Apliquemos ahora el segundo directorio incrementales. Se puede ver en el siguiente ejemplo que el directorio incremental_2 se aplica ahora en el directorio fullbackup. Este no era el caso anteriormente.
innobackupex --apply-log /usr/local/src/fullbackup/ --incremental-dir=/usr/local/src/incremental_2/
innobackupex: Copiar '/ usr/local/src/incremental_2/Start_Of_Demo/db.opt "a" / usr / local / src / fullbackup / Start_Of_Demo / db.opt'
130609 16:00:09 innobackupex: finalizado OK!

[Root @ Fedora64 src] # ls-al fullbackup /
total de 20.524
drwxr-xr-x. 8 root root 4096 09 de junio 16:00.
drwxr-xr-x. 6 root root 4096 09 de junio 15:49 ..
-Rw-r - r -. 1 root root 260 09 de junio 15:41 backup-my.cnf
-Rw-r -----. 1 root root 18874368 09 de junio 16:00 ibdata1
drwxr-xr-x. 2 root root 4096 09 de junio 15:58 incremental_1
drwxr-xr-x. 2 root root 4096 09 de junio 16:00 incremental_2
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 mysql
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 performance_schema
drwxr-xr-x. 2 root root 4096 09 de junio 15:41 Start_Of_Demo
drwxr-xr-x. 2 root root 4096 09 de junio mundo 15:41
-Rw-r - r -. 1 root pie 13 09 de junio 15:41 xtrabackup_binary
-Rw-r -----. 1 root root 89 09 de junio 16:00 xtrabackup_checkpoints
-Rw-r -----. 1 root root 2097152 09 de junio 15:58 xtrabackup_logfile


Apliquemos ahora el directorio de copia de seguridad completa. Se puede ver en el siguiente ejemplo que el directorio incremental_2 se aplica ahora en el directorio fullbackup. Este no era el caso anteriormente.

[root@Fedora64 src]# rm -Rf /var/lib/mysql/*
[Root @ Fedora64 src] # innobackupex - copy-back / usr / local / src / fullbackup /
[Root @ Fedora64 src] # chown-R mysql: mysql / var / lib / mysql

Todo ha sido restaurado y disponible:

[root@Fedora64 mysql]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.31-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Start_Of_Demo |
| incremental_1 |
| incremental_2 |
| mysql |
| performance_schema |
| world |
+--------------------+

Enlaces disponibles para referencia.

lunes, 6 de mayo de 2013

"Herramientas" del comercio

Original post: http://anothermysqldba.blogspot.com/2013/04/tools-of-trade.html

Pensé que podría valer la pena crear una lista de las herramientas principales de la trata que todos usamos. 

En primer lugar se trata de dar las gracias a todos los que ayuda a crear estas herramientas.
En segundo lugar es para permitir a otros que no usan estos para ver y aprender cómo se puede utilizar y por qué.
  • MySQL cliente de línea de comandos .
    • Esto es un hecho, pero sé que es el mejor acceso a MySQL.
    • mysql-p - prompt = "\ u @ \ h [\ d]> \ _ Master>"
  • Xtrabackup
    • . / Xtrabackup - defaults-file = / etc / my.cnf - backup - Estadísticas - target-dir = ~ / backups / - Preparación - export - user = root - innodb_data_home_dir = / var / lib / mysql / - innodb_data_file_path = / var / lib / mysql /
  • mysqlbinlog
  • mysqltuner
    • Una buena visión de conjunto en lo que podría haber pasando con su base de datos.
  • Percona Toolkit
    • exampes:
      • pt-query-digest
        • ejemplo: pt-query-digest - pregunte-pass / var / lib / mysql / mysql-slow.log
      • pt-table-checksum
        • ejemplo: pt-table-checksum - pregunte-pass
      • pt-table-sync
        • ejemplo: pt-table-sync - no-check-disparadores - pregunte-pass - no-check-disparadores - ejecutar - imprimir
      • pt-show-subvenciones
        • pt-show-subvenciones - pregunte-pass
  • MySQL Utilities
    • exampes:
      • python mysqldiskusage - server = root: contraseña @ localhost
      • python mysqlindexcheck - server = root: contraseña @ localhost ps_helper.schema_index_statistics
      • python mysqlprocgrep - server = root: contraseña @ localhost - match-user = root
  • planet.mysql.com
    • Esto podría hacer que algunas personas se preguntan, pero ... El conocimiento es poder. Este es el mejor lugar para aprender sobre MySQL.
    • Si usted tiene que entrevistar a un candidato DBA MySQL, recoger algunos autores activos comunes y pregunte si ellos saben quién es esa persona. Esto le permitirá entender si investigar las últimas tendencias e información alrededor de MySQL o se conforman con su experiencia.
  • MySQL Sandbox
    • mytop
      • inspirado en la parte superior, pero con un enfoque en MySQL
    • https://tools.percona.com/
      • Esto también podría hacer algunas preguntas. Añado esto porque es una manera rápida y buena para la gente para empezar y crear un my.cnf que es mejor que la versión instalada por defecto. Por lo menos se puede usar sólo para comparar con lo que usted piensa que debería ser.
    Usted puede notar que no soy un fan de la GUI. Sin ofender a esas herramientas GUI disponibles pero ¿por qué GUI si no lo necesita. Pero eso es sólo mi opinión y aquí está una lista de herramientas GUI para ser justos. Después de todo mapa de esquema es útil y fácil de hacer con MySQL Workbench .

    Otras herramientas para la revisión: