Duplicación: no se puede alcanzar la dirección de red del servidor


12

Tengo instalado SQL Server 2008 R2. Contiene tres instancias.

  1. Predeterminado (MSSQLServer)
  2. Primera Instancia
  3. Segunda instancia

Todos estos son Iniciar sesión como servicio de red.

La instancia predeterminada es el servidor principal La primera instancia es espejo La segunda instancia es el servidor testigo

Inicialmente tomé la Copia de seguridad completa y la Copia de seguridad del registro de transacciones de mi Base de datos principal. Restaurado a la primera instancia manteniendo el mismo nombre de base de datos y estado de recuperación es Sin recuperación

Finalmente, comencé el Mirroring y recibo dos mensajes de error que se muestran a continuación.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuestas:


12

Pruebe algunas pruebas básicas de conectividad.

  1. Verifique que 5022, 5023 y 5024 estén escuchando.
  2. Verifique que el nombre del servidor que está utilizando sea correcto.

Desde la línea de comando:

netstat -an

ingrese la descripción de la imagen aquí

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.

ingrese la descripción de la imagen aquí

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 /ally observe qué nombre de host devuelve.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.