AnsweredAssumed Answered

Backup vs. acp's

Question asked by ajv on Apr 4, 2008
Hola a todos,

Tengo algunas preguntas acerca de backups y recuperacion de información con Alfresco, que está relacionado con el tema de descargar espacios que abrí hace unos días…

Por lo que tengo entendido, Alfresco emplea el sistema de ficheros para almacenar el contenido y los indices de búsquedas de lucene.
Y emplea la base de datos para almacenar los metadatos.
Entonces, entiendo que haciendo un backup de alf_data y del esquema de la base de datos que se emplea para Alfresco, sería más que suficiente para volver al estado anterior y dejar el sistema tal cual estaba.
Y para ello,
   - Parando el servidor de Alfresco.
   - Eliminar alf_data
   - Colocar el alf_data que se exportó en su momento
   - Eliminar la base de datos e importar la que se exportó.
   - Arrancar Alfresco.
Con esto, debería ser suficiente, no??


Otra duda que me surge es con el tema de los acp's.
Alfresco permite exportar e importar contenidos mediante acp's, incluso el repositorio completo.
He hecho una prueba de exportar el repositorio completo, pero para importarlo me he encontrado con problemas:
   - Exporto el repositorio completo. Obtengo un xml y una serie de acp's.
   - Para hacer la importación, la única opción que he visto es:
      1.- Realizar una instalación nueva de Alfresco.
      2.- Descomentar el archivo restore-context.xml.sample a restore-context.xml, que se encuentra en tomcat/shared/classes/alfresco/extension
      3.- Crear en tomcat/shared/classes/alfresco/extension una carpeta con el contenido de la exportación (el xml + los acp's)
      4.- Arrancar Alfresco
   - El GRAN problema es si cuando hice la exportación había personalizado el repositorio (en el sentido de añadir un nuevo aspecto, etc…)
   En ese caso, al realizar la restauración de los datos me da un error que no sé cómo resolver:
   

org.alfresco.error.AlfrescoRuntimeException: Bootstrap failed
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:437)
   at org.alfresco.repo.importer.ImporterBootstrap.onBootstrap(ImporterBootstrap.java:659)
   at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:62)
   at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:241)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:349)
   at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:448)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: org.alfresco.service.cmr.view.ImporterException: Failed to import package at line 92; column 40 due to error: Aspect name {http://www.uib.es/model/spacegroup/1.0}spaceGroup is not valid; cannot find in Repository dictionary
   at org.alfresco.repo.importer.view.ViewParser.parse(ViewParser.java:190)
   at org.alfresco.repo.importer.ImporterComponent.parserImport(ImporterComponent.java:360)
   at org.alfresco.repo.importer.ImporterComponent.importView(ImporterComponent.java:235)
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:423)
   … 35 more
Caused by: org.alfresco.service.cmr.view.ImporterException: Aspect name {extension}myaspect is not valid; cannot find in Repository dictionary
   at org.alfresco.repo.importer.view.ViewParser.processStartElement(ViewParser.java:309)
   at org.alfresco.repo.importer.view.ViewParser.parse(ViewParser.java:176)
   … 38 more
   
      



Entonces, me gustaría saber cuál sería la mejor forma de proceder:
- Me olvido de los acp's y me preocupo únicamente de hacer backup de alf_data y de la base de datos?
Con eso es suficiente??

- Hasta ahora, tenía pensado jugar únicamente con los acp's (pero ni siquiera sé si me restauraría toda la información, tanto contenidos como la información de la BD)…
Para ello, hice una mini-extensión para generar una exportación del repositorio completo de forma diaria.
Pero, claro, tengo los problemas de qué hacer con esos acp's para importarlo sin problemas…


Agradecería algo de "luz" en estos temas.
Muchas gracias de antemano.
Gracias!!

Outcomes