Pruebe algunas pruebas básicas de conectividad.
- Verifique que 5022, 5023 y 5024 estén escuchando.
- Verifique que el nombre del servidor que está utilizando sea correcto.
Desde la línea de comando:
netstat -an
En mi servidor, puedes ver que 5022 está escuchando.
Luego, asegúrese de poder conectarse a esos puertos a través de telnet
telnet fully-qualified-server-name 5022
Como se menciona en la sección Nota de la GUI de Mirroring Properties, justo debajo del campo testigo, los nombres de los servidores deben ser direcciones TCP completas.
Deberías ver una pantalla en negro. En este ejemplo, elegí un nombre que causaría una falla de conexión. Si ve "No se pudo abrir la conexión", entonces los servidores definidos como espejo, principal y testigo no son accesibles o no está utilizando el nombre correcto.
El cliente telnet se puede agregar en Características en Windows 2008.
En Windows 2008, cuando hace clic derecho en Computadora, puede ver el nombre completo de la computadora. También deberías poder hacer ping desde la línea de comandos. Ej: ping myservername
Actualizar
Ejecute las siguientes consultas en cada instancia de SQL Server y ponga los resultados en su pregunta. Muchos de estos consejos de solución de problemas provienen de: http://msdn.microsoft.com/en-us/library/ms189127.aspx
Mostrar puntos finales tcp
SELECT type_desc, port FROM sys.tcp_endpoints;
Mostrar el estado de los puntos finales reflejados
SELECT state_desc FROM sys.database_mirroring_endpoints;
Verifique que el PAPEL sea correcto
SELECT role FROM sys.database_mirroring_endpoints;
Mostrar permisos a puntos finales
SELECT EP.name, SP.STATE,
CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id))
AS GRANTOR,
SP.TYPE AS PERMISSION,
CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id))
AS GRANTEE
FROM sys.server_permissions SP , sys.endpoints EP
WHERE SP.major_id = EP.endpoint_id
ORDER BY Permission,grantor, grantee;
GO
El inicio de sesión para la cuenta de servicio desde la otra instancia del servidor requiere el permiso CONNECT. Asegúrese de que el inicio de sesión desde el otro servidor tenga permiso CONNECT. Para determinar quién tiene permiso CONNECT para un punto final, en cada instancia de servidor use la siguiente instrucción Transact-SQL.
Salida de ejemplo:
name STATE GRANTOR PERMISSION GRANTEE
TSQL Local Machine G sqladmin CO public
TSQL Named Pipes G sqladmin CO public
TSQL Default TCP G sqladmin CO public
TSQL Default VIA G sqladmin CO public
Mirroring G SERVERNAME\Grantor CO SERVERNAME\Grantee
El otorgante es la cuenta que asignó el permiso de conexión (CO), el concesionario es la cuenta que tiene permiso de conexión
Desde la línea de comandos, ejecute ipconfig /all
y observe qué nombre de host devuelve.