Hola! Hoy os traigo un artículo en el que vamos a lidiar con el CI (“Content Index”) fallido ya sea teniendo un DAG (Database Availability Group) o no.
La gran mayoría de las incidencias se podrán resolver simplemente parando los servicios de búsqueda MSExchangeFastSearch y HostControllerService y borrando (o renombrando, según vuestras políticas se seguridad) la carpeta “GUID.Single” en la base de datos activa:
Desafortunadamente, hay ocasiones en las que tras realizar esta acción, seguimos con el CI en “Failed” o “FailedAndSuspended”. Aquí os dejo unos pasos útiles para intentar salir de esta situación:
1- Teniendo un DAG en donde el CI de la copia activa está correcta pero una de las copias pasivas está en “Failed” o “FailedAndSuspended” podemos utilizar el comando:
Update-MailboxDatabaseCopy NombreBaseDatos\ServidorExchange -CatalogOnly -DeleteExistingFiles
Esto solamente va a intentar sincronizar los archivos del catálogo de búsqueda con la copia activa.
2- Borrar y crear una nueva copia. Si el CI de la copia pasiva sigue corrupto, vamos a borrar directamente la copia pasiva, física y lógicamente. Tened en cuenta que cuando borramos una copia, ya sea mediante EAC (Exchange Admin Center) o EMS (Exchange Management Shell), sólo se borra, lógicamente, a nivel AD y por tanto a nivel Exchange. Pero los archivos físicos continúan en su sitio, y por tanto recomiendo también borrarlos. Una vez esté borrada, creamos nuevamente la copia pasiva.
Es posible que tarde unos minutos en cambiar de estado (incluso horas, dependiendo del tamaño de la BD), normalmente pasando por el estado “Unknown”, “Failed” y si todo el proceso sigue correcto, “Crawling” y “Healthy”.
Para confirmar cuantos buzones quedan aún por indexar o para comprobar si tenemos algún error, podemos usar el comando:
Get-MailboxDatabaseCopyStatus –Server NombreServidor | fl *contentindexmailboxestocrawl*,*contentindexerrormessage*
3- Si tras realizar los pasos previos seguimos con la misma incidencia, es MUY importante que echéis un ojo al tan socorrido pero causante de algún que otro dolor de cabeza: el Antivirus. Pese a que podemos desactivar el AV, en muchos casos no es suficiente y tenemos que desinstalarlo completamente para permitir que el CI se genere correctamente. Es muy probable que vuestro cliente no esté contento si no tenemos un AV por lo que tenemos que buscar una alternativa. Ésta pasa por crear exclusiones para que el AV no interfiera con el CI. Se pueden crear manualmente, pero es posible que se nos olvide alguna y además requiere de mucho tiempo.
Para esto podemos usar un script disponible en la Office Gallery que, siguiendo las instrucciones, genera un archivo .txt donde podremos copiar las exclusiones creadas y pegarlas directamente en el apartado de exclusiones del AV:
https://gallery.technet.microsoft.com/office/Generate-Antivirus-f1a9a59e
Tener en cuenta que el AV puede estar presente no sólamente en la máquina virtual del propio servidor de Exchange, sino también en la maquina “host” que hospeda esa máquina virtual. Hay que aplicar lo mencionado anteriormente en ambos lados.
4- Si el problema es generalizado, tenemos todos los CI afectados de todas las bases de datos, y tras realizar los pasos mencionados no funciona, ya nos tenemos que meter en profundidad con el “Search Engine”. Éste se puede recrear siguiendo estos pasos:
-Paramos los servicios de búsqueda: “Microsoft Exchange Search” y “Microsoft Exchange Search Host Controller”.
-Eliminamos todos los archivos presentes en la carpeta “Fsis” (hacemos un backup del contenido antes de borrarlo) ubicados en:
“C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis”.
-Abrimos EMS con permisos de administrador y navegamos hasta “C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Installer”. En esta carpeta tendréis un archivo “installconfig.ps1” el cual ejecutaréis con los siguientes parámetros:
.\installconfig.ps1 -action I -datafolder "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data"
El script recreará los archivos que hemos borrado en «C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis».
-Una vez estén presentes, tendremos que desinstalar y volver a instalar usando el mismo script. Se que no es del todo lógico, pero lo tenemos que hacer de esta manera:
.\installconfig.ps1 -action U -datafolder "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data"
Luego volveremos a instalarlo:
.\installconfig.ps1 -action I -datafolder "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data"
-Forzamos la replicación a nivel AD donde esté el servidor Exchange.
-Borramos la carpeta “GUID.Single” y arrancamos nuevamente los servicios de búsqueda: “Microsoft Exchange Search” y “Microsoft Exchange Search Host Controller”.
5- En otras ocasiones donde a pesar de haber hecho todo lo anterior seguía sin funcionar, desmontando las bases de datos afectadas y montándolas de nuevo fuimos capaces de resolver el problema. Tener en cuenta que si llegáis a este punto, es posible que haya algún tipo de corrupción o que el proceso sobre esa base de datos esté un poco «congelado» (pese a que esté montada) y que corráis el riesgo de que no se vuelva a montar. Tener siempre un backup preparado por si se da la situación.
Artículos relacionados:
https://technet.microsoft.com/en-us/library/bb332342(v=exchg.150).aspx
https://blogs.technet.microsoft.com/rmilne/2014/02/04/exchange-and-antivirus-exclusions-a-critical-conversation/
Espero que con todas estas sugerencias solventéis vuestros problemas con el “Content Index”.
Un saludo y gracias por seguirnos!
Deja una respuesta