Crear usuario para backup en bases de datos MySQL/MariaDB

Crear usuario para backup en bases de datos MySQL/MariaDB

Crearemos el usuario "backup" que podra loguearse desde cualquier equipo del dominio "infratic.com" la contraseña del usuario sera "backupadmin", para crear dicho usuario los comandos SQL son los siguientes:

CREATE USER 'backup'@'%' IDENTIFIED BY 'backupadmin';
    GRANT SELECT, RELOAD, FILE, SUPER, LOCK TABLES, SHOW VIEW ON *.* TO 'backup'@'%' IDENTIFIED BY 'backupadmin';

Donde backup es el usuario y backupadmin es el password del mismo, luego debemos actualizar los privilegios

FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.47 sec)

Crear discos ORACLEASM RHEL/CentOS/OL 6

Configurar ORACLEASM con discos compartidos iSCSI en RHEL/CentOS/SL/OL 6

Instalacion de paquetes necesarios

Primero debemos bajar los rpm de la página de Oracle. http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel6-1940776.html

  • oracleasm-support-2.1.8-1.el6.x86_64.rpm
  • oracleasmlib-2.0.4-1.el6.x86_64.rpm

Debemos copiar dichos .rpm al servidor. Una vez que copiamos procedemos Instalar.

yum localinstall /root/oracleasm*rpm

Si la instalacion actualiza el kernel, se debe reiniciar el equipo.

Prepara los discos

Para utilizar los discos es necesario crear un particion del tipo Linux

fdisk -cu /dev/sdb

Configurar el oracleasm

Para la configuracion del asm utilizamos el comando oracleasm

[root@nodo1 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.
 
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting without typing an
answer will keep that current value.  Ctrl-C will abort.
 
Default user to own the driver interface []: oracle12
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: [ENTER]
Scan for Oracle ASM disks on boot (y/n) [y]: [ENTER]
Writing Oracle ASM library driver configuration: done

Una vez configurado procemos a iniciar el oracleasm


[root@nodo1 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

### Crear los dispositivos ASM
La creacion de los dispositivos ASM se debe realizar en uno de los nodos y luego ejecutar el comando <code>oracleasm scandisks</code>

[root@nodo1 ~]# oracleasm createdisk VOTE_OCR00 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@nodo1 ~]# oracleasm createdisk DISK1 /dev/sdc1
Writing disk header: done
Instantiating disk: done

 
En el equipo que es el cluster repetir los pasos hasta el inicio del oracleasm (Paso 5) sin hacer el paso 3.
 
Buscar y listar los discos

[root@nodo2 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle12
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]:
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done

[root@nodo2 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

[root@nodo2 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…
Instantiating disk "VOTE_OCR00"
Instantiating disk "DISK1"

[root@nodo2 ~]# oracleasm listdisks
DISK1
VOTE_OCR00

 
Activar el servicio en todos los nodos

chkconfig oracleasm on

Saber tamaño de cada Base de Datos en MySQL/MariaDB

Tamaño de cada Base de Datos en MySQL/MariaDB

Para obtener el tamaño de la base de datos en MySQL podemos correr el siguiente query:

SELECT
  table_schema "Base de Datos",
  sum( data_length + index_length ) / 1024 / 1024 "Tamaño en MB"
  FROM
  information_schema.TABLES GROUP BY table_schema;

Obtendremos dos columnas:

La primera, de nombre “Base de Datos” con los nombres de las bases de datos; y
La segunda, de nombres “Tamaño en MB” con los tamaños en Megabytes correspondientes a las bases de datos.

Ejemplo:

MariaDB [(none)]> SELECT
    ->   table_schema "Base de Datos",
    ->   sum( data_length + index_length ) / 1024 / 1024 "Tamaño en MB"
    ->   FROM
    ->   information_schema.TABLES GROUP BY table_schema;
+--------------------+---------------+
| Base de Datos      | Tamaño en MB  |
+--------------------+---------------+
| blog               |    2.35937500 |
| desarrollo         |    0.04687500 |
| glpi               |   45.17187500 |
| information_schema |    0.15625000 |
| mysql              |    3.19210529 |
| owncloud           |    1.42187500 |
| performance_schema |    0.00000000 |
| rsyslog            |    3.53125000 |
| wordpress          |    0.75000000 |
+--------------------+---------------+
9 rows in set (10.96 sec)

Solucionar error ERROR 1047 (08S01): WSREP has not yet prepared node for application use

Solucionar error 1047 en MariaDB

Este error se genera normalmente en las siguientes situaciones:

  • Cuando tenemos un cluster MariaDB con 2 nodos y uno de los nodos es apagado de manera brusca
  • Se pierde la conexion entre los nodos del cluster

El error que se genera es el siguiente:

error ERROR 1047 (08S01): WSREP has not yet prepared node for application use

Para solucionar dicho error tenemos 2 opciones:

  • Detener el servicio de mysql en el nodo que quedo solo y luego realizar el "bootstrap" del cluster, en CentOS/RHEL 6 se utilizarian los siguientes comandos:
    service mysql stop
    service mysql bootstrap
  • La otra forma de solucionar es ingresando a la consola mysql del nodo que quedo activo y establecer el valor "pc.bootstrap=yes" a la variables wsrep_provider_options
MariaDB> SET GLOBAL wsrep_provider_options="pc.bootstrap=yes";
Query OK, 0 rows affected (0.00 sec)

Con esto podremos volver a utilizar nuestras bases de datos de manera normal.