Disco de memoria para archivos.
La unidad (o recurso) /dev/shm
Es la unidad donde se implementa memoria compartida, permitiendo pasar datos de manera eficiente entre programas. Un programa puede crear información en memoria para que otro proceso con permisos pueda acceder a el.
Ventaja: Mayor velocidad en consulta de la información.
shm es normalmente conocido como tmpfs, el cual es normalmente nombrado como archivos almacenados en memoria.
Situaciones que me han pasado toda la vida de DBA y personal que me han ayudado...
martes, 20 de septiembre de 2016
lunes, 22 de agosto de 2016
Relay log corruptio en MySQL
Problemas con el "Relay Log", marcando corrupto en MySQL
La replicación del MySQL se detiene y al entrar a checar lo sucedido (show slave status \G;) te encuentras con un error como el siguiente:
Last_Error: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s MySQL code. If you want to check the master’s binary log or slave’s relay log, you will be able to know their names by issuing ‘SHOW SLAVE STATUS’ on this slave.
jueves, 4 de febrero de 2016
Script Respaldo Procedimientos MySQL
Respaldo de procedimientos de 1 por 1 en MySQL en bash.
El siguiente script permite respaldar los procedimientos, y/o funciones de una base de datos dada como parámetro, y dejando el respaldo parseado y listo para ser registrado.
El siguiente script permite respaldar los procedimientos, y/o funciones de una base de datos dada como parámetro, y dejando el respaldo parseado y listo para ser registrado.
jueves, 28 de enero de 2016
jueves, 7 de enero de 2016
lunes, 14 de septiembre de 2015
MySQL autoincrement en replicación Master-Master
Un detalle que se nos presenta al momento de la replicación de Master-Master es con respecto a los campos que definimos como auto_increment dentro de la estructura de nuestras tablas.
La solución que se nos ofrece en este tipo de situaciones, sonara como una "Mexicanada".
Tenemos dos parámetros configurables: auto_increment_increment y auto_increment_offset.
Para configurar estas opciones lo podemos realizar al iniciar el servicio MySQL.
donde:
N = Número de servidores que trabajaran con esta configuración.
# = Número entre 1 y N, cada servidor usara un diferente offset.
Ó mediante variables:
auto_increment_increment; es el numero en que el servidor incrementara cada vez que un valor sea incrementado. El default es 1, es decir que incrementara de 1 en 1, ejemplo 1, 2, 3, 4, 5, etc. Si el valor es un 2, incrementara en 2, ejemplo 1, 3, 5, 7, 9, etc. Si el valor es 3 incrementara, 1, 4, 7, 10, etc.
auto_increment_offset: No puede ser un valor mayor al de auto_increment_increment, este permite decirle cual sera el valor del servidor, si es par o non, si es 1 sera 1, 3, 5 y si es "2" entonces seran los valores 2, 4, 6, 8, No importa cual sea el valor actual del auto_increment, si es 132, continuara con 134, 136, etc.
También podemos declararlos de la siguiente manera:
Al detalle:
La solución que se nos ofrece en este tipo de situaciones, sonara como una "Mexicanada".
Tenemos dos parámetros configurables: auto_increment_increment y auto_increment_offset.
Para configurar estas opciones lo podemos realizar al iniciar el servicio MySQL.
--auto_increment_increment= N --auto_increment_offset=#
donde:
N = Número de servidores que trabajaran con esta configuración.
# = Número entre 1 y N, cada servidor usara un diferente offset.
Ó mediante variables:
SET @@auto_increment_increment = N;
SET @@auto_increment_offset = #;
auto_increment_increment; es el numero en que el servidor incrementara cada vez que un valor sea incrementado. El default es 1, es decir que incrementara de 1 en 1, ejemplo 1, 2, 3, 4, 5, etc. Si el valor es un 2, incrementara en 2, ejemplo 1, 3, 5, 7, 9, etc. Si el valor es 3 incrementara, 1, 4, 7, 10, etc.
auto_increment_offset: No puede ser un valor mayor al de auto_increment_increment, este permite decirle cual sera el valor del servidor, si es par o non, si es 1 sera 1, 3, 5 y si es "2" entonces seran los valores 2, 4, 6, 8, No importa cual sea el valor actual del auto_increment, si es 132, continuara con 134, 136, etc.
También podemos declararlos de la siguiente manera:
Al detalle:
Configuraciones:
En servidor 1:
auto_increment_increment = 2 # Cantidad de servidors
auto_increment_offset = 1 # El número a incrementar (es non)
En servidor 2:
auto_increment_increment = 2 # Cantidad de servidores.
auto_increment_offset = 2 # El número a incrementar (es inpar)
De un inicio en cuanto activamos una replicación las tablas contaran con la misma información. Una vez que se configura como anteriormente se menciono, y se realizan insert sobre dichas tablas (con auto_increment) se insertaran algunos registros en servidor 1, y otros se insertaran en el servidor 2, todo con respecto a la configuración anterior. En un momento dado tendrán información diferente, pero al ejecutarse la replicación, ambos servidores contaran con la misma información.
jueves, 20 de agosto de 2015
Variables para Optimizar MysQL
Variables para optimizar MySQL
En servidores dedicados se recomienda un 50% a 80% de la RAM.
innodb_log_file_size: Se debe incrementar esta variables para para mejorar el rendimiento.
innodb_flush_method: Cuando se usa controladores de RAID, es mejor usar la opción O_DIRECT. Esto previene "doble buffer", cuando no se tienen estos RAIDS es
mejor no usarlo.
innodb_flush_neighbors: Es mejor dejar el parámetro deshabilitado (0) en discos SSD, los cuales no tienen ninguna ventaja con IO secuencial.
innodb_io_capacity y innodb_io_capacity_max: Estas variables influencian cuantos trabajos background por segundo pueden haber.
innodb_lru_scan_depth: Si incrementas innodb_io_capacity, tambien se debe incrementar esta variable.
Replicación.
log-bin: Activarlo, te permite recuperar cierta información que se haya perdido, ante un daño de la base de datos.expire-logs-days: Por default los logs duran para siempre, lo recomendado seria mantenerlos de 1 a 10 dias.
server-id: Id único que se le da al servidor.
Misc.
timezone=GMT: Cambiar el timezone a un default, por lo general se usa el GMT
sql-mode: Variable para configurar algunas propiedades que le queramos dejar a la entidad. Como,
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,
NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,
NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY.
skip-name-resolve: Con esta variable podemos desahabilitar la reversa de los nombres de las conexiones.
max_connect_errors: Maximo de errores al conectarse para bloquear la conexión.
max-connections: El default es 151, pero yo por lo general uno 500 usuarios simultáneos.
Suscribirse a:
Entradas (Atom)