Tips para configurar servidor vinculado en MSSQL

Antes de configurar un servidor vinculado es necesario realizar algunas revisiciones básicas que por lo menos para mi son muy útiles, las comparto aquí y claramente queda el micrófono abierto para enriquecerla segun tu comentario.

Sistema operativo

  • Revisar correcta configuración del firewall que permita conexiones desde un host B
  • (Si no te gusta utilizar IP) Configurar archivo host que se encuentra en C:\Windows\System32\drivers\etc

Instancia MSSQL

  • Configurar un login con permisos sobre los objetos que necesitas consultar desde un servidor B
  • Permitir conexiones remotas en properties>connections>

Restaurar una base de datos desde un recurso en red

Hay ocasiones en que se hará estrictamente necesario restaurar una base de datos desde un archivo que no se encuentre en nuestra maquina, sino en un lugar dentro de la red <dominio>

Lo primero que debemos asegurar es el enlace entre las maquinas que estarán interactuando, de aquí en adelante: Maquina A  y Maquina B. Para efectos de este ejemplo la Maquina A será la que debe ser restaurada en base al archivo generado por la base de datos que se encuentra en la Maquina B.


CONFIGURACIONES PREVIAS A NIVEL DE SISTEMA OPERATIVO

  1. La carpeta de nuestra Maquina B que contiene el archivo a partir de donde comenzaremos a restaurar debe estar compartida en la red, de tal manera que la Maquina A pueda leer y escribir sobre ella (read/write)
  2. En la Maquina A debemos montar una unidad de red que tenga acceso a la carpeta compartida por la Maquina B

PROCESO DE RESTAURACION EN MSSQL

Primero es necesario establecer la conexión entres mas las maquinas, si no realizamos la siguiente sentencia podríamos recibir un error del tipo:

LOGONERROR

XP_CMDSHELL 'NET USE Y: \MAQUINABACKUP /user:usuario Password '

Luego de lo anterior estamos en condiciones de utilizar nuestro comando de restauración


USE MASTER
ALTER DATABASE MYDB
  SET SINGLE_USER With ROLLBACK IMMEDIATE
GO

RESTORE DATABASE MYDB
	FROM DISK = '\IP_HOSTRUTAmydb.BAK'
	WITH REPLACE, RECOVERY,
		MOVE 'MYDB_DATDATOS'		TO 'F:MSSQLDataMYDB.mdf',
		MOVE 'MYDB_LOGREGISTRO'	        TO 'E:MSSQLLogMYDB_log.ldf'	

GO

Restaurar una BD desde un lugar en la red

Para restaurar una base de datos tomando el archivo base de un lugar en la red necesitamos acceder a la carpeta compartida que contiene el archivo base que utilizaremos, una vez tengamos esa primera parte lista podemos comenzar con la restauración.

Para revisar si efectivamente podemos ver el archivo recurrimos a la siguiente instrucción

  xp_cmdshell 'net use \IP_HOSTRUTA'

Luego de corroborar podemos iniciar el la restauración


USE MASTER
ALTER DATABASE MYDB
  SET SINGLE_USER With ROLLBACK IMMEDIATE
GO

RESTORE DATABASE MYDB
	FROM DISK = '\IP_HOSTRUTAmydb.BAK'
	WITH REPLACE, RECOVERY,
		MOVE 'MYDB_DATDATOS'		TO 'F:MSSQLDataMYDB.mdf',
		MOVE 'MYDB_LOGREGISTRO'	        TO 'E:MSSQLLogMYDB_log.ldf'	

GO

Saludos.

SQLNODE