Oracle Linux 6.4 en Virtual Box

FacebookTwitterGoogle+Share

Hola que tal…

el día de hoy iniciamos con una sección diferente… se llamará Hands-On y publicaremos artículos referentes a la tecnología con la que me divierto todos los días… el mundo de Oracle con sus RDBMS ( Oracle – MySQL ) y de su SO ( Oracle Linux ).

El día de hoy mostraré como instalar Oracle Linux 6.4 en VirtualBox…

Descarga de SW

VirtualBox
Oracle Linux

Necesitan darse de alta o registrarse (sin costo alguno) mediante un correo electrónico.

Configuración Máquina Virtual

Elegir Nueva

Elegir nombre y SO a instalar

SNAG-00098

Configurar tamaño de RAM

SNAG-00099

Elegir disco duro y caracteristicas

SNAG-00100

SNAG-00101

SNAG-00102

Designar tamaño (le pondremos 30GB para instalar SO y los binarios del RDBMS y Grid) y nombre

SNAG-00103

Le damos click al botón Crear, después en la ventana de Máquinas Virtuales elegimos la recién creada

SNAG-00104

SNAG-00105

Configuramos el número # de procesadores en la pestaña Avanzado

SNAG-00106

Las opciones del portapapeles y el funcionamiento al arrastar y soltar

SNAG-00107

Elegimos el archivo ISO con el Oracle Linux que descargamos

SNAG-00108

Deshabilitamos el audio (opcional)

SNAG-00109

Configuramos la tarjeta de red de la máquina virtual (la dirección MAC es generada aleatoriamente)

SNAG-00110
Al darle Aceptar terminamos con la configuración básica de la Máquina Virtual

Instalación del Sistema Operativo Oracle Linux 6.4

Iniciamos la máquina virtual

SNAG-00111

Elegimos Skip para la prueba de la media

SNAG-00112

Damos Next en la pantalla de inicio

SNAG-00113

Elegimos Idioma y Teclado

SNAG-00114

SNAG-00115

Seleccionamos Dispositivos Básicos de Almacenamiento (Basic Storage Devices)

SNAG-00116

Elegimos Si, descartar cualquier dato (Yes, discard any data)

SNAG-00117

Nombramos el servidor (para este ejemplo le puse ora12cdgp.localdomain)

SNAG-00118

El nombre se determino en base a la versión del manejador (ora12c) y funcionalidad que realizará (dgp) que en este caso será empleado para configurar Dataguard Primary Database.

Se elige configurar la red para configurar que se active cuando inicie el servidor

SNAG-00119

SNAG-00120

Se cambia de modo DHCP a Manual y se asignan IP Address, Netmask y Gateway

SNAG-00121

SNAG-00122

Se elige Zona Horaria

SNAG-00123

Eelgir el espacio a utilizar y seleccionar revisar formato de particionamiento

SNAG-00124

Reasignar tamaños para Swap (reducirlo de 4032M a 2048M) y lv_root (aumentarle los 2048M que le quitamos al área de Swap)

SNAG-00126

Grabar cambios en el disco

SNAG-00127

Asignar contraseña de root (ponerle oracle para este ejemplo)

Elegir forma de booteo

SNAG-00128

Elegir Tipo de Instalación y la opción de Personalizar Ahora

SNAG-00130

Elegir Database y deshabilitar todas las opciones

SNAG-00131

Elegir Desktop y habilitar Desktop y Graphical Administration Tools

SNAG-00131-a

Elegir Applications y habilitar Internet Browser

SNAG-00131-b

Elegir Next para que valide las dependencias de lo seleccionado

SNAG-00132

Empieza la instalación del SO

SNAG-00133

Al terminar dar click en el botón Reboot para terminar la instalación ddel SO

SNAG-00134

Esperar la pantalla de Bienvenida

SNAG-00135

SNAG-00136

SNAG-00139

Aceptar el licenciamiento

SNAG-00140

Elegir que prefieres registrarte posteriormente

SNAG-00141

Validar fecha y hora

SNAG-00143

Esperar la pantalla de login y entrar con el usuario root

SNAG-00144

Elegir que siempre que inicies con la cuenta de root evite mostrarte la advertencia

SNAG-00145

Configurar que la aplicación de la terminal este en el panel

SNAG-00146

Y Bienvenidos a Oracle Linux 6.4

Como verán no es nada díficil configurar e instalar Oracle Linux en una máquina virtual… deseo y espero que esta guía les facilite el trabajo la siguiente vez que quieran configurar un servidor Linux con lo mínimo necesario incluyendo ambiente gráfico para poder instalar, desarrollar y probar diversas herramientas.

 

 

 

 

 

 

 

 

 

Posted in Bases de Datos, Hands-On, Oracle, Tecnología Tagged with: , , ,

Aprendí y decidí…

tren

Y así después de esperar tanto, un día como cualquier otro decidí triunfar, decidí no esperar a las oportunidades sino yo mismo buscarlas, decidí ver cada problema como la oportunidad de encontrar una solución, decidí ver cada desierto como la oportunidad de encontrar un oasis, decidí ver cada noche como un misterio a resolver, decidí ver cada día como una nueva oportunidad de ser feliz.

Aquel día descubrí que mi único rival no eran mas que mis propias debilidades y que en estas, esta la única y mejor forma de superarnos, aquel día deje de temer a perder y empece a temer a no ganar, descubrí que no era yo el mejor y que quizás nunca lo fui, me dejo de importar quien ganara ó perdiera, ahora me importa simplemente saberme mejor que ayer.

Aprendí que lo difícil no es llegar a la cima, sino jamas dejar de subir.

Aprendí que el mejor triunfo que puede tener, es tener el derecho de llamarle a alguien “Amigo”.

Descubrí que el amor es mas que un simple estado de enamoramiento, “el amor es una filosofía de vida”.

Aquel día deje de ser un reflejo de mis escasos triunfos pasados y empece a ser mi propia tenue luz de este presente; aprendí que de nada sirve ser luz si no vas a iluminar el camino de los demás.

Aquel día decidí cambiar tantas cosas, aquel día aprendí que los sueños son solamente para hacerse realidad, desde aquel día ya no duermo para descansar ahora simplemente duermo para soñar…

Walt Disney

Posted in Personal, Superación Tagged with: , ,

No te salves…

no-te-salveNo te quedes inmóvil al borde del camino,
no congeles el júbilo,
no quieras con desgana,
no te salves ahora ni nunca, no te salves.
No te llenes de calma,
no reserves del mundo sólo un rincón tranquilo,
no dejes caer los párpados, pesados como juicios,
no te quedes sin labios,
no te duermas sin sueño,
no te pienses sin sangre,
no te juzgues sin tiempo.

Pero si pese a todo no puedes evitarlo y congelas el júbilo,
y quieres con desgana,
y te salvas ahora y te llenas de calma,
y reservas del mundo sólo un rincón tranquilo,
y dejas caer los párpados pesados como juicios,
y te secas sin labios y te duermes sin sueño,
y te piensas sin sangre y te juzgas sin tiempo,
y te quedas inmóvil al borde del camino,
y te salvas…
Entonces… no te quedes conmigo.

Mario Benedetti

Posted in Personal, Poesía

Habilidades necesarias para programar…

Hace algunos años cuando decidí estudiar la licenciatura en informática sabía que eso quería para mi vida futura… no sabía que lenguaje de programación aprendería, no sabía que habia varios sistemas operativos, no sabía que había diferentes bases de datos y no sabia en que área de especialidad me iba a desarrollar, es más, ni siquiera sabia que era eso de área de especialidad.

Pero de algo si estaba totalmente seguro… eso me gustaba mas que cualquier cosa…

Cuando empecé a estudiar la carrera empezamos con lo mas sencillo posible y al mismo tiempo lo mas complejo de la carrera y de la vida misma: diagramas de flujo.

Antes que sigamos con la plática definamos que es un diagrama de flujo:
Un Diagrama de Flujo representa la representación gráfica de un algoritmo o proceso, el cual muestra de manera visual los pasos o procesos involucrados y a seguir para alcanzar la solución de un problema.

Van a decir como es posible que algo tan insignificante como los diagramas de flujo sean tan importantes, la respuesta es sencilla…

Cuando somos capaces de identificar (análisis) todas las opciones o alternativas en cualquier disyuntiva o bifurcación (decisión) somos capaces de diseñar una serie de actividades (acciones) que nos permita llegar al resultado esperado (solucionar el problema).

Lo que sigue ahora es unicamente emplear cualquier lenguaje de programación COBOL, C#, C++, .NET (Conocimiento Técnico) conocido para diseñar el programa, realizar las pruebas necesarias (depuración de código) que nos permita asegurar el correcto funcionamiento del programa (control de calidad) y poder plasmar una bitácora técnica del mismo (documentar).

Parece díficil verdad?

La verdad es que no… una vez que practican y practican y practican y vuelven a practicar se vuelve sencillo… además cuando comienzan a emplear esta metodología en su día con dia esto llega a ser parte normal en su vida que se convierten en personas analiticas involuntariamente.

Agreguenle que cuando sale una nueva versión del lenguaje de programación preferido la curiosidad nos lleva a leer publicaciones sobre las mejoras, a escuchar entrevistas o ver videos en las redes sociales sobre los diseñadores y a realizar pruebas para ver si lo que dicen es cierto o no.

Parece que me estoy saliendo del tema completamente, originalmente iba a hablarles de las “Habilidades necesarias para programar” pero me puse a hablar de los algoritmos y lenguajes de programación, por lo que haré un resumen de las mismas.

Las habilidades que se requieren para ser un programador son las siguientes:

HARD SKILLS
Capacidad de Análisis y Abstracción.- identificar todas y cada una de las partes involucradas en un proceso para poder plasmarlas de manera lógica y visual (Parte inicial en la creación del Diagrama de Flujo).

Pensamiento Crítico.- usar la lógica y el razonamiento para identificar fortalezas y debilidades de las alternativas y opciones de las acciones sugeridas para la solución del problema.

Conocimiento Técnico.- es la aplicación de la sintaxis correcta y comandos de cualquier lenguaje de programación en el diseño de una solución informática.

Depuración de Código.- realizar las pruebas necesarias que permitan elaborar la solucion al problema.

Control de Calidad.- asegurar el correcto funcionamiento del programa mediante una serie de pruebas.

Documentación.- generar la documentación concreta y específica sobre la solución diseñada.

Aprendizaje Continuo y Activo.- investigar nuevas funcionalidades, probarlas y mantenerse actualizado.

SOFT SKILLS
Tolerancia a la frustración.- mantener niveles altos de optimismo durante las fases de pruebas y control de calidad porque surgen cosas no esperadas en algunos casos.

Facilidad de palabra.- poder expresar las ideas y soluciones técnicas (programas) a personas no-tecnicas para la integración del equipo de trabajo.

Especialización.- identificar los nichos o zonas de programación donde te sientas cómodo para obtener un grado mayor de experiencia.

Administración del Tiempo.- cuando llegas a dominar lenguaje de programación puedes alcanzar un nivel de estimación del tiempo sobre las actividades a desarrollar.

A lo mejor encuentran otras en internet… cada quien puede poner o agregar algunas más dependiendo como haya sido su formación y crecimiento profesional, espero sean de utilidad y sirva de referencia en un futuro no muy lejano… nos vemos en la próxima y sean felices.

Posted in Personal, Superación, Tecnología Tagged with: , ,

Que es un Sistema Administrador de Base de Datos En Memoria.

Un sistema Administrador de Base de Datos En Memoria (IMDBMS) almacena, gestiona y proporciona acceso a los datos en la memoria principal.

Un sistema de gestión de base de datos en memoria (IMDBMS) es un sistema de gestión de base de datos (DBMS) que usa principalmente la memoria principal para el almacenamiento de datos, administración y manipulación. Esto elimina la latencia y el sobretrabajo de almacenamiento en disco duro reduciendo el conjunto de instrucciones que se requiere para acceder a los datos. Para permitir el almacenamiento y el acceso de manera eficiente, los datos pueden ser almacenados en un formato comprimido.

Los Manejadores tradicionales mueven los datos del disco a la memoria en una memoria caché o piscina (Pool) cuando se acceden a ellos. Mover los datos a la memoria hace que acceder a los datos sea más eficiente, pero la constante necesidad de mover los datos puede causar problemas de rendimiento. Dado que los datos en un IMDBMS ya residen en la memoria y no tienen que ser trasladados, el uso y rendimiento de las consultas se pueden mejorar de manera significativa.

Los sistemas manejadores de Bases de Datos En Memoria tienen usos generales, pero se utilizan principalmente para aplicaciones en tiempo real que requieren un alto rendimiento. Los casos de uso para IMDBMSes incluyen aplicaciones con requisitos de gestión de datos en tiempo real, tales como telecomunicaciones, finanzas, defensa e inteligencia. Las aplicaciones que requieren acceso a los datos en tiempo real, incluyendo aplicaciones de centro de llamadas, aplicaciones de viaje y reservas y aplicaciones de streaming son también buenos candidatos para IMDBMS.

Hoy en día, las capacidades de los sistemas en memoria capacidades son una de las señales de identidad de la mayoría de las oferta de los nuevos administradores de Base de Datos, aunque los productos IMDBMS también pueden gestionar otros tipos de bases de datos, incluyendo NoSQL, columnar, gráfica y relacional. Un IMDBMS también puede ser llamado un sistema administrador de base de datos en memoria o sistema administrador de bases de datos residentes en memoria.

Posted in Bases de Datos, Tecnología Tagged with:

Respaldo Automático de MySQL

Siguiendo con los scripts que nos permiten respaldar las Bases de Datos llega el turno de MySQL…

Este script permite lo siguiente:

  1. Realizar el respaldo desde un servidor central
  2. Crear un directorio único (fecha del respaldo)
  3. Borrar el directorio con antiguedad de 7 días
  4. Generar el respaldo de la base de datos remota con nombre único (prefijo bck + base de datos + fecha + extension sql)
  5. Contabilizar el total de bases respaldadas
  6. Enviar correo con resumen de respaldo

Ahora pasaremos al código del mismo:

Documentación del shell script:

####################################################################
#                                                                  #
# Programa     : backup_mysql_remote.sh                            #
# Proposito    : respalda las bases de datos mysql remotas.        #
# Periodicidad : diario a las 01                                   #
# Ejecucion    : backup_mysql_remote.sh                            #
# Elaborado    : L.I. Luis Silva Fernandez                         #
# Correo       : me@mywebpage.com                                  #
#                                                                  #
####################################################################

Declaración de Variables

fecha=`date +"%d%m%Y"`
hora=`date +"%H%M%S"`
fechor=$fecha"_"$hora
export fecha hora fechor

export PATH="Paths defined on variable PATH"
export OHOME=/central_backup_path_mysql
export PHOME=/central_backup_path_mysql/scripts
export PLOG1=$PHOME/logs/backups_mysql_$fecha.log
export PLOG2=$PHOME/logs/resumen_backups_$fecha.log
export PATH PHOME PLOG1 OHOME

Creacion de directorio único con fecha de respaldo

mkdir $OHOME/backups_$fecha
export DHOME=$OHOME/backups_$fecha

Borrado de directorio con antiguedad de 7 días

semana=$(date --date="1 week ago" +"%d%m%Y")
borrar=backups_$semana
rm -r $OHOME/$borrar

Respaldo de Base de Datos Remota con nombre único

echo 'Inicio de Respaldo: ' `date` > $PLOG2
mysqldump -PPort -h RServer_IP_Domain -u user -p pass DB1 -v > $DHOME/bck_DB1_$fecha.sql 2>> $PLOG1
mysqldump -PPort -h RServer_IP_Domain -u user -p pass DB2 -v > $DHOME/bck_DB2_$fecha.sql 2>> $PLOG1

Validación de Bases Respaldadas

export numbcks=`grep "RServer_IP_Domain" $PLOG1 | wc -l`
export count=$((numbcks / 2))
echo 'Bases Respaldadas ' $count >> $PLOG2
ls $DHOME/bck* >> $PLOG2
cd $DHOME
gzip bck*
echo 'Termino de Respaldo: ' `date` >> $PLOG2

Envio de resumen por correo electrónico

mail -s "TAG: Backup MySQL DBs Remote" me@mywebpage.com < $PLOG2

Ahora solo falta que unan los pedazos de cada uno y voilá... disfrutenlo y felices respaldos.

Nos vemos en la próxima.

Posted in Bases de Datos, MySQL, Scripts, Tecnología Tagged with: , , ,

Respaldo Automático de SQL Server

Alguna vez han tenido la necesidad de respaldar un o mas Bases de Datos almacenadas en SQL Server?

Pues aquí les comparto un programa batch que se conecta a la Base de Datos, ejecuta un script para obtener los nombres de las Bases de Datos existentes, genera los respaldos y después los transfiere a un servidor central donde estarán hasta el día que decidan borrarlos.

Las características es que generan un nombre de archivo único por base de datos y por fecha de respaldo, asi evitan sobreescribir respaldos existentes y permite un mejor control a nivel sistema operativo.

Programa Batch

"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -U usuario -P contraseña -iC:\ruta_central_scripts\backup_mssql_db.sql
ftp -s:C:\ruta_central_scripts\backup_mssql_db.ftp

Nota: cambiar C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ por la ruta donde tengan instalado SQL Server.

Programa SQL

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\ruta_central_scripts\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

Programa FTP

open IP_SERVER
username
password
prompt
bin
mput *.BAK
quit

Sugiero validar cada programa por separado para evitar desastres inesperados…

Espero les sea de utilidad y nos vemos en la próxima.

Posted in Bases de Datos, MSSQL, Scripts, Tecnología Tagged with: , , ,

Tamaño de la Base de Datos…

Como administrador de Base de Datos siempre es útil conocer el tamaño que esta ocupando nuestra información tanto para poder diseñar y ejecutar los respaldos que garanticen poder recuperar la base ante cualquier emergencia como para monitorear el crecimiento de la misma y poder asignarle recursos y no quedarnos sin espacio libre que comprometa la disponibilidad del servicio.

El dia de hoy mostraremos como obtener el tamaño de la base de datos en varios manejadores comerciales:

Oracle

col "Database Size" format a20
col "Free space" format a20
col "Used space" format a20
select round(sum(used.bytes) / 1024 / 1024 / 1024 ) || ' GB' "Database Size"
, round(sum(used.bytes) / 1024 / 1024 / 1024 ) -
round(free.p / 1024 / 1024 / 1024) || ' GB' "Used space"
, round(free.p / 1024 / 1024 / 1024) || ' GB' "Free space"
from (select bytes
from v$datafile
union all
select bytes
from v$tempfile
union all
select bytes
from v$log) used
, (select sum(bytes) as p
from dba_free_space) free
group by free.p
/

MySQL

SELECT table_schema "Data Base Name",
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB",
sum( data_free )/ 1024 / 1024 "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;

Postgres

SELECT pg_database.datname,
pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;

SQL Server

SELECT
database_name = DB_NAME(database_id)
, log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
, row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,2))
, total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2))
FROM sys.master_files WITH(NOWAIT)
WHERE database_id = DB_ID() -- for current db
GROUP BY database_id
/

Todos las sentencias SQL que están arriba necesitan privilegios de Administrador, el Rol de DBA o de ciertos privilegios para poder tener acceso a las tablas o vistas del sistema que contienen dicha información.

Nos vemos en la siguiente entrega…

Saludos y sean felices.

Posted in Bases de Datos, MSSQL, MySQL, Oracle, Scripts, Tecnología

Panqué Marmoleado

panque

Ingredientes:
– 250 gramos de mantequilla
– 435 gramos de azúcar glass
– 7 huevos
– 435 gramos de harina
– 8 gramos de polvo de hornear
– Media taza de leche
– 30 gramos de cocoa en polvo

Acremar la mantequilla y agregar paulatinamente el azúcar glass..
Incorporar poco a poco el harina.
Agregar los huevos uno por uno dejando que se incorporen a la mezcla.
De cuando en cuando bajar con la espatula la mezcla de las paredes del tazón.
Mezclar en una taza la cocoa con la leche.
Separar un poco de mezcla.
Incorporar la cocoa en la mezcla apartada.
Cubrir con aceite las paredes de un molde.
Cubrir con harina las paredes del molde recién engrasado.
Formar una base con la mezcla sin cocoa.
Agregar la mezcla con cocoa.
Cubrir con el resto de la mezcla sin cocoa.
Con un palillo formar figuras en la mezcla.
Hornear 45 minutos a 180 grados.
Sacar, dejar enfriar y desmoldar.
Servir en un platón y decorar con azúcar glass.

Se pueden agregar nueces, arandanos, uvas pasas o cualquier fruta seca a la mezcla.

Posted in Gourmet Tagged with: , ,

Botanas mounstrosas..

Dedos de muerto

dedos_de_muerto

Ingredientes:
Salchichas de pavo
Almendras
Salsa Cátsup

Instrucciones:
Rebana las salchichas a la mitad.
Hazles cortes a la mitad de la rebanada simulando un nudillo.
Rebana las almendras a lo largo.
Inserta la almendra como si fuera la uña.
Decora con salsa catsup simulando sangre.

 

Escobas de brujas

escobas_de_bruja

Ingredientes:
Zanahorias
Jícama
Cebollín
Palitos de pretzel

Instrucciones:
Rebana las jícamas en bastones de 5 cm de largo.
Rebana las zanahorias en rebanadas de 5 cm de largo.
Haz cortes a lo largo dejando 1 cm libre de cortes para formar la escoba.
Amarra los palitos de pretzel con cebollín formando la escoba con la jícama y la zanahoria.

Posted in Gourmet Tagged with: , ,