Error al instalar AD RMS en Windows Server 2008 R2

Hola Mundo:
Para la implementación del rol de AD RMS, se puede utilizar una base de datos interna del rol o se puede utilizar un servidor SQL Server externo.
La instalación no es compleja. Es un asistente que pide datos bastante precisos.
El problema está cuando muestra el siguiente error:
El error hace referencia a la falta de un procedimiento almacenado. El SP se llama sp_dboptions y fue retirado en SQL Server Denali (Pre SQL Server 2012) y el fallo se va arrastrando para las próximas versiones de SQL Server.
El hotfix que se debe es instalar es el KB2619256 y se descarga desde el mismo sitio de Microsoft: https://support.microsoft.com/es-cl/kb/2619256
Para complementar la lectura, sugiero leer la documentación en Technet: https://technet.microsoft.com/en-us/library/dd772673(v=ws.10).aspx

Maximizando la disponibilidad de las aplicaciones de mision critica

Hola Mundo.

El día 14 de Noviembre del presente año, se realizó un evento en el Hotel W (Santiago) para mostrar los nuevos productos de Microsoft justo en un momento de muchos lanzamientos. Recordar que este año se lanzó Windows Server 2012, SQL Server 2012, System Center 2012, Windows 8, una nueva versión de Office 365, entre otras cosas.

Fue un evento al cual asistieron mas de 900 personas. Estuvo muy rico en cuando a contenido. Me invitaron como expositor y toqué el tema de Alta Disponibilidad con SQL Server 2012 aprovechando la tecnología de Always On.

Les dejo las slides del evento.

SQL Server 2012 SP1 está aquí

Dentro de la semana anterior fue lanzando SQL Server 2012 Service Pack 1 que incluye los dos cumlative updates hasta la fecha y características nuevas de la plataforma de datos.  Las que más destacan para mi son:

Migracion entre clusters  de AlwaysON para la actualización del sistema operativo
Provee todas las herramientas y las capacidades para poder migrar implementaciones de clúster de AlwaysON en el caso que el sistema operativo que alberga el cluster requiera de reiniciar para actualizar el sistema operativo

Indice XML Selectivo
Un nuevo tipo de indices que mejora el rendimiento de las consultas de datos de tipo de datos xml. Reduce espacio en disco y reduce el tiempo de espera de la ejecucion de las consultas.

SQL Server Management Studio Express con todas las funcionalidades de las versiones avanzadas
Por fin.

Pueden encontrar todas las características de este release: Aqui y pueden descargar el service pack: desde aqui

Error 1478 en SQL Server Mirroring

Este error es bastante recurrente cuando se quiere levantar Database Mirroring. Puede que al momento de configurarlo no se haya presentando ningún warning y ningún error en el proceso, pero si al momento de echar a andar el mecanismo de mirroring aparece este error, es porque no se realizó un paso previo.

Error 1478
Error 1478

Así se ve el error y la solución es re simple. Solo hay que respaldar el log de transacciones de la base de datos primaria y restaurar este respaldo en la base de datos de espejo con la opción de NORECOVERY.
Una vez que esta tarea se ha realizado, ya se puede levantar Mirroring y debiéramos tener problemas.

Contained Databases en SQL Server 2012

Es muy común que una base de datos, en algún momento de su existencia y por razones particulares, tenga que ser llevada hacia otro servidor SQL Server. El proceso es simple. Hay que exportar la base de datos hacia el servidor de destino y listo. No tiene mucha complicación ni ciencia alguna. Todos sabemos que este escenario ideal no existe. Nunca una migración va a ocurrir de esta forma. Siempre algo que requerirá más trabajo, que son los objetos a nivel de aplicación.

Una Contained Database guarda absolutamente todos sus objetos dentro de la base de datos, cosa que cuando sea necesario levantar la base de datos, lo pueda hacer sin problema alguno. O sea, no tiene dependencias.

Una contained database almacena lo siguiente:

  • Tables
  • Functions
  • Constraints
  • Schemas
  • Types
  • Logins
  • Application-Level Agent Job
  • Persisted error messages
  • Linked server information
  • System Settings

Y soporta ambas autenticaciones.

Para habilitar el login hacia contained databases, se debe ejecutar el siguiente código:


sp_configure 'show advanced', 1;
RECONFIGURE WITH OVERRIDE;
go
sp_configure 'contained database authentication', 1;
RECONFIGURE WITH OVERRIDE;
go

Para crear una base de datos contenida, se puede hacer via código:


CREATE DATABASE [MiDB] CONTAINMENT = PARTIAL

O se puede hacer a través del asistente:

Creacion de un usuario a través de wizard
Creacion de un usuario a través de wizard

Para crear un usuario se hace usan las mismas instrucciones como si fuera una base de datos común y corriente:


USE MiDB
GO
CREATE USER MiUSER WITH PASSWORD = 'TEST123!!'
GO

En conclusión, una contained db es una base de datos común y corriente, pero se diferencia de las demás porque almacena todos los objetos necesarios para funcionar en cualquier instancia de SQL Server 2012.

Error al instalar Powerpivot

Al instalar Powerpivot para Excel 2010 puede que nos de un error parecido a este:

Error al instalar PowerPivot
Error al instalar PowerPivot

Este error sucede cuando no se tiene instalado el paquete de Visual Studio 2010 Tools for Office Runtime  Este lo pueden descargar desde: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=20479 Se instala y problema solucionado.

 

Exportar datos de MAP Toolkit

Hola Mundo. Último dia de Abril. En el post anterior conté que conocí a una herramienta bastante potente para hacer inventario dentro de una red. Ésta trabaja sobre un SQL Server 2008 Express, por lo que no se puede conectar a través de SQL Server Management Studio.

En su momento, pensé que iba a tener algunos problemas para exportar la info. Después de bastante rato de intentarlo, llegué a lo siguiente:

Recuerden que estaba haciendo un inventario de SQL Server

  1. Iniciar el servicio de SQL Browser desde el Configuration Manager
  2. Importar datos desde SQL Server. Conectarse a la instancia MAPS. (OJO Piojo. Hay que indicar el nombre del equipo y la instancia. Por ejemplo: Mi máquina se llama SQL2 y la instancia se llama MAPS, entonces debo conectarme a SQL2MAPS)
  3.  Importar las siguientes tablas/vistas: sql_inventory_dbinstance_view, sql_dbinstance_databases_view, sql_databaseserverproperties y sql_databaseproperties

Con esto tendrán la info en un Excel lista para llevar.

 

MAP: Microsoft Assessments and Planning

La historia es la siguiente: Estaba en la oficina y me solicitaron que realizara una tarea de inventariado de un grupo de máquinas con SQL Server en una empresa. La verdad es que nunca había hecho esto, ni mucho menos conocía algún software que lo hiciera por mi. Ya me veía anotando en mi libreta todos los SQL Server que estaban funcionando. De ser así, tendría un tedioso día.

El panorama se comenzó a arreglar, cuando se me ocurrió preguntar como lo podía hacer. Una persona, con bastante experiencia en el tema, me dijo que existía MAP: Microsoft Assessments and Planning.

MAP Toolkit es una herramienta que ayuda a hacer inventariados, evaluaciones e informes para pequeñas y grandes empresas sin necesidad de instalar agente en ningún equipo. De este modo las empresas pueden planear de una manera más eficiente la migración de sus sistemas.

Volviendo a la historia, tuve que aprender a usar la herramienta para cumplir el propósito.

Mi memoria es frágil, así que hice un PDF con fotos para que nunca más se me olvide: http://www.4shared.com/office/_NGbSxPM/Microsoft_Assessment_and_Plann.html

Habilitar el acceso remoto a SQL Server 2012

En una organización puede que sea un requerimiento que el servidor esté aislado o puede que no. En el caso que se requiera que se habiliten las conexiones remotas, tenemos que seguir una serie de pasos, ya sean en orden o no.

Permitir las conexiones remotas en la instancia
Abrir SQL Server Management Studio e ir a las propiedades del servidor (botón secundario en el nombre del servidor -> Propiedades). En la ventana de propiedades, ir a las propiedades de conexión y habilitar la opción «Allow remote connections to this server», tal cual como sale en la imagen:

Propiedades de conexion del servidor

Ahora abrimos SQL Server Configuration Manager y verificar que el protocolo TCP/IP para la instancia se encuentre habilitado:

Propiedades de TCP/IP

En la misma ventana, abrimos las propiedades del protocolo TCP/IP y vemos que puerto está utilizando:

Habitualmente utiliza el puerto 1433.

Crear regla en el firewall

Abrimos el firewall de Windows y creamos la siguiente regla:

En esta parte hay que definir el perfil de la regla. En mi caso, quiero que el servidor esté disponible para acceder desde todo el dominio.

Nombre de la regla. Tiene que ser algo descriptivo. Luego finalizamos el asistente.

Para probar la conexión, desde SQL Server Management Studio (idealmente instalado en otro equipo de la organización)  intentamos conectarnos al servidor remoto:

Desde el servidor SQL3 intenté conectarme al SQL1 y todo resultó tal como lo configuré:

Ahora que funciona, ¡A Jugar!

Hablemos sobre Filestream en SQL Server

En una base de datos podemos almacenar datos estructurados y datos no estructurados. Los datos estructurados corresponden a los que están fuertemente tipados. Por ejemplo, los que se almacenan del tipo int, float, etc. En cambio, tenemos los no estructurados que se almacenan como objetos, usualmente llamados blob (Binary Large OBject).

Todos los motores de bases de datos tienen la capacidad de  almacenar binarios, pero SQL Server ofrece una funcionalidad (incluida en la versión 2008) llamada Filestream  que permite almacenar los objetos binarios directamente en el sistema de archivos, pero transparente para el usuario. Por lo que se pueden seguir ejecutando transacciones sobre estos registrosm esto permite un acceso más rápido a dicha información, y adicionalmente, permite poder liberar de carga de memoria a SQL Server, ya que para el acceso a datos FILESTREAM podría no utilizarse el Buffer Pool.

Para habilitar Filestream en la instancia de SQL Server (si es que no se activó en la instalación) se debe abrir  SQL Server Configuration Manager, ir a SQL Server  Services  (Yo lo tengo en Inglés) y abrir las propiedades de la instancia. En las ventana de propiedades, ir a la pestaña de Filestream y veremos algo así:

 

Configuracion de Filestream
Configuracion de Filestream

Una vez de que la característica esta activada, aceptamos, aplicamos y reiniciamos el servicio. Abrimos el Management Studio, seleccionamos la base de datos en la cual queremos activar Filestream y escribimos lo siguiente:

EXEC sp_configure filestream_access_level, 2

RECONFIGURE

Para poder empezar a usar filestream es necesario crear un filegroup que contenga el atributo CONTAINS FILESTREAM. Para eso, utilizaremos este código:

ALTER DATABASE MiDB
ADD FILEGROUP MiDB_filegroup_filestream CONTAINS FILESTREAM
GO
ALTER DATABASE MiDB
ADD FILE
(
NAME= ‘MiDB_filestream’,
FILENAME = ‘C:dbfs’
)
TO FILEGROUP MiDB_filegroup_filestream
GO

Es importante que el directorio c:db esté creado. El directorio fs dentro de C:db lo creará SQL Server. Para crear la tabla que «almacenará» nuestro objeto, es necesario que una columna sea del tipo VARBINARY(MAX).

create table fs
(
id uniqueidentifier rowguidcol not null unique,
archvo varbinary(max) filestream null
)

Con la tabla ya creada, ya es posible guardar algo. Por ejemplo:

–Declarar la variable del ID
DECLARE @ID UNIQUEIDENTIFIER
–Genera un valor unico
SET @ID = NEWID()
–Inserta un blob en la base de datos. En este caso, es un video. OJO Pijo que hace un cast a la ruta del archivo.
INSERT INTO dbo.fs
(ID, archvo)
VALUES
(@ID, CAST(‘E:Windows Server 2008 R2Wildlife.wmv’ AS VARBINARY(MAX)))
–Selecciona el registro recien creado y muestra su ruta
SELECT ID, archvo
FROM dbo.fs
WHERE ID = @ID
SELECT archvo.PathName()
FROM dbo.fs
WHERE ID = @ID

Y nos debiera dar un resultado mas o menos así:

Resultado de Insercion de datos con Filestream

Mas informacion:
http://technet.microsoft.com/es-es/library/cc645923.aspx
http://www.mssqltips.com/sqlservertip/1489/using-filestream-to-store-blobs-in-the-ntfs-file-system-in-sql-server-2008/
http://www.guillesql.es/Articulos/Almacenamiento_FILESTREAM_SQLServer.aspx

Feliz Pascua de Resurrección!