Backup/Restore: P2V the hard way.

20 Noviembre 2009

El asunto parece sencillo:  coges un equipo, haces un ‘backup‘ del sistema completo y lo restauras en otra parte. En la web hay mil teorías de cómo hacerlo. Es muy sencillo -dicen-. Hasta que realmente TIENES que hacerlo.

La realidad: Tenemos un equipo (un viejo PIV con 512 MB) en el que hay instalado un Windows 2003 Server con varias aplicaciones imprescindibles (aplicaciones ‘web’ que corren en el IIS y varias transferencias de ficheros que dependen del ‘FTP Server‘) del que nadie se ha acordado -ni preocupado- de hacer un ‘backup’… hasta que un día la fuente de alimentación se muere repentinamente, a consecuencia de un pico de tensión.

Como quiera que estamos tabajando para la Administración, esto supone una llamada al CAU, que vengan dos técnicos a ver el equipo, que llamen al fabricante (pues resulta que el vejestorio todavía está en garantía), que el fabricante se digne a venir a ver el equipo, valore los daños y -por fin- cambien la fuente de alimentación. Resultado: más de una semana sin los imprescindibles servicios que nos prestaba el cacharrillo. Visto lo visto, mi jefe decide que hay que hacer algo por si la contingencia se vuelve a producir. Mi compañero S. y yo nos ponemos manos a la obra.

OK. Lo primero es buscar una herramienta de ‘backup‘. Miramos herramientas gratuitas y probamos Paragon Backup & Recovery 10 Free Edition. Después de instalarlo, nos dice que no funciona con Windows 2003 Server. La siguiente opción es EASEUS Todo Backup 1.0 que promete hacer ‘backups‘ fiables y generar CD’s de recuperación (boot-CD) para el caso de que el vejestorio sufra un percance mayor que su fuente de alimentación inoperativa.

Bajamos e instalamos el software y realizamos una copia de seguridad del sistema en un disco USB externo. El EASEUS Todo Backup genera dicho backup en ficheros de algo más de 4GB (creemos que para que quepan en DVD’s) sin mayores problemas. Hacemos una verificación del backup, por si las moscas. Todo OK, siempre según el EASEUS Todo Backup.

También generamos un CD de recuperación, que el software se encarga de crear y grabar en un CD.

Todo Backup 10

Todo Backup 10

Hasta aquí la cosa va como la seda. Coser y cantar. Pero ahora hay que probar que podemos recuperar el backup obtenido. El asunto no tendría mayor importancia… a no ser que no fuera la Administración: no hay equipos donde recuperar (restore) el ‘backup‘ realizado. Y ni de coña lo vamos a intentar en el propio equipo del que hicimos el ‘backup‘: si algo falla, nos quedamos en bragas.

Así que sopesamos las opciones. Obviamente, iremos a alguna opción de virtualización: el ‘restore‘ en una máquina virtual nos aseguraría un ‘restore‘ en una máquina real, e incluso nos permitiría tener el Windows 2003 Server corriendo virtualizado hasta disponer de un equipo de repuesto para nuestro matusalén. Comenzamos con VirtualBox, que es gratis.

Corremos VirtualBox en un equipo con Windows XP. Generamos una máquina virtual con un disco de espacio suficiente para recuperar el backup. Introducimos el CD de recuperación generado con EASEUS Todo Backup y arrancamos. Vemos que se trata de algún Linux que intenta arrancar… hasta que un pantallazo hace que la máquina virtual se reinicie. Así una y otra vez. Estamos casi seguros de que es algo relacionado con la resolución de la pantalla de la máquina virtual, pero aunque probamos diferentes configuraciones con “VBoxManage” siempre llegamos al mismo resultado. Así que VirtualBox fuera.

La siguiente: la siempre fiable VMWare Workstation. Como sólo queremos ver que el ‘backup’ es recuperable, nos valdrá con una versión de evaluación. Mismo procedimiento: Generamos una máquina virtual con un disco de espacio suficiente para recuperar el backup. Introducimos el CD de recuperación generado con EASEUS Todo Backup y arrancamos. Aquí las cosas empiezan a mejorar: aunque el pantallazo es el mismo que en el VirtualBox, VMWare se da cuenta y nos ofrece cambiar la resolución de la pantalla. Elegimos 800×600, volvemos a arrancar y… voìlá. Tenemos el Linux arrancado con el EASEUS Todo Backup en orden de revista.

Comenzamos con el proceso de recupeación del ‘backup‘. Aquí pasan cosas un poco raras: las pantallas para elegir de dónde seleccionar los ficheros de ‘backup‘ para la recuperación y el disco de destino a recuperar, a veces vemos dos unidades (el DVD y el disco USB) y a veces tres (el DVD, el disco USB y el disco duro virtual). Creemos que es porque el proceso necesita un tiempo para reconocer todas las unidades, y nosotros estamos ya un poco impacientes.

Finalmente elegimos ficheros origen, disco de destino y ejecutamos la recuperación, que lógicamente se toma su tiempo. Al terminar tenemos -en teoría- un sistema virtual idéntico al sistema real del que hicimos el backup.

“Lo tenemos casi”, pensamos. Sólo hay que arrancar el sistema y ver el Windows 2003 Server ‘alive and kicking’.

Así que arrancamos la máquina virtual. Aparece la pantalla de Windows 2003 Server con el ‘ascensor’ horizontal. “Ya está, ya está” pero:

Blue Screen of Death

Blue Screen of Death

El “Blue Screen of Death“. Con el STOP: 0X0000007B. Las maldiciones se deben de oir hasta en la China.

El msdn dice que esos errores son de problemas para encontrar un medio de arranque. Así que la respuesta está en el disco duro virtual. Probamos todas las opciones que nos permite VMWare, pero siempre con el mismo resultado: BSD.

Ya no sabemos qué hacer. Como la respuesta no aparece del lado de Microsoft, buscamos en el lado de VMWare.

En la base de conocimientos damos con algo que nos pone las orejas tiesas:

For all versions of GSX Server, Workstation and VMware Server, this problem can also be caused by the use of a third party IDE controller driver on your
native Windows 2000, Windows XP or Windows Server 2003 partition.

“A ver si va a ser esto…” Nos vamos corriendo al equipo con el Windows 2003 Server. Miramos el Administrador de dispositivos y ¡ahí está!: hay controladores SATA ‘intel’ instalados (suponemos que con algún CD de instalación del equipo). Esto hace que, al no ser controladores ‘genéricos Windows’, cuando el sistema intenta arrancar en la máquina virtual con estos ‘drivers‘ no reconoce el disco duro virtual, ya que espera uno específico para el ‘driver‘.

¿Cómo solventarlo? Con un nuevo perfil ‘hardware‘. Creamos un nuevo perfil ‘hardware‘ y le sustituimos todos los ‘drivers‘ de ‘third party‘ por controladores genéricos IDE de Windows.
Arrancamos el sistema con este nuevo perfil y vuelta a empezar: nueva copia de seguridad del sistema.

Tras otro buen rato esperando el ‘backup‘ al USB y un nuevo ‘restore‘ en la máquina virtual arrancanda con el CD de recuperación de EASEUS Todo Backup, tenemos todo a punto de caramelo…

Cruzamos los dedos. Arrancamos la máquina virtual con el disco restaurado. Aparece la pantalla de Windows 2003 Server con el ‘ascensor’ horizontal… ¡y arranca!.

Tenemos un sistema Windows 2003 Server virtualizado que es una copia exacta del que hay en el cacharro renqueante. Y puede funcionar (si configuramos la red virtual como ‘bridged‘) en sustitución del sistema físico original en el caso de una avería permanente o irrecuperable.

Todo esto sólo nos ha llevado tres días…

Saludos.

Carlos.


El Ratoncito Pérez.

9 Noviembre 2009

Hoy se le ha caído su primer diente al Bicho Nº1. Está todo emocionado porque esta noche vendrá el Ratoncito Pérez, se llevará su diente de debajo de la almohada y dejará una moneda a cambio.

Estos críos…

Saludos.

Carlos.


Revo Uninstaller

30 Octubre 2009

Recientemente, a consecuencia de la imposibilidad de desinstalar la Sun VirtualBox 2.0 para así poder instalar la última versión Sun VirtualBox 3.0.10 mediante las desinstalaciones Windows ‘estándar’ (el programa de desinstalación era incapaz y la actualización 2.0 -> 3.0 era imposible), he descubierto una pequeña y útil aplicación llamada Revo Uninstaller que es capaz de lidiar con los problemas de las desinstalaciones, generalmente consecuencia de errores en el ‘registry‘ y de entradas y ficheros desaparecidos.

Tras bajarme la versión ‘portable’, lo ejecuté y lo que parecía una ‘imposible desinstalación’ se convirtió en un fácil proceso, que además limpió el ‘registry‘ y los archivos ‘basura’ que quedaban por allí.

Saludos.

Carlos.


CentOS 5.4 disponible.

23 Octubre 2009

Desde el 21/10/2009 el nuevo ‘release’ de CentOS -CentOS 5.4- está disponible.

A ver si tengo un rato y me pongo a ello. La verdad es que las últimas actualizaciones de kernel han hecho que haya tenido que recompilar e instalar cada vez el driver NVIDIA para Linux, que me permite aceleración gráfica hw, compiz etc, etc… Veremos qué pasa esta vez.

Saludos.

Carlos.


Sun ORACLE DATABASE MACHINE

5 Octubre 2009

La primera de las consecuencias visibles de la adquisición de Sun por Oracle: Sun ORACLE DATABASE MACHINE.

Oracle ha reconstruído su HP ORACLE DATABASE MACHINE con tecnología (léase servidores) Sun: pasa de los servidores Exadata (con los HP Proliant) a los Exadata II

Hay varias cosas sorprendentes en este movimiento que le dejan a uno un tanto perplejo:

  1. Oracle lo anuncia como ‘World’s First OLTP Database Machine‘ (lá primera máquina de bases de datos OLTP) ¡OLTP! Originariamente, con la HP ORACLE DATABASE MACHINE se pretendía asentar la posición de Oracle en el mercado del ‘Data Warehousing‘, no de OLTP.
  2. Oracle ha dejado de vender las HP ORACLE DATABASE MACHINEipso facto‘. Si yo fuera un cliente al que un avispado comercial de Oracle le ha ‘colocado’ una de esas HP ORACLE DATABASE MACHINE este último año, creo que iría a buscarle a su casa con un bate de béisbol en cada mano.
  3. En vez de usar los Sun Sparc, la arquitectura de los nuevos servidores Exadata II está basada en procesadores Intel. Más específicamente en los Intel Xeon 5500
  4. El sistema operativo es Oracle Enterprise Linux, en vez de Solaris.

Y todo rebozado con gran cantidad de palabrejas, eslóganes, y demás parafernalia publicitaria. Y es que Larry es siempre Larry.

Saludos.

Carlos.


Skew Factor en Teradata

25 Septiembre 2009

Uno de los conceptos más importantes en Teradata es el ‘skew factor‘ (que podríamos traducir algo así como ‘factor de sesgo’) en la distribución de los datos de las tablas entre los AMP’s.

Y es tan importante porque está directamente ligado al concepto de paralelismo y al funcionamiento de Teradata. Como hemos dicho otras veces, el paralelismo tiene sus -casi siempre- cosas buenas (muchos procesos trabajando a la vez) y sus -a veces- cosas malas (la tarea tarda tanto como el último de los procesos…). Es aquí donde entra el ‘skew factor‘ en la distribución de datos entre los AMP’s: si todos los AMP’s tienen un volumen de datos similar la tarea se realizará en paralelo de la forma más eficiente. Si por el contrario hay unos AMP’s que tienen poco volumen de datos y otros que tienen mucho volumen, estos últimos tendrán que hacer casi todo el trabajo y la tarea no terminará hasta que no acabe el último de ellos (aquí se abre un universo de metáforas con el mundo laboral y tal…)

Por ello hay quien define el ‘skew factor‘ como la función inversa de la ‘Parallel Efficiency‘ (eficiencia paralela): cuanto menor sea el ‘skew factor‘ mayor será la ‘Parallel Efficiency‘.

La fórmula para calcular el ‘skew factor‘ es:

100-((Media de CurrentPerm/Máximo de CurrentPerm) X 100).

Por regla general se considera aceptable un ‘skew factor‘ menor o igual que 10, mientras que si el ‘skew factor‘ es superior a 10 se recomienda revisar la definición del ‘primary index‘ para que el algoritmo ‘hash‘ distribuya los datos de la tabla de una forma más equitativa entre los AMP’s.

Otra cosa a tener en cuenta es que si la tabla es muy pequeña el ‘skew factor‘ deja de ser significativo.

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT TABLENAME,
       SUM(CURRENTPERM) CURRENTPERM,
       SUM(PEAKPERM) PEAKPERM,
       CAST((100-(AVG(CURRENTPERM)/MAX(CURRENTPERM)*100)) AS DECIMAL(5,2))
       "SKEWFACTOR(%)"
  FROM DBC.TABLESIZE
 WHERE DATABASENAME = 'MY_DB'
 GROUP BY TABLENAME
 ORDER BY TABLENAME
;

 *** Query completed. 24 rows found. 4 columns returned.
 *** Total elapsed time was 1 second.

TableName  CURRENTPERM    PEAKPERM SKEWFACTOR(%)
---------- ----------- ----------- -------------
TABLA01      3,911,680   3,911,680          6.60
TABLA02         61,952      61,952         24.38
TABLA03        467,456     467,456         10.49
TABLA04      3,987,968   3,987,968          7.49
TABLA05      1,980,928   1,980,928          7.00
TABLA06         38,400      38,400          6.25
TABLA07        913,920     913,920          7.03
TABLA08         21,504      21,504         30.00
TABLA09         76,800      76,800         31.82
TABLA10      1,320,448   1,320,448          7.23
TABLA11        557,056     557,056         12.26
TABLA12        748,032     748,032          7.53
TABLA13      1,263,616   1,263,616          7.22
TABLA14    128,400,896 128,400,896          8.71
TABLA15    121,289,728 121,289,728         13.52
TABLA16     23,704,064  23,704,064          7.52
TABLA17     67,391,488  67,391,488          8.35
TABLA18         34,304      34,304         16.25
TABLA19        748,032     748,032          9.81
TABLA20         76,288      76,288         17.22
TABLA21         72,192      72,192         21.67
TABLA22         55,808      55,808          9.17
TABLA23         35,840      35,840         12.50
TABLA24        860,672     860,672          4.49

 BTEQ -- Enter your DBC/SQL request or BTEQ command:

Saludos.

Carlos.


Business as usual…

15 Septiembre 2009

Aquí estamos otra vez, después de unas semanas de (merecidas) vacaciones. Tiempo para descansar, leer, dormir, nadar, correr… y sin tocar un ordernador.

Lecturas: La ‘Autobiografía’ sin censurar de Charles Darwin, ‘Cinco Semanas En Globo’ de Julio Verne y ‘Asesinos Sin Rostro’ de Henning Mankell (Wallander le da más de mil vueltas a Salander).

Coche: Fiat Punto. Tranquilo, familiar, espartano.

He aquí unas cuantas reflexiones que se me han ocurrido mientras mi mente divagaba bajo el sol entre cervecita y cervecita:

·La Gran Clavada: El precio del alquiler del mismo coche, por el mismo tiempo, en las mismas fechas entre 2008 y 2009 ha subido como un 120%. Y luego dicen que el IPC está bajando. Según parece, la escasez de créditos de los bancos hacen que las compañías no tengan liquidez para comprar coches con los que renovar las flotas. Esto disminuye la oferta para una (casi) igual demanda, con lo que los precios suben desmesuradamente (a esto creo que técnicamente se le llama ‘economía de mercado’. A mí me parece simplemente un atraco en el que alguien está haciendo su agosto -nunca mejor dicho-)

·La Gran Cagada: Encontré una oferta muy buena para unas New Balance 767. Llevado por la emoción del momento, me las probé demasiado deprisa con el resultado de que las compré medio número pequeñas. He intentado correr con ellas para ver si podía ‘domarlas’, pero me hacen daño en la parte externa de los dedos gordos de los pies.

·La Gran Putada: El entusiasmo de las vacaciones me llevó a hacer burradas: tirar niños a la piscina, subirlos a los hombros, hacer el bestia… con el resultado de una lumbalgia que traté primero con pomada de ibuprofeno -sin resultado- y con calmantes, antiinflamatorios y relajantes musculares después. Total: cuatro o cinco días jodido de verdad.

·La Gran Guarrada: Los fumadores deben de pensar que la playa es una especie de cenicero gigante en el que apagar y dejar las colillas de sus cigarrillos. Es asqueroso intentar hacer un castillo de arena con el Bicho nº1 y el Bicho nº2 y encontrar colillas y más colillas. ¿Acaso hacen lo mismo en sus casas? ¿Dejan tiradas las colillas por el suelo?

·La Gran ‘Bacalada’: Mi Timex Ironman Triathlon 100-Lap dice que aguanta 100 metros de profundidad. Pues después de un chapuzón en la playa apareció una burbuja bajo el cristal principal, que se convirtió en una pequeña multitud de gotitas de agua. Más tarde, dejaron de funcionar varias barras de los dígitos de la pantalla haciendo casi imposible leer la hora. Tampoco funciona la iluminación ‘indiglo’. Quizá abriéndolo y limpiándolo vuelva a funcionar correctamente, pero eso de ‘WR 100 M’ es una ‘bacalá’ de mucho cuidado.

·La Gran Gozada: Cómo se lo han pasado el Bicho nº1 y el Bicho nº2. La felicidad que ves en los niños felices es la felicidad más absoluta.

¡Ah! Y mientras tanto Oracle ha sacado la versión 11gR2 (‘R2′: esa sí la instalaría yo).

Saludos.

Carlos.


UltraEdit 32

20 Agosto 2009

Allá por el año 1999 -o quizá el 2000- un compañero me habló de un magnífico editor de texto para programadores llamado UltraEdit. Yo llevaba mucho, pero que mucho tiempo programando con el Norton Editor y no había oído hablar del editor en cuestión, con lo que al principio lo miraba con escepticismo. Siempre he sido muy crítico con las herramientas ‘GUI’ que tienen multitud de botoncitos, ventanitas, colores, opciones… (soy acérrimo del sql*plus en Oracle y del bteq en Teradata) pero tras un primer vistazo, me di cuenta de que el diseño e interfaz era lo bastante sobrio para que pasase mis ‘filtros anti GUI’.

Así pues me bajé una versión ‘trial‘ (creo que de 30 días) y poco a poco, y casi sin darme cuenta, me fui haciendo adicto a él. Total, que el ‘trial‘ expiró y me compré la licencia (la versión del momento era la 7.20). Desde entonces nos hemos hecho inseparables y en todos los trabajos y en todos los ordenadores con los que he trabajado (si Windows) he instalado este editor con el que me siento como en casa (prácticamente conozco de memoria todos los ‘shortcuts‘ de teclado).

Su simplicidad, su efectividad, su modo de edición en columna, la edición hexadecimal…

Tiene ciertas carencias: mi versión no soporta conexión SSH/SFTP (aunque se puede hacer a través de FileZilla) y a veces tiene problemas con el UNICODE y los BOM, pero no lo cambio por nada.

A través de los años he probado otros editores, y me han ofrecido versiones más modernas (y todo hay que decirlo, casi todas piratas) del UltraEdit, con nuevas ‘features‘ y más ‘buzzs and bells‘, pero yo sigo fiel a mi UltraEdit versión 7.20, compañera en mil batallas, con la que he escrito miles y miles de líneas de código, ya sea SQL, shell scripts, HTML, java, C/C++, PL/SQL, Visual Basic scripts… y con la que espero escribir aun muchas líneas más.

Porque no necesito otra cosa.

(Dedicado a La Parte Contraria).

UltraEdit 7.20

Saludos.

Carlos.


Creando Vistas Materializadas en otros esquemas: ORA-01031 (II)

18 Agosto 2009

Recientemente me ha llegado a mi ‘mail’ una duda sobre el mismo error (ORA-01031: privilegios insuficientes) al crear una vista materializada en otro esquema.

Tras remitirle aquí, el remitente me decía que persistía el error. Al ver el DDL de la creación de la vista materializada caí en la cuenta de que el problema era otro:era una vista materializada ‘REFRESH ON COMMIT’. Pues bien, para este tipo de vistas se necesita un privilegio específico:

ON COMMIT REFRESH create a refresh-on-commit materialized view on any table in the database

Y lo vemos aquí:

CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6    REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;
  SELECT * FROM OTHERUSER.THE_TABLE
                           *
ERROR en línea 8:
ORA-01031: privilegios insuficientes

CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6  --  REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;

Vista materializada creada.

CARLOS@XE.localhost> DROP MATERIALIZED VIEW MY_MV;

Vista materializada borrada.

CARLOS@XE.localhost> GRANT ON COMMIT REFRESH TO CARLOS;

Concesión terminada correctamente.

CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6    REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;

Vista materializada creada.

CARLOS@XE.localhost>

Saludos.

Carlos.


El Bicho y el Gran Pez

31 Julio 2009

La foto no es un montaje. La figura pequeña de la parte inferior izquierda de la imagen es el Bicho Nº 1. La grande no necesita explicación: es un ¿mero? gigantesco. Observad y comparad los tamaños de los dos ‘bichos’:

El Bicho y el Gran Pez

El Bicho y el Gran Pez

Saludos.

Carlos.