Error "Unable to load object of type BsDomain with id=: Domain does not exist"

Created:

2016-11-16 13:02:01 UTC

Modified:

2017-08-16 16:32:44 UTC

0

Was this article helpful?


Have more questions?

Enviar una solicitud

Error "Unable to load object of type BsDomain with id=: Domain does not exist"

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix
  • Plesk 12.5 for Windows
  • Plesk 12.0 for Windows
  • Plesk 11.5 for Windows
  • Plesk 10.4 for Windows
  • Plesk Automation

Síntomas

Cuando se intenta abrir el panel de control de un dominio en Parallels Plesk (Plesk) o cuando se intenta abrir el enlace 'dominios' en el marco de navegación a la izquierda, se obtiene el siguiente error:

Unable to load object of type BsDomain with id=: Domain does not exist.

Causa

La causa del problema es una incoherencia en la base de datos psa . Esto sucede si algún registro presente en las columnas 'domains.webspace_id' o 'domain_aliases.dom_id' apunta al ID de un dominio inexistente.

Resolución

  1. Cree un backup de la base de datos.

  2. Compruebe los enlaces a '<id from error>' en la tabla 'psa.domains' :

    mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"select * from domains where webspace_id=<id from error>"
    

    La consulta que puede ver arriba devolverá una lista de los dominios que pertenecen a un espacio web dañado, de existir.

  3. Compruebe las tablas relacionadas con el dominio y los alias de dominio:

    for table in domain_aliases hosting dom_param DomainServices subdomains;do echo TABLE: $table; mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"select * from $table where dom_id=<id from error>";done
    

    Esta consulta devolverá una lista de los alias de dominio que pertenecen al 'dom_id' no encontrado, así como entradas en las tablas relacionadas que contienen información acerca del dominio.

  4. Si las tablas 'hosting\DomainServices' devuelven un resultado no vacío en el paso 2, compruebe la existencia de una carpeta que contenga el contenido del dominio actual (el valor 'www_root' de la tabla 'hosting' ) :

        ls -la /var/www/vhosts/domain.com/htdocs
    

    De ser así, debería volver a crear la entrada del dominio en la base de datos. Puede obtenerla a través de los volcados de la base de datos de Plesk ejecutando el siguiente comando:

    export dom_id=<dom_id that you got from hosting table>
    
    find /var/lib/psa/dumps/ -name mysql.daily.dump.*|sort -n -r|while read dump_file;do zcat $dump_file|sed -n '/^INSERT INTO `domains/,/\;/p'|grep -v ALTER|sed 's/INSERT INTO `domains` VALUES //g'|sed 's/),(/)\n(/g'|grep '"("$dom_id'; if [ $? == 0 ];then echo;echo Dump file $dump_file contains the entry;exit 0;fi;done
    
    (2,'2013-11-21','domain.com','domain.com',3,0,'vrt_hst',760319296,1,0,NULL,NULL,'53238f70-4818-49a3-8d7e-1a5220e0e06e','','false','on',1,0,0,0,0)
    
    Dump file /var/lib/psa/dumps/mysql.daily.dump.8.gz contains the entry
    

    Este comando devolverá la entrada del dominio de los volcados de la base de datos de Plesk, de existir. A continuación, puede volver a insertar la entrada en la tabla de dominios:

    mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"INSERT INTO domains VALUES(2,'2013-11-21','domain.com','domain.com',3,0,'vrt_hst',760319296,1,0,NULL,NULL,'53238f70-4818-49a3-8d7e-1a5220e0e06e','','false','on',1,0,0,0,0);"
    
  5. Si la entrada del dominio no está presente en los volcados y no existe ninguna carpeta de contenido, debería establecer 'dom_id' a 0 para todos los dominios cuyo 'webspace_id' apunte al dominio ausente. Tenga en cuenta que también debería eliminar las entradas de las siguientes tablas:

    mysql> begin;
    mysql> DELETE FROM hosting WHERE dom_id = <id from error>;  
    mysql> DELETE FROM dom_param WHERE dom_id = <id from error>;
    mysql> DELETE FROM domainServices WHERE dom_id = <id from error>; 
    mysql> DELETE FROM domain_aliases WHERE dom_id = <id from error>;
    mysql> DELETE FROM subdomains WHERE dom_id = <id from error>;
    mysql> commit;
    
  6. Si existe la carpeta de contenido del dominio pero no se encuentra la entrada del dominio, cree una petición de soporte para resolver la incidencia.
¿Tiene más preguntas? Enviar una solicitud
Inicie sesión para dejar un comentario.