miércoles, 13 de marzo de 2019
tuning basico de base de datos postgresql
Revisando por internet en busca de ayuda para realizar el ajuste o tuning de una base de datos postgresql, encontré la pagina https://pgtune.leopard.in.ua/, esta pagina te recomienda un tuning inicial según los recursos de harware que cuenta el servidor y el tipo uso de la bases de datos. Aunque no es una solución mágica, nos permite tener una bases con que comenzar, en el ejemplo de mas abajo se puede ver la recomendación para un equipo con 12 cpu y 6 GB de memoria.
martes, 12 de marzo de 2019
Como realizar una copia espejo con rsync en servidores linux
Mi herramienta favorita para copiar archivo entre servidores Linux es rsync, esta permite hacer copias idénticas de archivos incluido carpetas entre servidores.
Copia espejo entre un servidor y otro
Esta opción copia todo lo del origen al destino y si hay archivos en el destino que no existen en el origen son eliminados (opción --delete).
La opción --progess permite ver el progreso de la copia.
La opción -a copia permisos, dueños, tiempo, etc.
Una de las caracteristicas principales del rsync, es que es capaz de solo copiar los archivos diferentes entre el origen y el destino, es decir, una copia incremental. La primera vez es Full, pero las subsecuentes son incrementales, lo que permite mantener sistemas sincronizados.
Espero que esto les sea útil.
Copia espejo entre un servidor y otro
rsync -a --progress --delete /carpeta/origen servidor-destino:/carpeta/destino
Esta opción copia todo lo del origen al destino y si hay archivos en el destino que no existen en el origen son eliminados (opción --delete).
La opción --progess permite ver el progreso de la copia.
La opción -a copia permisos, dueños, tiempo, etc.
Una de las caracteristicas principales del rsync, es que es capaz de solo copiar los archivos diferentes entre el origen y el destino, es decir, una copia incremental. La primera vez es Full, pero las subsecuentes son incrementales, lo que permite mantener sistemas sincronizados.
Espero que esto les sea útil.
lunes, 11 de marzo de 2019
Como aumentar el tamaño de un tablespace en oracle
aveces es necesario aumentar el tamaño de un tablespcae, agrandando el datafile que lo compone, para esto existe 2 formas bien conocidas:
Espero que esto les sea útil.
- vía oem (oracle enterprise manager), que es una herramienta gratuita que permite administrar una instancia de oracle, es una herramienta web, desde la ual puedes realizar casi todas las labores de administración. La versión gratuita es para una sola instancia, cuidado con habilitar los modules de performance si no los tiene licenciados.
- vía sqlplus, esta es mas rápido, pero requiere un poco mas de conocimientos, para conocer que datafiles componen el tablespace y su tamaño:
column TABLESPACE_NAME format a30 column FILE_NAME format a50 set linesize 100 set pagesize 100 select TABLESPACE_NAME ,FILE_NAME , BYTES/1024/1024/1024 as "GB" from dba_data_files
where TABLESPACE_NAME='nombre tablespace" ;
- con el nombre del file_name obtenido se agranda el datafile
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 4G;
Espero que esto les sea útil.
domingo, 10 de marzo de 2019
Como automatizar la cargar masiva en icinga2 director
Necesitaba cargar en forma masiva el monitoreo de cientos de dispositivos o host en un icinga2 con el modulo director para su configuración, este modulo no cuenta con carga masiva, como la bases de datos era postgresql, cree una función, donde tenia como datos de ingreso: el nombre del host, la ip del host, el host grupo al cual pertenece, por defecto se asocia al template 1 del host.
Todo esto es en la base de datos del director: los host se almacenan en la tabla icinga_host, en icinga_hostgroup_host se asocia el grupo con el host, en icinga_hostgroup_host_resolved se almacena la referencia al grupo y en icinga_host_inheritance se asocia el template.
Luego en un planilla genere los sql ue llamaban a la función de la forma
y así sucesivamente.
Todo esto es en la base de datos del director: los host se almacenan en la tabla icinga_host, en icinga_hostgroup_host se asocia el grupo con el host, en icinga_hostgroup_host_resolved se almacena la referencia al grupo y en icinga_host_inheritance se asocia el template.
DROP FUNCTION carga(nombre varchar, ip varchar,grupo varchar);
CREATE FUNCTION carga(nombre varchar, ip varchar,grupo varchar ) RETURNS integer AS $$
DECLARE
secuencia INTEGER;
grupoid INTEGER;
BEGIN
INSERT INTO icinga_host (object_name, object_type, disabled, display_name, address, address6, check_command_id, max_check_attempts, check_period_id, check_interval, retry_interval, check_timeout, enable_notifications, enable_active_checks, enable_passive_checks, enable_event_handler, enable_flapping, enable_perfdata, event_command_id, flapping_threshold_high, flapping_threshold_low, volatile, zone_id, command_endpoint_id, notes, notes_url, action_url, icon_image, icon_image_alt, has_agent, master_should_connect, accept_config, api_key, template_choice_id) VALUES (nombre, 'object', 'n', NULL, ip, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
SELECT CURRVAL('icinga_host_id_seq') into secuencia;
SELECT id into grupoid from icinga_hostgroup where object_name=grupo;
EXECUTE 'INSERT INTO icinga_hostgroup_host (host_id, hostgroup_id) VALUES ($1,$2)' USING secuencia, grupoid;
EXECUTE 'INSERT INTO icinga_hostgroup_host_resolved (hostgroup_id, host_id) VALUES ($2, $1)' USING secuencia, grupoid;
EXECUTE 'INSERT INTO icinga_host_inheritance (host_id, parent_host_id, weight) VALUES ($1, 1, 1)' USING secuencia;
RETURN secuencia;
END; $$
LANGUAGE PLPGSQL;
Luego en un planilla genere los sql ue llamaban a la función de la forma
select carga('equipo1','ip1','grupo');
y así sucesivamente.
sábado, 9 de marzo de 2019
Como hacer calculos matematico en bash de linux
De vez en cuando necesito hacer algún calculo matemático durante la ejecución de un bash en linux, luego de probar varios métodos me decidí por utilizar el comando bc, que es la implementación de "Un lenguaje de calculo de precisión arbitraria."
la forma mas simple de usarlo es pasando la operación a calcula vi la entrada estándar, por ejemplo para calcula pi:
echo "scale=10; 4*a(1)" | bc -l
3.1415926532
usando la función arco-tangente se calcula pi con 10 decimales, o calcular una simple multiplicación y división
echo "scale=10; 100*12.34/23" | bc -l
53.6521739130
o generar un archivo con los pasos a calcular
scale = 20
/* Uses the fact that e^x = (e^(x/2))^2
When x is small enough, we use the series:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
define e(x) {
auto a, d, e, f, i, m, v, z
/* Check the sign of x. */
if (x<0) {
m = 1
x = -x
}
/* Precondition x. */
z = scale;
scale = 4 + z + .44*x;
while (x > 1) {
f += 1;
x /= 2;
}
/* Initialize the variables. */
v = 1+x
a = x
d = 1
for (i=2; 1; i++) {
e = (a *= x) / (d *= i)
if (e == 0) {
if (f>0) while (f--) v = v*v;
scale = z
if (m) return (1/v);
return (v/1);
}
v += e
}
}
bc permite expresiones, loop como for, while o funciones conficionales como if
NOTA: scale indica la precisión del calculo
Espero que les sea util
la forma mas simple de usarlo es pasando la operación a calcula vi la entrada estándar, por ejemplo para calcula pi:
echo "scale=10; 4*a(1)" | bc -l
3.1415926532
usando la función arco-tangente se calcula pi con 10 decimales, o calcular una simple multiplicación y división
echo "scale=10; 100*12.34/23" | bc -l
53.6521739130
o generar un archivo con los pasos a calcular
scale = 20
/* Uses the fact that e^x = (e^(x/2))^2
When x is small enough, we use the series:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
define e(x) {
auto a, d, e, f, i, m, v, z
/* Check the sign of x. */
if (x<0) {
m = 1
x = -x
}
/* Precondition x. */
z = scale;
scale = 4 + z + .44*x;
while (x > 1) {
f += 1;
x /= 2;
}
/* Initialize the variables. */
v = 1+x
a = x
d = 1
for (i=2; 1; i++) {
e = (a *= x) / (d *= i)
if (e == 0) {
if (f>0) while (f--) v = v*v;
scale = z
if (m) return (1/v);
return (v/1);
}
v += e
}
}
bc permite expresiones, loop como for, while o funciones conficionales como if
NOTA: scale indica la precisión del calculo
Espero que les sea util
miércoles, 6 de marzo de 2019
¿Que es Red Hat Identity Management? - Descripcion breve
Como parte de la subcripción del "Red Hat Enterprise Linux", se puede implementar "Red Hat Identity Management", el cual permite administrar la autenticación y autorización de los usuarios sobre los servidores redhat en forma centralizada, siendo un equivalente al servidor de dominio de microsoft windows. Algunas de sus características son:
Este producto esta basado en un ipa-server e ipa-cliente que se debe instalar en cada uno de sus clientes, una vez instalado y configurado, toda la configuración es realizada en forma centralizada.
Una buena forma de conocer este producto es via el blog (en ingles)
https://developers.redhat.com/blog/2016/04/29/red-hat-identity-manager-part-1-overview-and-getting-started/
y
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/index.html
Como dato, en el cliente debe estar habilitado el servicio oddjobd
- sistema centralizado de usuarios y grupos.
- una contraseña para todos los sistemas.
- control de acceso a los servidores en forma granular.
- integración con dominios windows.
- segundo factor de autenticación.
- SSO.
- soporte de ejecución a través de sudo, configurado centralmente.
Este producto esta basado en un ipa-server e ipa-cliente que se debe instalar en cada uno de sus clientes, una vez instalado y configurado, toda la configuración es realizada en forma centralizada.
Una buena forma de conocer este producto es via el blog (en ingles)
https://developers.redhat.com/blog/2016/04/29/red-hat-identity-manager-part-1-overview-and-getting-started/
y
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Linux_Domain_Identity_Authentication_and_Policy_Guide/index.html
Como dato, en el cliente debe estar habilitado el servicio oddjobd
Suscribirse a:
Entradas (Atom)
Instalación rapida de kvm manager de oracle
Para instalar kvm manager de oracle se deben seguir los siguientes pasos: Instalar Oracle Linux 7 configurar el fqdn en el archivo /etc/hos...
-
Un cliente tiene una consola de monitoreo en un windows 10, la cual tiene acceso a todas las redes. Un día necesita tomar por escritorio rem...
-
aveces es necesario aumentar el tamaño de un tablespcae, agrandando el datafile que lo compone, para esto existe 2 formas bien conocidas: ...