Cómo reparar la base de datos de blog en caso de emergencia

como-reparar-bases-de-datos-de-emergencia

Cuando tienes un blog o una página web y no puedes tener a mano un diseñador o programador lo que se llamaría un técnico, hay que andar con mucho ojo en que se rompa nada porque después a ver como lo arreglas. Siendo mi propia técnica, he tenido algún que otro problema que me costado más o menos solucionar. Después de bastante tiempo con el blog bastante tranquilo, en noviembre me dió un buen susto pude solucionar en unos días pero me hizo dar cuenta de que además de cuidar el feed, que los plugins no se peleen entre ellos, tampoco se puede descuidar la base de datos.

La base de datos es el “cerebro” del blog o web, donde se almacena toda la información, imágenes, posts, plugins, páginas que se instalan o se generan, para después mostrarla a petición del visitante. Si la base de datos desaparece o se daña, no se puede mostrar la web correctamente. Pero también si alcanza un cierto tamaño, por elementos de programación o plugins que la pueden llenar en exceso, y si tenéis la web alojada en un hosting que limita el tamaño de la base de datos y se supera, la base de datos quedará algo así como bloqueada. Queda en un estado que no se puede añadir nada nuevo, ni post, ni imagen, ni plugin ni absolutamente nada. Pero si se puede acceder a ella y eliminar lo que sobre para disminuir su peso y poder incluir nuevas cosas.

Es algo que no es difícil de solucionar pero hay que tener un poco de cuidado y no desesperarse. Yo por supuesto, lo hice y eso complicó un poco todo. Mi problema vino al no tener acceso directo a esa base de datos, se había autogenerado a través de un plugin llamado WP Super Cache. Es uno de esos plugins que le dan en teoría velocidad a la web guardando copias de la web para mostrarla al visitante. Igual que otro el W3 Total Cache que hay quien considera que es la octava maravilla pero a la larga este tipo de plugins se han demostrado ineficaces. Y el total cache me había dado problemas e instalé el otro WP Super Cache, hasta que vi que no servía y lo borré desde el ftp, no desde el panel. Las nuevas versiones de wordpress ya permiten cada vez más actualizar plugins desde el propio panel sin problemas, así que no hace falta entrar tanto por el servidor.

Normalmente la base de datos es accesible desde el panel de control de vuestro hosting que os da acceso a un apartado llamado PHPmyadmin para ver, modificar o borrar contenido de la base de datos. Las bases de datos están formadas por tablas con programación de wordpress, posts, comentarios y hasta contenido de plugins como traductores. Y cada tabla aunque no lo parezca es necesaria, no se pueden eliminar y punto, lo que si se puede eliminar es el contenido. Si no se puede acceder por el panel, si la base de datos es autogenerada el phpmyadmin se puede instalar/subir por ftp al directorio correspondiente. La información de acceso necesaria esta en el archivo wp-config.php

Reparación desde el propio WordPress

Es importante antes de atacar a la base de datos para borrar lo que buenamente se pueda, tener copias de seguridad de la base de datos a mano por si hay algún problema y toca reemplazarla. Y si es posible otra versión que no sea demasiado antigua que cumpla los limites de vuestros servidor, mejor. Yo llevo bastante tiempo usando un plugin llamado symple backup que crea copias de seguridad de wordpress y de la base de datos justo la última era de agosto y cumplía los limites. También, muy importante copia del archivo xml que se generar desde el panel de wordpress, herramientas/exportar que sirve para hacer traslados desde wordpress.com a un servidor propio, para tener todas entradas y páginas en caso que haya que utilizar la base de datos antigua para que no se pierda contenido reciente. Antes de entrar en el phpmyadmin, se puede intentar este pequeño truco que permite que wordpress repare la base de datos por si mismo.

Se trata de añadir un pequeño código al final en el archivo wp-config.php

define (‘WP_ALLOW_REPAIR’, true);

descargándolo por ftp y volviendo a subir. Para modificar el archivo podéis hacerlo con un programa llamado Notepad++ que es un editor de código html, php, etc. Es importante guardar copia del wp-config.php original para una vez terminado el proceso volverlo a subir sin el código.

Una vez cambiado el archivo y se accede a la siguiente dirección

http://TUBLOG.COM/wp-admin/maint/repair.php

cambiando tublog.com por vuestro dominio.

Y tiene que aparecer un página con la opción de reparar y más abajo reparar y optimizar. Le hacéis click a reparar y optimizar y esperáis que termine. Es un sistema preparado para una serie de problemas comunes, si lo soluciona perfecto si no hay que seguir con el phpmyadmin pero conviene tener en cuenta esta opción. La descubrí en Afliliadohispano aunque ellos recomiendan hacerlo al revés entrar primero en repair.php para que aparezcan las instrucciones a seguir. Lo de la copia del wp-config.php, es para volver a subir el archivo original sin código rápidamente es por un tema de seguridad, el acceso a repair.php es público y siempre esta el listo que puede usarlo con intenciones maliciosas. Cambiando nombres de archivos añadiendo un número o una letra es la manera más fácil de tener copias y cambiar archivos tanto en local como en el servidor pero siempre se puede editar el archivo de nuevo.

Reparar con Phpmyadmin

Si wordpress no puede arreglar el problema con repair.php, hay que ir a phpmyadmin y enfrentrarse a la base de datos sin remedio. Por que con la base de datos bloqueada no se pueden instalar ni desinstalar plugins. En la pantalla del phpmydmin se muestra la base de datos con sus tablas y lo que ocupa de espacio en kilobytes o kilobites. Kilobytes y kilobites no representan a lo mismo pero son números muy largos y no recuerdo las unidades que exactamente utiliza representada por kb. Es cuestión de mirar que tablas son las que ocupan más y ver a que corresponden. Bajo ningún concepto le deis a la opción eliminar la tabla, por lo que he dicho antes que esta ahí por algo se daña la base de datos y worpdress no lo arregla seguro. La opción correcta es VACIAR y así hasta que reduzcáis el tamaño de la base de datos. Una vez hecho esto la base de datos tendría que volver a estar activa, si no contactáis con vuestro proveedor de hosting para que lo hagan.

Si os lo cargáis, tenéis que restaurar la base de datos irremediablemente, mejor la versión que cumpla los límites aunque sea antigua, con el archivo xml se puede reemplazar el contenido que falta. También habrá que hacer otros cambios que se hayan hecho desde entonces, pero lo primero es reparar la base de datos y poder volver a publicar. A mi me tocó hacer eso pero bueno, todo se arregló y vuelve a estar como antes. Para subir la copia, se puede hacer desde el panel pero si es demasiado grande, tenéis que hacerlo mediante un pequeño archivo llamado script, con el blog de notas o Notepad++ podéis añadir el código al archivo y subirlo todo por ftp, script y base de datos. Esto depende del servidor donde tengáis alojado el blog, muchos tienen tutoriales para determinadas funciones como importar bases de datos, estas son las instrucciones de OVH por ejemplo, que son las que tuve que utilizar.

Instalar plugins de optimización

Cuando este todo en orden y no necesitéis más el phpmyadmin podéis guardar la carpeta en local y eliminarla del servidor también y con más razón por cuestiones de seguridad ya que se accede directamente al panel. Ahora si por fin podéis instalar los plugins que todo el mundo recomienda y la verdad simplifican mucho el trabajo de tener la base de datos a raya. Se trata de WP-Optimize y Clean UP, me gusta más Optimize pero los dos funcionan bien y pueden estar instalados a la vez sin problemas. De vez en cuando se le hace optimizar para que esté lejos de los límites permitidos.

Esta es la solución casera para este tipo de caso de emergencia que la base de datos queda bloqueda y es tarde para instalar plugins que reparen la base de datos. Habrá soluciones mejores, más rápidas a parte de evitar el problema y profesionales a lo que pagar por supuesto, pero mi economía no me lo permite, así que me tocó arreglármelo yo misma a parte de pedir consejo que me dieron, otros blogueros Victor, Carol, Alberto y otros. Pero esta fue la mía y si alguien le sirve, perfecto.

En Resumen:
Paso 0 Proveerse de todas las copias de seguridad posibles, base de datos, wordpress y archivo xml en diferentes versiones.

Paso 1 Intentar la reparación de la base de datos desde el propio WordPress con repair.php

Paso 2 Acceder desde el panel de control o instalar phpmyadmin en el servidor para visualizar y vaciar tablas con exceso

Paso 3 Si falla el paso anterior, restaurar base de datos de versión anterior y realizar los cambios necesarios para que vuelva a estar como antes

Paso 4 Una vez solucionado instalar los plugins WP-Optimize y Clean UP para controlar la base de datos y que no se vuelva a descontrolar en tamaño.

Paso 5 Hacer copias de seguridad de nuevo con todo correcto e ir haciendo regularmente.

3 comentarios

  1. Menuda crack! Yo no hubiera sido capaz 🙁 Se me da fatal la parte técnica del blog…