Lo nuevo de SQL SERVER 2005
(30/9/2006)
En las oficinas de hoy en día, las bases de datos son imprescindibles como la caja registradora. Porque almacenan toda la facturación, cuentas corrientes, deudas, vencimientos, etc. Pasan a ser tan críticas que de no funcionar obligan, generalmente no permiten vender. Y el punto más importante es EVITAR bajo cualquier concepto, de cualquier manera, PERDER DATOS!!.
Es por ello, que me interesa enumerar las ventajas que trae SQL SERVER 2005. La última versión del motor de bases de datos de Microsoft, y en qué áreas de la empresa puede colaborar en estos objetivos.
_ADMINISTRACION
SQL SERVER 2005 incluye una consola totalmente nueva y más similar a las herramientas de desarrollo. SQL Server Management Studio simplifica las tareas, consolidando en un sólo lugar los diferentes requerimientos de administradores y desarrolladores.
_SERVICE BROKER
Existe la necesidad de actualizar datos en diferentes servidores. Para ello se desarrollan diferentes alternativas: procesos que leen y actualizan, tareas programadas, DTSs, etc. En cada implementación se encuentra alguna solución que parece óptima. Y esto a veces funciona bien, otras no tanto. Lo cierto es que no es estándard, ni integrada.
Es por esto que SQL Server 2005 incorpora un nueva e interesante herramienta, tanto para agilizar los desarrollos, como para homogeneizar este tipo de procedimientos.
Service Broker provee los mecanismos para procesar mensajes, cumpliendo diferentes pasos antes de aceptarlos y procesarlos. Service Broker provee los objetos e infraestructura para asegurar que cada mensaje cumple un formato específico, y es aceptado por un aplicativo que tiene la capacidad de entenderlo.
Su arquitectura se compone de varias partes. No es mi intención detallarlos, pero vale la pena enumerar las características generales del proceso:
La comunicación se desarrolla entre un ORIGEN y un DESTINO. Para Service Broker son EndPoints (puntos de enlace)
Los mensajes se envían entre bases de datos.
Existe un proceso "Iniciador" y otro "destino". Que pueden estar en la misma base de datos o en diferentes.
Una vez que la comunicación se estableció, los mensajes pueden ir en ambas direcciones.
Un detalle que vale la pena mencionar. Usualmente, al desarrollar un proceso, se asume que ambos extremos están disponibles el 100% del tiempo. En la práctica esto no es así. Existen servidores que se reinician, redes que fallan, programas que se "cuelgan". Las "colas" son mecanismos para romper el sincronismo. Son tablas simples donde se almacenan los mensajes enviados por los aplicativos. Cada nuevo mensaje se guarda al final de la lista. Cada vez que se lee un mensaje, se lo toma del tope y luego se elimina. Esto asegura que el orden de ejecución será igual al de generación.
Por otra parte, existen los llamados "Servicios". Permiten generar una capa de aislamiento entre la aplicación y el almacenamiento físico. Cada servicio se asocia a una cola, y sirven también para controlar el formato de los mensajes.
Cada servicio contiene "contratos" que especifican los tipos de mensajes posibles, los formatos, y quién puede enviar y/o recibir.
_ALTA DISPONIBILIDAD
SQL Server 2005 ofrece varias alternativas ante desastres. Además del Log Shipping y Replicación agrega el Mirroring (espejado).
Esta funcionalidad permite que los clientes se conecten automáticamente a otro servidor contingente. Es decir, que al momento de falla en la base de datos primaria, los aplicativos pasarán a un servidor secundario. El SQL Server 2005 secundario detectará la falla y aceptará las peticiones. Esto no es un dato menor. El gestor de base de datos necesita un mecanismo para asegurar quién es el primario en un momento dado. De otra forma se pueden dar errores de actualizaciones simultanea en ambas bases y las posteriores incongruencias.
Una ventaja adicional radica en que la solución no requiere de hardware específico que son los componentes que generalmente encarecen la Alta Disponibilidad.
De todas formas, no es milagroso. Requiere que las aplicaciones utilicen SQL Native Client para conectarse (.NET 2.0 lo soporta sin ninguna programación adicional).Y hay que tener en cuenta que no es clustering. Sino que es una solución donde dos equipos diferentes intercambian datos y acuerdan quién en definitiva atiende al cliente.
Justamente, para definir quién es el primario se implementa un servidor testigo. Este puede ser cualquier versión de SQL Server 2005, inclusive la Express.
_OPERACIONES EN LINEA
Una de las mejoras incorporadas a SQL 2005 es la posibilidad de crear, reconstruir y borrar índices en línea. El indexado online permite operaciones concurrentes de adición, modificación y borrado a la tabla mientras el índice es creado. Adicionalmente, el indexado online aprovecha las ventajas del procesamiento paralelo.
Además, es posible restaurar sin que sea necesario bajar la instancia de SQL Server 2005. Esto mejora los tiempos de disponibilidad ya que sólo los datos en restauración serán los únicos que no estarán disponibles. Mientras que el resto operará de forma normal. Las versiones anteriores requerían bajar el SQL Server para restaurar una base.
_ESCALABILIDAD
SQL Server 2005 provee además del ya conocido particionamiento de tablas, el particionado de índices. Esta facilidad ayuda al procesamiento paralelo de peticiones, ya que es posible distribuir los archivos de índices en diferentes discos físicos.
Por otra parte SQL Server 2005 posee una versión Itanium. Es decir de 64-bit. Obteniendo las ventajas de un espacio de direccionamiento cuasi-ilimitado, y el poder de procesamiento x64.
_SEGURIDAD
SQL Server 2005 incorpora nuevas capacidades de encriptación. Así, las comunicaciones entre cliente y base de datos son cifradas con una infraestructura integrada de claves. En forma predeterminada, todo esta encriptado y con posibilidad de desechar cualquier comunicación insegura.
Por otra parte, siguiendo la iniciativa de Trustworthy Computing ("computación más segura") SQL implementa:
- Seguridad desde el diseño: un mayor nivel de testeo y auditoría durante el desarrollo del motor
- Seguridad por default: los parámetros seguros estan implementados. Así, las nuevas implementaciones son seguras desde el momento de la instalación.
- Seguridad en la instalación: existen herramientas para ayudar durante la implementación y utilizar las mejoras prácticas.