Buscar este blog

sábado, 17 de enero de 2015

Instalación y configuración de SQLServer 2008 - Transacciones distribuidas

Sofware necesario

Se emplearán las siguientes versiones:
  • Windows Server 2008 R2
  • SQLServer 2008 R2 - Express  - SP2
  • SQL Server JDBC Driver versión 4
En la página de descarga de SQL server hay que seleccionar el idioma de instalación de Windows Server, así como la arquitectura (x86 o x64). De los distintos paquetes a descargar, se optará por la versión ADV (Advance) que ya también trae el Management Studio.

Instalación y Configuración
Instalar SQLServer con todas las opciones por defecto. Tardará aproximadamente 30 minutos.

Crear usuario (login)

Para crear un usuario:
  • Acceder al Management Studio empleando la autenticación de windows.
  • Dentro de la instancia, acceder a Security > Logins, y pulsar sobre nuevo.
  • Crear un nuevo usuario indicando login y password (marcar la opción de usar contraseña deshabilitando las comprobaciones de seguridad)
  • En la opción de User Mapping, asignarle las bases de datos que correspondan. En principio se le añadirá master
Una vez creado se cierra sesión, y se vuelve a conectar seleccionando autenticación de SQL Server e indicando el login y password.

Permitir conexiones desde otras máquinas

Para que ese usuario se pueda conectar desde otra máquina, hay que configurar una serie de parámetros tanto en el PC como en el servicio:
  • Permitir conexiones remotas
    En el Management Studio, una vez logeado, pulsar sobre la instancia para ver sus propiedades. Seleccionar la pestaña de connections y asegurarse de que está marcado el check de "Allow remote connections to this server"
         
  • Permitir autentiación con usuario y contraseña
    En el Management Studio, una vez logeado, pulsar sobre la instancia para ver sus propiedades. Seleccionar la pestaña de Security y, dentro del grupo de Server authentication, marcar "SQL Server and Windows Authentication mode"
  • Activar protocolo TCP/IP
    Ejecutar el programa "Sql Server Configuration Manager". Está dentro del directorio de Configuration Tools en el menú de inicio del SQL Server 2008 R2.
    Ir a SQL Server Network Configuration > Protocols for SQLEXPRESS. Activar el protocolo TCP/IP.
    Dentro de ese mismo, ir a propiedades, pestaña IP Addresses. Ahí hay que asegurarse de que existe un grupo IP con la dirección IP de la máquina cliente, que esté Active y Enabled, y con el puerto 1433.
    En el grupo de IPAll, asignar el puerto 1433 a TCP port.
    Finalmente, reiniciar el servicio.
  • Desactivar firewall de windows
    En la máquina servidor lo más rápido es deshabilitar el firewall de windows, o abrir específicamente el puerto TCP 1433.
    Para comprobar que el fierewall no interfiere, hacer un ping desde la máquina cliente al servidor y ver que se obtiene respuesta.

Permitir transacciones distribuidas

El servicio MS DTC debe estar marcado como Automático en el Administrador de servicios para asegurarse de que esté en ejecución cuando se inicia el servicio de SQL Server. Para habilitar MS DTC para transacciones XA, debe seguir estos pasos:
  • Inicio > Administrative Tools > Component Services
  • Seleccionar Component Services > Computers > My Compunter > Distributed Transaction Coordinator > Local DTC > properties
  • Dentro de las propiedades > pestaña Security > Enable XA Transactions
  • Reiniciar el servicio SQL Server (SQLEXPRESS)

Descargar SQL Server JDBC Driver.
  • Valen las versiones 3 y 4.
  • Se descarga:
    • Microsoft JDBC Driver 4.0 for SQL Server
    • Sistemas operativos: Linux, Unix, Windows 7, Windows Server 2008 R2, Windows Server 2012, Windows Vista
    • Versiones SQL Server:
      • Microsoft® SQL Server® 2012
      • Microsoft® SQL Server® 2008 R2
      • Microsoft® SQL Server® 2008
      • Microsoft® SQL Server® 2005
      • Microsoft® SQL Azure
  • Copiar la extensión de procedimientos almacenados en el directorio del SQL Server:
    • En la carpeta del driver descargado ir a enu > xa > x64 > sqljdbc_xa.dll
    • Copiar el fichero en C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Binn
Esta dll no existía antes.
    • Reiniciar el servicio SQL Server (SQLEXPRESS)

Instalar los procedimientos almacenados extendendidos que vienen con el driver:
  • En la carpeta del driver descargado ir a enu > xa > xa_install.sql
  • Abrir y ejecutar ese archivo desde el Management Studio:
    • Crea los procedimientos almacenados. Si ya existieran, primero los borrar
    • Crea un nuevo rol y le asigna permisos sobre esos procedimientos
    • Opcionalmente, se podrían indicar los usuarios a los que darles ese rol, si no, se hace más tarde manualmente

Asignar a un usuario el rol SqlJDBCXAUser en la tabla base de datos master:
  • Desde el Management Studio, navegar a Security > Logins en el panel lateral, y pulsar sobre las propiedades del usuario
  • Ir a User Mapping y seleccionar la base de datos master. En la parte inferior, asignar el rol correspondiente.

También se puede hacer ejectuando el siguiente script (en este 'xumco-java' es el nombre del usuario de la conexión):
Asginar rol
USE master
GO
EXEC sp_addrolemember [SqlJDBCXAUser], 'xumco-java'


No hay comentarios:

Publicar un comentario