PROBLEMA
En algunas ocasiones será
necesario instalar más de una instancia SQL SERVER en nuestro servidor, uno de
los pasos que tenemos que tomar en cuenta es que debemos identificar a que
instancia nos estamos conectando. Lo primero que debemos identificar es cuantas
instancias tenemos instaladas, que puerto están utilizando para escuchar, si es
una DEFAULT INSTANCE o una NAMED INSTANCE, entre algunas otras.
ALGO DE TEORIA
Alguna de las características de
ambas son las siguientes:
DEFAULT INSTANCE
- Por default se conecta a través del puerto 1433, puede ser otro, solo es necesario configurarlo.
- No es necesario especificar el número de puerto al momento de realizar la conexión, siempre y cuando sea el puerto 1433.
- No es necesario especificar el nombre de la instancia, mientras utilice el puerto 1433.
- El nombre de dicha instancia se creará como MSSQLSERVER.
- Solo puede haber una por cada servidor.
NAMED INSTANCE
- Se crean usando un puerto dinámico que no esté siendo usado por el servidor, puede ser modificado inclusive utilizando el puerto 1433, tomando en cuenta que solo podemos usar una instancia por puerto, de lo contrario marcará un error.
- Requiere especificar el número de puerto al momento de realizar la conexión, en caso de usar el puerto 1433, no es necesario especificarlo.
- El nombre de la instancia es asignada al momento de la instalación.
- Pueden existir cierta cantidad de instancias en un mismo servidor.
SOLUCION
Como configurar el puerto de una DEFAULT INSTANCE
1.- Abrimos en nuestro servidor
el SQL SERVER CONFIGURATION MANAGER,
como pueden observar yo tengo instaladas 2 NAMED
INSTANCEs ( SQLSERVER2012 y SQLSERVER2014 ) y 1 DEFAULT INSTANCE ( MSSQLSERVER ). Por el momento solo requerimos
que el servicio SQL Server
correspondiente a la DEFAULT INSTANCE se
encuentre corriendo, si hacemos alguna modificación recuerden que es necesario
reiniciar el servicio.
2.- Damos click sobre los protocolos de la DEFAULT INSTANCE, solo se requiere que el protocolo TCP/IP se encuentre habilitado, después explicaré para que funcionan los otros protocolos.
3.- Hacemos doble click sobre TCP/IP y vamos a la pestaña IP Adressess, solo verificamos que la IP del equipo se encuentre en la parte de IP2 y en la parte de IPAll, en la propiedad TCP Port se encuentre escrito el puerto 1433 y en TCP Dynamic Ports se encuentre en blanco.
Si hicimos alguna modificación, es necesario Reiniciar el servicio SQL Server( MSSQLSERVER ) y ahora si podemos probar:
Ahora bien, ya estamos conectados, pero como sabemos cual es la instancia a la que estamos conectados, podemos probar con la siguiente consulta:
SELECT @@SERVICENAME AS instanceName , SERVERPROPERTY('InstanceName') AS instanceName2 , SERVERPROPERTY('ServerName') AS serverName , local_tcp_port AS puerto FROM sys.dm_exec_connections WHERE session_id = @@SPID
Solo que debemos tomar algo en cuenta, MSDN en línea dice lo siguiente con respecto a la propiedad InstanceName con la función SERVERPROPERTY: Regresa NULL si el nombre de la instancia es la DEFAULT, si el valor de entrada es incorrecto o error, es por ello que obtenemos NULL, pero con @@SERVICENAME podemos obtener el nombre de la instancia a la que estamos conectados.
DEFAULT INSTANCE USANDO OTRO
PUERTO
Ahora bien, podemos conectarnos a nuestro DEFAULT INSTANCE con otro puerto?
CLARO!, solo debemos configurarlo en el SQL
SERVER CONFIGURATION MANAGER nuevamente y esta vez indicar el número de
puerto al realizar la conexión, para el ejemplo usaré el puerto 1010, recuerden
verificar que el puerto no esté siendo utilizado o deshabilitar el FIREWALL o agregarlo
en la lista de puertos en el mismo FIREWALL.
Si intentamos conectarnos sin usar el puerto obtendremos:
Ahora bien, en mi caso tengo 2 NAMED
INSTANCE más instaladas en el mismo equipo, SQLSERVER2012 y SQLSERVER2014,
lo que haré es configurar la primera en el puerto para una DEFAULT INSTANCE (
1433 ) y la segunda en un puerto por
ejemplo el 1020. En el caso de la primera no será necesario especificar el
puerto al momento de realizar la conexión por que está usando el puerto
DEFAULT.
NAMED INSTANCE: SQLSERVER2012,
puerto 1433 (DEFAULT)
NAMED INSTANCE: SQLSERVER2014, puerto 1020.
No olvidemos iniciar los servicios correspondientes para cada instancia:
Probamos todas las conexiones:
DEFAULT INSTANCE: MSSQLSERVER, puerto: 1010
NAMED INSTANCE: SQLSERVER2012, puerto 1433(DEFAULT)
NAMED INSTANCE: SQLSERVER2014, puerto 1020
De esta manera, tenemos 3 instancias en nuestro servidor, pueden configurarlos de la manera que gusten, como pudieron observar una DEFAULT INSTANCE no requiere de usar siempre el puerto DEFAULT 1433, puede utilizar algún otro. En otro artículo les explicaré como pueden conectarse utilizando solo el nombre del equipo y el nombre de la instancia a la que desean conectarse, ejemplo: nombreEquipo\SQLSERVER2012 .
SALUDOS!
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE
0 comentarios:
Publicar un comentario