martes, 25 de diciembre de 2007

Niveles de Raid para SQL Server

Hoy día de navidad les voy a hablar sobre los niveles de raid que debemos configurar para montar nuestro servidor SQL Server. Cada nivel beneficia la lectura o escrituras en nuestro servidor de base de datos dependiendo de la función del mismo. Aquí le dejamos algunos beneficios:

Raid 0: mejora la lectura y escritura al repartir las operaciones en varios discos realizandose las operaciones de forma simultáneas.
Raid 1: este nivel permite escribir en un disco y almacenar una imagen idéntica en otra, proporciona tolerancia de errores y buena lectura, pera la escritura es muy mala en este nivel.
Raid 5: similar al raid 0 pero con tolerancia de errores. Este puede escribir en todos los discos, y es el más utilizado hoy en día, ya que ofrece un mejor rendimiento que los antes mencionados por contar con bandas de paridad superior al raid 1.
Raid 10 (Raid 1 + 0): es el que ofrece el mayor rendimiento de lectura y escritura de todos los niveles, pero necesita el doble de discos para el arreglo.

En general, el raid 5 es el mas utlizado por ofrecernos un buen rendimiento de lectura y escritura, en cambio el Raid 0 es muy útil si solo vamos a realizar lectura o consultas en la BD, el raid 10 es una buena opcion, pero necesitamos una mayor inversion para el mismo. Existen otros niveles que no son muy utilizados hoy en día como el 2, 3 y 4 y otros propietarios que van a partir del 10.

miércoles, 12 de diciembre de 2007

SQL Prompt 3.6.0, Intelligence code completition

Cuantos de ustedes no han deseado tener una herramienta que le permita completar el código de forma inteligente cuando están creando sus scripts en la base de datos, les voy a presentar una herramienta llamada SQL Prompt 3.6.0, que tiene las siguientes características:

  • Completa códigos de forma inteligente para una mayor rapidez.
  • soporta linked-server y cross-database.
  • Se puede integrar con cualquier herramienta de VS 2005 y SQL 2005.
  • integración de Code Snippet.

Más información en: http://www.red-gate.com/products/SQL_Prompt/video_main.htm

sábado, 8 de diciembre de 2007

Seguridad en sus aplicaciones Web con ASP.NET

La seguridad en las aplicaciones Web siempre son unas incognitas para nosotros los desarrollados y una parte tediosa al momento de crear una aplicación. Pero siempre que nos encontramos desarrollando tenemos que tener en cuenta que hay personas que quieren accesar o destruir nuestro web site. Para esto debemos valernos de algunos atributos de seguridad tanto en nuestra aplicación como en nuestra plataforma.

Entre las posibles amenazas a nuestra aplicaciones podemos detallar:
  • Injection SQL.
  • Mediante delegación de servicios.
  • Llamadas consecutivas a la misma página mediante una aplicación automática.
  • Mediante el famoso "Ping de la Muerte".
Algunos mecanimos que debemos tener en cuenta para defender nuestra aplicación son:
  • Para accesos y consultas a la base de datos utilizar store procedures.
  • Pasar los parametros de sql mediantes sqlparameter dentro de un sqlcommand.
  • Mejorar los tipos de autenticación y autorización en el IIS.
  • Si es posible utilizar IIS 6.0 ya que nos provee application pool separados para cambiar los modelos de seguridad de una aplicación a otra.
  • Utilizando Firewall para separar el internet de la intranet.
  • Encriptación de datos seguros.
  • Utilizar componentes de seguridad.

Señores, espero que estos detalles le funcionen y recuerden que hay que mantenerse actualizado con las noticias porque siempre hay nuevas formas de ataques y nuevas vulnerabirilidades en los componentes de desarrollado.

jueves, 6 de diciembre de 2007

Cierre Developers Days II Codegear

Señores, cerrá el evento de codegear "Developers days II" con una magistral exposición de Andreano Lanusse, realmente me impresionó, excelente y otras muy buenas interacciones con el público por parte de José Castillo, uno de los especialistas técnico de codegear para latinoamerica. Les voy a dar un review de los temas tratados en esta conferencia que la puedo catalogar como muy buena, y el producto RAD Studio 2007 es una potente herramienta de desarrollo, mucho mejor de lo que pensaba y creo que puede competir de tu a tu con el Visual Studio 2008 que acaba de salir. RAD Studio cuenta con una potente herramienta de administración de base de datos que permite crear procedures y trigger en lenguaje puro de delphi, además como la aplicación de las clases generics, recuerdan las generics de VS 2005, "List (of T)", entre otras, pues ya lo podemos tener en delphi pero solo en el ambiente de clases, se encuentran trabajando en la parte de generics para win32. Además han incorporado en la parte de asp.net lo que es el master page y los datasource que viene con asp.net 2.0 y que lo habiamos visto con anterioridad.

Algo que me llamó mucho la atención fue el diseño de los diagramas de clases que trae el RAD Studio, y la cantidad de repositorios de funciones y propiedades que podemos añadir a nuestra aplicaciones sin tener que tirar un solo código.

También podemos encontrar incorporado el blackfish, un pequeño motor de base de datos que puede correr sobre el framework de .net y el java platfform y sus archivos de datos son compatibles para ambos. Además, el RAD Studio tiene un buena plataforma para trabajar con AJAX y otros lenguajes de scripting del lado del servidor, que para mi, ningún IDE de desarrollo lo maneja bien, pero hay que ver que nos muestran las personas de CodeGear.

Ahora les dejo la parte negativa que vi del RAD Studio:
  • han perdido un poco su identidad, ya que se están lanzando a desarrollar un IDE para otros lenguajes, ya que aceptan compilar C# y Visual Basic y PHP, aunque lo están haciendo de forma muy discreta.
  • El blackfish es una buena idea, pero solo acepta un usuario y 4 conexiones y sobre 512 MB de espacio, es decir, no es muy limitada.
  • lo del master page es algo viejo y las clases generics es algo viejo que habiamos visto con el VS 2005, es decir, 2 años.
  • los tipos parametrizados que acepta el delphi para .net es algo viejo.

Como pueden ver los detalles que les acabo de citar me preocupa porque no se por que camino, si piensan desaparecer el delphi como lenguaje y desarrollar una plataforma que trabaje con el .net framework, java y php solamente y están dirigiendose a un mercado diferente, no obstante a estas criticas, si no es el mejor IDE que he visto (nota, aún no lo he probado para ver que tan estable es) es uno de los mejores.

Espero que lo usen y me dejen saber que les parece.

martes, 4 de diciembre de 2007

Developers Days II CodeGear

Saludos señores, para los amantes de delphi, las personas de codegear han tenido un developer day que se extiende hasta mañana 05 de septiembre. Este evento es totalmente gratis y donde se puede ver las últimas innovaciones que nos tienen Codegear a nosotros. El producto que nos están mostrando es el RAD Studio 2007, que es un potente IDE de desarrollo que nos permite desarrollar en ASP.NET 2, Win32 bajo delphi. Esta conferencia es auspiciada por David Intersimone & Andreano Lanusse, dos guruses de la programación. Entre las caracteristicas que podemos ver en este nuevo producto tenemos:
  • permite auditar ejecuciones del desarrollo.
  • Se pueden compilar códigos en Visual Basic y C#.
  • Una mejorada clase Generic,.
  • Un mejorado entorno de desarrollo de ASP.NET
  • Procedimientos almacenados y trigger en puro código delphi.
  • Un motor de base de datos interna llamada BlackFish que puede manejar un usuario y hasta 4 conexiones y soporta más de 512 MB,

Bueno, mañana les publico como va el siguiente día del evento, pasenlas bien.

lunes, 3 de diciembre de 2007

El motor de base de datos que más dinero genera es...

Las base de datos relacionales vendieron alrededor de $15.2 billones de dolares en el mundo durante el año 2006 lo que incrementón un 14.2 por ciento las ventas al año anterior. Los mayores 3 vendedores siguieron siendo Oracle, IBM y Microsoft sucesivamente, quienes se han apoderado del mercado de base de datos en los últimos años. Oracle tuvo un 47.1% de las ventas totales seguido por IBM (DB2) con 21.1% y Microsoft (SQL Server) con 17.4% y la que tuvo un mayor crecimiento desde el 2005 al 2006 fue Microsoft con un 1.8% seguido por Oracle con 0.3% e IBM tuvo un decrecimiento de 1%.
  1. Oracle 47.1
  2. IBM 21.1
  3. Microsoft 17.4
Para más información: http://www.gartner.com/it/page.jsp?id=507466

jueves, 22 de noviembre de 2007

Herramientas Recuperación de Base de Datos

Saludos, en esta oportunidad les presento una herramienta que me salvó la cabeza hace unos días, el Recovery for SQL Server 3.0, una herramienta para recuperar archivos MDF corruptos y subirlos a su servidor de base de datos en unos pocos minutos. Les cuento que tenía una base de datos de alrededor 7 GB en un servidor SQL Server 2000 y con un plan de mantenimiento de backup semanal. El problema que tuvimos fue que la base de datos se corrompió y no la pudimos recuperar con el Enterprice Manager. Además, los últimos 3 backups de la base de datos estaban corruptos también, raro no??

Después de 4 horas perdidas sin saber que hacer e intentarlo todo, encontré esta herramienta que nos recuperó la data y la estructura del archivo MDF corrupto y luego de una hora y media de extracción de data logramos recuperar un alto porcentaje de la información, y al otro día al inicio de las labores teníamos todos nuestros servidores arriba. La herramienta es sencilla y fácil de usar, el único problema es el costo, que es bastante cara, pero en momento de desastre, quién no haría lo que fuese por levantar su empresa.

La ruta donde podemos encontrar esta herramienta es: http://officerecovery.com/mssql/?submit, espero que la información les ayude.

jueves, 15 de noviembre de 2007

Backups Automáticos MySQL Server

Les voy a presentar una herramienta que me ha hecho la vida un poco más fácil en la tarea de administrar el servidor de base de datos en MySQL en la organización de trabajo. Cada semana tenía la díficil tarea de realizar los backups de todas las bases de datos una a una. Investigando sobre como hacer un proceso automático y que sirviera para múltiples bases de datos encontré el AutoMySQLBackup, que es un script que se ejecuta en el mysqldump y nos permite realizar backups automáticos en Mysql. Algunos de los beneficios que nos brinda son:
  1. Backup de todas las base de datos en un solo archivo o en directorios y archivos diferentes por BD.
  2. Compresión automática de los backups al almacenarlo en disco con gzip o bzip2.
  3. Puede ejecutarse en un servidor remoto.
  4. Envía notificaciones por correo y el backup de la base de datos comprimido.
  5. Se le puede especificar el tamaño máximo del backup por correo.
  6. El backup puede ser diario, semanal, mensual como prefiera configurarlo.

Para esto solo se necesita tener mysqldump y (gzip o bzip2). Solo tienes que descargar el script de la siguiente dirección: http://sourceforge.net/projects/automysqlbackup/, copialo en el directorio /etc/cron.daily o en el directorio home y editas el archivo con los siguientes datos:

  • USERNAME=dbuser (El usuario debe contar con privilegios en la base de datos).
  • PASSWORD=password
  • DBNAMES="DB1 DB2 DB3" (Las base de datos debe estar en " " de lo contrario no trabaja)

Luego crea el ejecutable del archivo: :- chmod u+rwx y crear el directorio /backups y pones a correr tu backup automático.

martes, 13 de noviembre de 2007

Que es el transaction Log?

Como administrador de base de datos muchas veces tenemos un incoveniente con que la base de datos a crecido mucho, que no contamos con el espacio suficiente, que se necesitan más discos, etc. Al verificar nos damos cuenta que el Log de archivo de nuestra base de datos a crecido bastante, lo primero que deseamos es reducir el espacio del mismo, pero con la interrogante de que puede pasar si lo hacemos.
El transaction log se encarga de almacenar todas las acciones que realizamos en nuestra base de datos para identificar problemas en nuestro sistema o fallas de algún dispositivo. Además nos permite almacenar ejecuciones dentro de transacciones para luego ser aceptadas o rechazadas en caso de algún inconveniente. En caso de que el equipo se reinicie por problemas, las transacciones que quedan pendientes (Uncommited Transaction) son aceptadas o rechazadas.
Para visualizar el log de la base de datos debemos ejecutar el siguiente comando:
DBCC log ( {dbiddbname}, [, type={01234}] ) donde type es el tipo de salida siendo 2 la vista detallada y la 3 toda la información.
Si deseamos reducir el tamaño de nuestro Log ejecutamos las siguientes instrucciones:
BACKUP LOG basededatos WITH TRUNCATE_ONLY
go
DBCC SHRINKFILE (basededatos_Log, 10)
Si reducimos nuestro transaction log solo perdemos nuestras últimas ejecuciones, pero no afecta nuestra base de datos a menos que tengamos en el archivo un "uncommited transaction".
Espero que esta información sea de provecho.

jueves, 8 de noviembre de 2007

Problemas con Base de datos en Suspect

Imaginese que se encuentre en esta situación, usted es administrador de Base de datos, y al llegar un día a su lugar de trabajo se percata que hay una base de datos que se encuentra en una tonalidad gris y al lado tiene "(suspect)". Por ejemplo: "Databasename (Suspect)". La pregunta es que voy a hacer ahora, los usuarios no pueden accesar a sus sistemas, todos en la empresa lo están llamando porque el sistema está frizado y usted se pregunta ¿Cuál será el backup más actualizado que tengo y que habrá ocacionado esto?
La respuesta puede ser un problema de hardware (especialmente discos con sectores dañados) o algún device de la base de datos corrompido. Aquí les presento algunas acciones que debe tomar para evitar este tipo de error:
  1. Si la base de datos es de consultas, puede colocar la base de datos como solo lectura y los usuarios pueden tener acceso a la misma.
  2. SQL Server puede recuperar la base de datos automáticamente si tiene una falla mínima, puede ver este mensaje al lado de la misma (Recovery).
  3. Otra forma es darle un Detach a la DB y un Attach nuevamente para recuperar la base de datos.
  4. Si ninguna de estas acciones funciona y no tiene un backup actualizado puede probar con este procedure "sp_resetstatus [ @DBName = ] 'database'" que resetea el estatus de la base de datos en el sysdatabase y reparar los daños que tenga la base de datos en caso que se pueda reparar.

Si no tienen acceso a este procedures, aquí les dejo los fuentes con el que pueden crearlo y ejecutarlo:

IF EXISTS ( SELECT * from sysobjects where name = 'sp_resetstatus' )
DROP PROCEDURE sp_resetstatus
GO
CREATE PROC sp_resetstatus @dbname varchar(30) AS
DECLARE @msg varchar(80)
IF @@trancount > 0
BEGIN
PRINT 'Can''t run sp_resetstatus from within a transaction.'
RETURN (1)
END
IF suser_id() != 1
BEGIN
SELECT @msg = 'You must be the System Administrator (SA)'
SELECT @msg = @msg + ' to execute this procedure.'
RETURN (1)
END
IF (SELECT COUNT(*) FROM master..sysdatabases
WHERE name = @dbname) != 1
BEGIN
SELECT @msg = 'Database ' + @dbname + ' does not exist!'
PRINT @msg
RETURN (1)
END
IF (SELECT COUNT(*) FROM master..sysdatabases
WHERE name = @dbname AND status & 256 = 256) != 1
BEGIN
PRINT 'sp_resetstatus can only be run on suspect databases.'
RETURN (1)
END
BEGIN TRAN
UPDATE master..sysdatabases SET status = status ^ 256
WHERE name = @dbname
IF @@error != 0 OR @@rowcount != 1
ROLLBACK TRAN
ELSE
BEGIN
COMMIT TRAN
SELECT @msg = 'Database ' + @dbname + ' status reset!'
PRINT @msg
PRINT ''
PRINT 'WARNING: You must reboot SQL Server prior to '
PRINT ' accessing this database!'
PRINT ''
END
GO

Espero que estos les sirva.

viernes, 2 de noviembre de 2007

Como ejecutar una aplicación desde SQL.

Hola Jóvenes. Me estoy estrenando en el blog con esta publicación, así que espero brindarles en lo adelante muchas informaciones que les sirvan de soporte.

Entrando en materia, en ocasiones necesitamos que al ejecutar cierto Store Procedure, DTS, etc.; requerimos la utilización de alguna aplicación para que efectúe una operación secundaria. La aplicación, podemos ejecutarla (dispararla) mediante el Store Procedure "xp_cmdshell", utilizando la siguiente instrucción dentro del Query que estemos ejecutando:

Exec xp_cmdshell 'C:\WINDOWS\system32\calc.exe'

Este Store Procedure usualmente no está habilitado por lo que, es necesario solicitar autorización al DBA de los usuarios que van a utilizarlo. Además, en otros casos, es posible que no este habilitado el SP en la base de datos (Master), en dado caso, es necesario su configuración (para lo cual necesitamos privilegios de administrador) vía el SP "sp_configure" de la siguiente forma:

--Permitir que las opciones avanzadas puedan ser cambiadas.
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

--Permitir el uso de SP XP_CMDSHELL.
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO

Hasta pronto.

Gráficas Empresariales en nuestras aplicaciones

Al momento de desarrollar herramientas empresariales y/o estadísticas, una parte muy importante es como vamos a mostrar la información a los usuarios finales. Una buena alternativa para presentarles la información es mediante la implementación de gráficos ya que esto nos permite desplegar la información de una forma fácil y sencilla de ver por parte de los usuarios finales (especialmente para ejecutivos corporativos que solo buscan ver el resultado final y obvian los detalles).


Estos gráficos los podemos añadir a nuestras aplicaciones Web mediante un componente (Api) llamado ChartDirector desarrollado por Advanced Software Engineering.
















Este componente te permite añadirles elegantes gráficos profesionales a tus herramientas Web o de Escritorio completamente personalizado y de una forma sencilla. Este componente puede ser descargado desde la siguiente dirección: http://www.advsofteng.com/download.html y tiene soporte para diversos lenguajes de programación como son: VB / COM / ASP / .Net / PHP / Java / ColdFusion / Perl, entre otros. Además este componente se puede ejecutar en diferentes plataformas como Linux, Windows y Solaris. La herramienta es muy fácil de usar, rápida, poderosa y tiene una documentación muy completa con numerosos ejemplos.

Existen otros herramienta para implementar gráficos en nuestras herramientas como son Dundas, GD Library, entre otras.

jueves, 1 de noviembre de 2007

Más Optimizaciones de SQL Server

Saludos, después del paso del huracán Noel por nuestro país (República Dominicana) volvemos a la carga con las publicaciones sobre Base de Datos y Programación, hoy buscando noticias en Internet sobre mejoras de SQL Server encontré con un link que nos dice como mejorar y optimizar nuestro rendimiento de CPU de SQL Server y que nos muestra algunos métodos que le habíamos mencionado con anterioridad por esta vía y otras más que ayudan a mejorar nuestro rendimiento de base de datos.

Aquí le dejo el link: http://www.microsoft.com/technet/technetmag/issues/2007/10/SQLCPU/default.aspx?loc=es/

Espero que le sirva.

miércoles, 24 de octubre de 2007

Script Split Base de datos

Hoy voy a publicar una función que utilizo para realizar split en SQL Server 2000 recomendables para realizar búsquedas de cadenas, nombres, entre otras.

CREATE FUNCTION Split(@String varchar(150), @Delimiter char(1))
RETURNS varchar(200)
AS
BEGIN
DECLARE @INDEX INT
DECLARE @Results varchar(200)
DECLARE @SLICE varchar(200)
-- Asignar 1 a la variable que utilizaremos en el loop para no iniciar en 0.
SELECT @INDEX = 1
-- Asignar Results = '' para no devolver null y prevenir errores.
SET @Results = ''
IF @String IS NULL RETURN @Results

WHILE @INDEX !=0
BEGIN
-- Obtenemos el índice de la primera ocurrencia del split de caracteres.
SELECT @INDEX = CHARINDEX(@Delimiter,@STRING)
-- Ahora ponemos todo a la izquierda de el slice de la variable.
IF @INDEX != 0
SELECT @SLICE = LEFT(@STRING,@INDEX - 1) + '%'
ELSE
SELECT @SLICE = @STRING

SET @Results = @Results + @SLICE
SELECT @STRING = RIGHT(@STRING,LEN(@STRING) - @INDEX)
-- Salimos del loop si terminamos la búsqueda
IF LEN(@STRING) = 0 BREAK
END

RETURN @Results --Retornamos el resultado de la misma
END

Novedades Oracle 10g

Como les había prometido con anterioridad les voy a hablar sobre Oracle 10g, una versión gratuita de los mejores motores de base de datos que tenemos en el mercado, ya Oracle lanzó la versión 11g que es la última, pero difiere muy poco de las que le voy a tratar el día de hoy. Oracle lanza una versión Grid, que disminuye los costes en cluster nombrada "g" y una versión orientada a Internet a las que nombran "i".

A diferencias de versiones anteriores, a partir de la 10 oracle viene con un herramienta de administración web para ser accesada mediante un navegador, sin tener que instalar una aplicación de escritorio para ejecutar la misma. solo tenemos que poner el nombre del equipo donde instalemos la base de datos o la IP de la misma. De esta forma tendremos acceso al Oracle Enterprice Manager 10g.
Solo debemos introducir nuestras credenciales y pulsar conectar.


El administrador de Oracle te muestra una pantalla inicial donde podemos visualizar el performance del equipo, como es el CPU, el estado de la BD, las secciones activas en el servidor, nombre de la instancia que está ejecutandose, el host, resumen del espacio de la BD, entre otras estadísticas de nuestros servidor. Esto es una gran ventaja sobre el MSSQL Server que debemos ejecutar una herramienta adicional para obtener estos datos.


En rendimiento o Performance nos muestra el rendimiento de nuestro servidor.
En la pestaña administración podemos configurar nuestra base de datos, ver el almacenamiento de nuestras bd, el espacio que ocupan nuestras tablas, nuestro log de base de datos, definir nuestra política de seguridad, tipo de acceso de usuarios, sus roles, entre otras.
En las opciones de archivos podemos crear los archivos de las las tablas que deseamos crear. Oracle Database 10g creará los siguientes archivos de datos por defecto: excample01.dbf, sysaux01.dbf, system01.dbf, temp01.dbf, undotb.dbf, users01.dbf. Podemos cambiar el tamaño del archivo de datos o asignarlo a que se asigne automaticamente con la opción de autoextend.

La opción para realizar los querys o consultas es el ISQL*Plus desde donde podremos realizar consultas de nuestras tablas de las base de datos que tenemos en el servidor de Oracle 10g. Para mí Oracle es una opción muy estable, confiable, pero consume muchos recursos de hardware y el sistema de indexación no es tan buena como la de SQLServer o MySQL, en una siguiente entrega les traeré una comparación con estos motores de base de datos donde voy a dejar cuales son los pros y contra de cada uno de ellos.

viernes, 19 de octubre de 2007

Monitoreo de SQL Server 2000

Saludos, hoy les voy a mostrar como utilizar dos herramientas que trae Microsoft SQL Server 2000 para monitorear los procesos y ejecuciones que se realizan en nuestro servidor. Estas herramientas son el Profiler y el performance monitor. Las mismas no solo nos permiten ver los procesos que se ejecutan en nuestro servidor, también nos ayudan a ver como está el rendimiento del mismo, como son el uso de los discos, la memoria y cpu que está utilizando nuestro motor de base de datos.

En muchas ocaciones los programadores tenemos que depurar herramientas que se han quedado colgada con nuestra base de datos y simplemente nos dirigimos al código, cuando con el SQL Profiler le podemos dar seguimiento a los querys que se están ejecutando. De esta forma nos evitamos tocar nuestro código de programación, cuando simplemente podemos solucionar cualquier problema solo modificando nuestros procedures o simplemente eliminando procesos que nos están bloqueando otros procesos que estamos ejecutando.

El Profiler nos permite crear trace para darle seguimiento a las ejecuciones y consultas que se realizan en un determinado servidor de base de datos. Podemos accesar a el por Start > Program Files > Microsoft SQL Server > Profiler.
Podemos filtrar nuestros traces especificandole el nombre de la aplicación que deseamos darle seguimiento, como un determinado proceso, base de datos o que se puede excluir de nuestro seguimiento.
Podemos además mostrar que columnas queremos ver en nuestro seguimiento y si el mismo lo deseamos exportar a algún archivo o almacenar en una tabla de base de datos.
Aquí podemos ver un ejemplo de unas ejecuciones que estaban ocurriendo en un servidor y le damos seguimiento a los que estamos ejecutando en nuestro trace.
La otra herramienta con que cuenta SQL Server 2000 es el performance monitor con el que podemos visualizar como se están comportando nuestros discos duros, como la base de datos está utilizando la memoria y el procesador de nuestro servidor, picos muy altos en los discos no es positivo para nuestro servidor, los cuales deberían mantenerse por debajo de un 20% y solo la memoria y el cpu puede tener ligeros picos esporádicamente.
Bueno espero que esta información les ayude para administrar mejor su servidor de sql, en la próxima semana les voy a traer información sobre Oracle 10g que cuenta con una de las mejores herramientas de administración de base de datos.

sábado, 13 de octubre de 2007

Herramientas Desarrollo de Java - NeatBeans

En mis años dedicado al desarrollo de sistema he tenido que trabajar con varios lenguajes de desarrollo, como son delphi 6 y 7, Java, PHP 4, VB 6, ASP 3.0, luego pasé con .Net (VB y C#) y la verdad que para mi particularmente no hay un lenguaje mejor que otro, lo más importante es el IDE de desarrollo que utilizemos. Uno de los mejores IDE de desarrollo es el Microsoft Visual Studio 2005, por algo es uno de los paquetes de desarrollo más importante en el mercado (sino el que más). Los IDE de Borland para lenguajes como Delphi y C son muy buenos, el antiguo IDE de Visual Studio 6 de Microsoft, pero esta vez vamos a analizar los IDE del lenguaje Java que no tienen nada que envidiarle a los antes mencionados.

Para Java existen varios IDE importantes, dependiendo del que te hagas sentir más como: Eclipse, Netbeans, BlueJ, el Sun Studio. Los desarrolladores JSP se inclinan más por el Eclipse y el Sun Studio, pero aquellos programadores que provienen de desarrollar bajo visual studio o alguna herramienta de borland, se sentiran muy comodos con el Netbeans 5, con el que podemos crear Web Sites bajo JSP, Servlet, web services y enterprices applications, entre otras. además realiza un buen manejo de la memoria, una gran mejora distinto al netbeans 4.1 que fue el que utilizé con anterioridad.

Posee una gran librería gráfica en nuestra caja herramienta con la que podemos añadir cualquier componente con solo un Drag and Drop, trae varios componentes para trabajar o manipular data desde base de datos, o XML, SOAP, entre otros.

Si es programador bajo ambiente Windows, Netbeans es una muy buena opción a la hora de comenzar a programar y lo mejor de todo es una herramienta completamente gratis, viene incluída con el JDK 6.0 o puede descargarlo de forma individual.

viernes, 12 de octubre de 2007

Administración MySQL Server

Saludos, en esta entrada le voy a mostrar una herramienta de administración de MySql Server 5.0 provista por las mismas personas de MySql que es el MySQL Administrator, para los que tenemos un tiempo trabajando con MySQL esto nos parecerá genial, y para aquellos que desean migrar a Mysql esto le ayudará. Ya no tenemos que utilizar el mysqladmin que es una herramienta tan tediosa.

Esta herramienta permite administrar los usuarios, nuestras conexiones, los catalogos (Base de datos), reporte de consumo de memoria, realizar backups (incluyendo guardar su schedule, tipo de backup), restaurar base de datos.

En esta pantalla les muestros como configurar las conexiones por defecto que nos van a salir en el Mysql administrator cuando los iniciamos, seleccionamos el botón nueva conexión y seteamos nuestra conexión seleccionando el usuario deseado.


Luego que creamos nuestra conexión, el siguiente paso es guardar la conexión y presionar el botón save connection.
Luego en la ventana de login seleccionamos la conexión previamente creada del combo box y colocamos nuestra contraseña y pulsamos ok.
cuando abrimos, nos sale la ventana de resumen por defecto.
En esta pestaña podemos ver el estatus del servicio de mysql para visualizar si está corriendo o parado, o configurarlo para seleccionar la ruta donde se encuentra el servicio.
En esta opción podemos administrar los usuarios y los permisos de los mismos, en la primera pestaña creamos el usuario y le asignamos su privilegio.
En la siguiente pestaña asignamos los privilegios de nuestro usuarios, la base de datos que va a tener acceso y los distintos permisos, si solo va a poder insertar, consultar data, administrar, etc.
Aquí podemos visualizar el performance de nuestro equipo, porciento de CPU usado, como está manejando la memoria, cuantas conexiones hay abiertas, entre otras.
en la sección de backup realizamos los backups de nuestras base de datos, podemos elegir una o varios catalogos, y le asignamos un nombre a nuestro backup.
En la siguiente pestaña de backup seleccionamos que tipo de backup vamos a realizar, si es parcial o completo (en caso de ser parcial, seleccionamos a que le deseamos realizar backup) y si deseamos que se bloqueen las tablas al momento de realizar para evitar data sucia en nuestro backup.

Aquí en esta última opción podemos ver nuestro listado de catálogos, si seleccionamos uno de los catálogos, podemos ver las tablas, las vistas, los esquemas de los índices y los procedimientos almacenados. aquí podemos reparar tablas, crearlas y eliminarlas.
Si deseamos restaurar una base de datos tenemos la opción de restore, y seleccionamos el archivo que deseamos restaurar, de lo contrario, si tenemos el grupo de tablas sin backup, solo tenemos que copiar una carpeta con el nombre de la base de datos y tomar los archivos .frm, .fry y colocarlos en el root de data.

En la parte de tools podemos encontrar otras herramientas como son el sqlbrowser, que es algo sinonimo al sql query analizer en MSSql Server, donde podemos ejecutar y realizar querys para nuestra base de datos, también cuentan con el sql migration tools para migrar data de una base de datos a otro, y de un motor diferente a los de mysql.

Espero que esto le sirva para buscar una alternativa completamente gratis para sus bases de datos, donde solo veo que les hace falta una herramienta de diagramas de base de datos y relaciones de tablas. Pero ha mejorado bastante y una muy buena opción para nuestras bases de datos. Existen otras opciones economicas de base de datos como son el Oracle versión G, el MS SQL Server Express 2005, MSDE 2000.

lunes, 8 de octubre de 2007

Mejorar rendimiento de SQL Server 2000

En este artículo les voy a dejar algunos tips para poder mejorar el rendimiento de nuestro SQL Server 2000, para aquellos administradores que tengan problemas con su motor de base de datos.
Una de las primeras Opciones que vamos a tomar para mejorar el rendiemiento de nuestro SQL Server 2000 es desactivar las opciones de auto update stadistics y auto create stadistic, ya que esto demanda un mayor rendimiento del servidor, esto también funciona para sql 2005. Otra opción que nos puede ayudar es tener desactivado la opción de auto shink que viene por defecto inactiva.

Una muy buena opción es crear filegroup especiales para las tablas que ocupan mucho espacio en nuestros discos y cada uno de los indices que componen la tabla. Para esto debemos elegir propiedades de nuestra base de datos y luego la pestaña filegroup, donde creamos los filegroup deseados y pulsamos el botón Ok.
Luego debemos elegir nuevamente propiedades y seleccionar la pestaña data files donde le crearemos un archivo o device y asignarle el filegroup creado con anterioridad.

Luego debemos asignarle a la tabla el filegroup creado para la tabla, si no se le ha asignado un device al filegroup le va a salir un mensaje que no tiene archivos asignados.



Otra medida para mejorar el rendimiento es colocar el transaction log en un disco separado del archivo de data de nuestra base de datos y en caso de tener solo un disco, en una partición o carpeta independiente a la de data. Otra recomendación es asignar el espacio de crecimiento de los devices fijos en megabytes en vez de porciento para que de esta forma el motor de base de datos no esté solitando crecer cada vez que se inserten o realicen varias consultas.


En en table filegroup se asigna el nombre del filegroup al que va a pertenecer nuestra tabla, por defecto se le asigna PRIMARY que es el default de la base de datos y es donde se almacena la configuración del servidor.


También es bueno contar con un buen esquema de base de datos es relacionar las tablas de la base de datos mediante campos de valores numericos o uniqueidentifier, no se recomienda que se creen llaves con campos char o varchar ya que hacen que las consultas sean más lentas.


Todos los filegroups se le pueden asignar uno o varios devices que se presentan en la columna files, si no tiene archivos asignados la columna files aparece en 0.
Espero que estas opciones le sirvan para un futuro, cualquier inquietud me dejan un comentario con su correo y se le responderan su inquietud.




martes, 2 de octubre de 2007

Google Apps una buena alternativa para pequeñas y medianas empresas


Hace un tiempo Google lanzó al mercado google apps que unifica los servicios de gmail y google docs para realizar pequeñas operaciones de oficina completamente en línea. Entre las herramientas con las que podemos contar se encuentran gmail, google talk y google calendar y cualquiera de estas cuentas funcionan como su propio dominio manteniendolo conectado en cualquier lugar y a todo momento.


Con google Docs podemos compartir archivos, trabajar con documentos y sin tener que instalarlo o descargarlo desde la web, lo único que necesita en conexión web y gualá.


Para más información puede entrar al siguiente link y descubra los nuevos beneficios que les brinda google: http://www.google.com/a/?utm_medium=et&utm_source=about_page&utm_campaign=es&token=app_es