Cabecera PRINCIPAL

Claves: técnico, redes, networks, microsoft, open source, gnu, programador, software, hardware, desarrolladores

Juan Enrique Gómez Péérez

viernes, 28 de enero de 2011

Componentes de integración en máquinas CentOS 5 o superior

Hoy vamos a dar el pequeño detalle para la instalación de los componentes de integración de Hyper-V en las máquinas Linux basadas en CentOS 5.4 o superior. Lo primero que debemos hacer es actualizar nuestro kernel y librerías a las últimas versiones, para ello desde nuestra máquina virtual ya instalada y configurada (por supuesto con adaptador heredado, ya que el sintetico no funcionará) ejecutamos el siguiente comando:

yum update

Esto nos validará todas las actualizaciones, que aceptaremos, instalaremos, y reiniciamos la máquina con el último kernel disponible.
Ahora vamos a necesitar las últimas Herramientas de Integración de Hyper-V que a fecha de hoy las tienes aquí para descargar.

Bien, ejecutamos el ejectuable, valga la redundancia, y esto nos deja en un directorio una imagen .ISO que montaremos para la máquina virtual.

Para montar la imagen usaremos este comando:

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

cd /mnt/cdrom


Si no tenemos instaladas las herramientas de desarrollo en nuestro sistemas usaremos el repositorio de CentOS para hacerlo:

yum groupinstall "Development Tools"

Creamos el directorio donde instalaremos las herramientas y copiamos todos los archivos del CD-ROM a este directorio:

mkdir /opt/LinuxIC
cp -R /mnt/cdrom/* /opt/LinuxIC
umount /mnt/cdrom


ahora simplemente iremos a compilarlas:

cd /opt/LinuxIC
make
make install


Al ejecutar el make debemos fijarnos que no nos de error alguno, sino el make install no tendrá sentido. Con esto habríamos terminado. Si estamos utilizando la versión x64 de CentOS necesitamos un pasito más, para ello montamos el CD-ROM de CentoOS número 1, e instalamos el paquete "adjtime":

mount /dev/cdrom /mnt/cdrom
rpm –ivh /mnt/cdrom/Centos/adjtimex-1.20-2.1.x86_64.rpm


si no tenemos el CD-ROM podemos hacerlo con el comando yum:

yum install adjtimex.i386

Si queremos finalmente validar que todos los componentes de integración están funcionando, lo podemos comprobar con el siguiente comando:

/sbin/lsmod | grep vsc

Un último comentario, recordar que los dispositivos de red de los adaptadores sinteticos son denominados sethX, donde X es el número de interfaz, por ejemplo eth0 se convierte en seth0.

Hasta la próxima.

jueves, 27 de enero de 2011

Backup casero para SQL Server

Todos los que nos movemos en este mundillo conocemos los agentes de Backup de diferentes fabricantes y los precios que se gastan. En muchas ocasiones en el caso de los SQL Server simplemente necesitamos una copia monda y lironda de la base de datos sin ninguna floritura más. Pagar el dinero que cuestan estos agentes en muchas ocasiones no está justificado, y me he encontrado con situaciones en las que el técnico hace cosas como parar la Base de datos para hacer el backup y luego arrancarla, con los consiguente problemas de tiempo, riesgo de que no arranque, etc. etc.


Por ello aquí va un pequeño método sobre como realizar un backup de SQL Server en caliente. El sistema funcionará de la siguiente manera, un fichero bat/cmd se ejecutará con la periodicidad indicada en nuestro programador de tareas, este fichero pasara una serie de parametros a un script SQL que nuestro servidor entenderá, y a su vez este script SQL llama a un procedimiento almacenado dentro del nuestro SQL Server que es el encargado de realizar el DUMP.


En primer lugar crearemos el script que llamará al procedimiento almacenado y le pasara los parametros, creamos un fichero por ejemplo llamado "fullbackup.sql":


USE [master]
exec expressmaint
@database = '$(DB)',
@optype = 'DB',
@backupfldr = '$(BACKUPFOLDER)',
@reportfldr = 'c:\backupBD\reports\',
@verify = 1,
@dbretainunit = '$(DBRETAINUNIT)',
@dbretainval = '$(DBRETAINVAL)',
@rptretainunit = ' copies',
@rptretainval = 2,
@report =1

Esta sentencia SQL lo que va a hacer es coger lo parametros que le pasemos cuando la llamemos con nuestro script o fichero BAT (se ven claramente los parametros que comienzan por $), y ejecutará el procedimiento almacenado que tenemos que subir como veremos ahora a nuestro sql server.



El fichero BAT que ejecuta este script es un modelo como sigue:


"c:\Archivos de Programa\Microsoft SQL Server\90\Tools\Binn\sqlcmd -S .\ -i"c:\BackupBD\fullbackup.sql" -v DB="BASEDEDATOS" -v BACKUPFOLDER="c:\BackupBD\BackupBBDD\" -v DBRETAINUNIT="days" -v DBRETAINVAL="1"


Por supuesto tendrás que adaptar las rutas de tu Script a tu entorno. Este comando tendrás que meterlo en un fichero .BAT que será el que des a tu programador de tareas para ejecutar.


Por último solo nos quedará, introducir el procedimiento almacenado en nuestro SQL Server, el que contiene la base de datos que queremos realizar copia:



- Abrimos nuestra herramienta de gestión de SQL Server, SQL Server Management Studio en mi caso, y sobre la base de datos [master] creamos un nuevo procedimiento almacenado:



Una vez que nos lo cree, tendremos que pegar dentro el contenido de este fichero, y el procedimiento almacenado se debe llamar "expressmain", si cambiaramos el nombre del procedimiento debemos corregirlo en el fichero "fullbackup.sql".


Procedimiento Almacenado


Una vez preparado, el sistema nos dejará listo por un lado la copia de seguridad de la base de datos en el directorio indicado (BACKUPFOLDER este parametro va en el .BAT) y un informe del estado de la copia de seguridad en el directorio de reportes (reportfldr, este parametro va en el fullbackup.sql).

[Actualización 05/02/2011]

He detectado un error en el fichero para la creación del procedimiento almacenado ya que el comando utilizado que estaba en la descarga es "ALTER" y debería ser "CREATE" ya lo tienes corregido en la descarga para bajar nuevamente.

Por otro lado algunos usuarios han detectado este problema al ejecutar el script:

Esto básicamente indica que la opción xp_cmdshell no está activada en el configurador de superficie del SQL Server, simplemente abrete el SQL Server Surface Configuration y en la opción de Configuración de Superficie para Caracteristicas, activas la casilla al lado de la opción "xp_cmdshell".


Espero que os sirva.