Cómo borrar un error 15404 después de reiniciar la base de datos (además de reiniciar)

9

De vez en cuando (por ejemplo, ~ meses), un trabajo por hora del Agente SQL Server comenzará a informar un error 15404 y continuará haciéndolo hasta que intervenga.

[298] Error de SQLServer: 15404, no se pudo obtener información sobre el grupo / usuario de Windows NT 'NOMBRE_DOMINIO \ CuentaDominioDominio', código de error 0x6e. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

A veces, la primera falla ocurre inmediatamente después de un reinicio manual de los servicios de SQL Server Engine y del Agente SQL Server. El problema se puede solucionar reiniciando la máquina.

El propietario del trabajo es el nombre que aparece en el mensaje de error y es un administrador de SQL Server.

La cuenta de servicio del motor de SQL Server parece ser una cuenta de servicio (creo que es la cuenta de instalación predeterminada (una muesca mejor que NetworkService genérico para evitar interferencias entre instancias de motor / agente):

   NT Service\MSSQL$INSTNAME

Una cosa sería que el trabajo siempre fallara, pero dado que el trabajo tiene éxito después de un reinicio, me hace pensar que se supone que una cuenta de servicio como está funcionando y que hay algún problema de temporización A / D o posiblemente un error. Cuando se le pregunta a TI sobre la configuración de A / D, la respuesta suele ser "nada ha cambiado".

  • Reiniciar los servicios del motor y del agente puede hacer que el trabajo comience a fallar.
  • Un reinicio de la máquina borra el problema.
  • Un reinicio posterior inmediato del motor y el agente ya no hace que el trabajo falle.

Enlace: Cómo solucionar un error de SQL Server 8198

crokusek
fuente
Actualización, esto ha sucedido dos veces más desde la publicación.
crokusek
Posiblemente relacionado, también tenemos un problema intermitente (semanal) que no puede generar SSPI en dos servidores diferentes.
crokusek
Solo agregaré que recibí este error al azar de un script SQL que funcionaba ayer. Sin cambios en el script, exactamente la misma máquina, sin errores obvios en los registros de Windows. La línea ofensiva de SQL era una instrucción CREATE ASSEMBLY, AUTHORIZATION [dbo], PERMISSION_SET = EXTERNAL_ACCESS;
redcalx
Más información. Reiniciar SQL Server no resolvió el problema, pero reiniciar la máquina sí. Posiblemente un cierre de sesión / encendido lo hubiera hecho, ya que sospecho que es un problema sutil en mi cuenta de dominio. Tenga en cuenta que no he cambiado mi contraseña recientemente.
redcalx

Respuestas:

4

No es una solución, pero puede solucionar el problema haciendo que el propietario del trabajo sea una cuenta SQL.

Cada vez que se inicia un trabajo, SQL Server verifica la identidad del propietario del trabajo y verifica que tenga permiso para ejecutar el trabajo. Si el propietario es una cuenta de Windows, el motor necesita consultar Active Directory. Si por alguna razón falla, el trabajo no se ejecutará. Puede ser porque el servidor AD está ocupado, desconectado o desconectado de la red, o porque la cuenta del servicio SQL Server no tiene derechos.

Como funciona inmediatamente después de reiniciar, eso me hace pensar que podría tener algo que ver con las credenciales almacenadas en caché. Windows guardará las credenciales que busca para su uso posterior. Ese caché se borra al reiniciar. Quizás algo está corrompiendo el caché.

Nerd SQL
fuente
Creo que tiene razón, es credenciales almacenadas en caché, el reinicio fuerza un inicio de sesión en el servidor del directorio activo. Recibo este error en los diagramas de base de datos. Cuando me desconecto de la red de la compañía, me conecto y no hay ningún error. Desconectar y mi permiso se pierde. Puedo consultar, crear, etc., simplemente no puedo diagramar. 15404 error.
StixO
0

Tuve un problema con una instancia movida del dominio A al dominio B Y revisé los permisos en todas partes y obtuve el control total en todas partes. Se cambió la cuenta de servicio, la propiedad del trabajo, se creó un nuevo trabajo ... Nada funcionó. Se encontró el mismo nombre del usuario de servicio B \ sqlservice y A \ sqlservice existente como inicio de sesión en SQL Server Después de eliminar el inicio de sesión A \ sqlservice, todo comenzó a funcionar bien. Esto significa que algunos punteros de Windows estaban equivocados

Federico
fuente
Para aclarar, ¿estaba recibiendo este error y el error informó que B\sqlserviceera la cuenta de la que no podía obtener información?
RDFozz el