cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco 4.x: Austauschen des Datenbanksystems

power4ever_7698
Champ in-the-making
Champ in-the-making
Hallo Community,

seit Alfresco 4.x wird standardmäßig nicht mehr MySQL sondern Postgresql bei der Installation über den Wizzard genutzt.

Mein bisheriger Versuch, das Datenbanksystem auf MySQL umzustellen war leider noch nicht erfolgreich.

Zwar steht im Handbuch http://docs.alfresco.com/4.0/index.jsp und in einer Anleitung zur Datenbankkonfiguration http://wiki.alfresco.com/wiki/Database_Configuration einiges, aber auch der konkretere Artikel https://forums.alfresco.com/en/viewtopic.php?f=8&t=41176 hat noch nicht geholfen.

Die dort vertretene Idee, zunächst mit Postgresql zu installieren und anschließend das Datenbanksystem auszutauschen klingt zunächst plausibel.
Für mich noch offen ist, wie ich die neu angelegte, noch leere Datenbank in MySQL aufbauen kann. Eine Datei *.sql, mit deren Hilfe alle Tabellen etc. einrichtet werden können habe ich nicht gefunden, und der eigentliche Installationsprozess ist ja leider schon gelaufen. Ein Neustart von Alfresco wird die Datenbank also nicht mehr aufbauen.

Auch das Verzeichnis ../alf_data/ passt ja nicht mehr zu 100 % und bedarf meiner Meinung nach dann noch einer Anpassung

Vielleicht hat das ja schon mal jemand erfolgreich durchgeführt oder kennt einen anderen Weg? Das wäre prima.

Viele Grüße.
4 REPLIES 4

jpfi_4454
Champ in-the-making
Champ in-the-making
Hi,

- MySql installieren

- MySql Treiber (http://dev.mysql.com/downloads/connector/j/) in tomcat/lib kopieren

- My SQL DB anlegen, ungefähr so:
mysqladmin -u root create alfresco
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;"
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;"

- in der tomcat/shared/classes/alfresco-global.properties die DB-Parameter ändern

db.driver=org.gjt.mm.mysql.Driver
db.username=alfresco
db.password=deinPW
db.name=deindbname
db.url=jdbc:mysql:///${db.name}

Wenn du vorher Alfresco schon einmal gestartet hattest, dann musst du deinen ContentStore und deinen Index löschen:
- alf_data/contentstore
- alf_data/contentstore.deleted
- alf_data/lucene-indexes
- alf_data/solr/archive
- alf_data/solr/workspace


Dein Repository ist danach natürlich wieder leer!

VG, jan

power4ever_7698
Champ in-the-making
Champ in-the-making
Hallo Jan,

danke für die Zusammenfassung der Schritte in der durchzuführenden Reihenfolge. Dies deckt sich auch mit den von mir bisher gefundenen Angaben, so dass ich sicher bin, nicht mehr weit von der Lösung entfernt zu sein.

Was für mich allerdings noch nicht transparent ist, ist folgendes:

Wann genau werden die Tabellen der Datenbank angelegt? Da ja der eigentliche Installationsprozess schon durchlaufen wurde, gehe ich davon aus, dass dies für die nachträglich angelegte MySQL-Datenbank nur noch manuell durchgeführt werden kann. Hierzu habe ich aber keine SQL-Skripte gefunden, mit denen das erreicht werden könnte. Und ohne eingerichtete Tabellen in der Alfresco-Datenbank kann Alfresco ja nicht laufen.

Viele Grüße.

thomash
Champ in-the-making
Champ in-the-making
Hallo,

Alfresco prüft beim Start den Zustand des Repositories. Startest du ein Alfresco System mit leerer Datenbank und leerem alf_data Verzeichnis ist technisch gesehen keine Repository Instanz vorhanden und der Schema Bootstrap Prozess wird ausgelöst.
Verantwortlich hierfür sind verschiedene in der bootstrap-context.xml definierte Bootstrap Spring Bean.
Das Datenbank Schema wird beispielsweise von der SchemaBoostrap Bean durchgeführt.



    <!– ensure that the schema is bootstrapped –>
    <bean id="schemaBootstrap" class="org.alfresco.repo.domain.schema.SchemaBootstrap" >
       <property name="dataSource">
          <ref bean="dataSource"/>
       </property>
       <property name="localSessionFactory">
          <ref bean="&amp;sessionFactory"></ref>  <!– inject the actual factory, not a session –>
       </property>
       <property name="dialect">
          <ref bean="dialect" />
       </property>
       <property name="maximumStringLength">
          <value>${system.maximumStringLength}</value>
       </property>
       <property name="hibernateMaxExecutions">
          <value>${system.hibernateMaxExecutions}</value>
       </property>
       <property name="updateSchema">
          <value>${db.schema.update}</value>
       </property>
       <property name="stopAfterSchemaBootstrap">
          <value>${db.schema.stopAfterSchemaBootstrap}</value>
       </property>
       <property name="schemaUpdateLockRetryCount">
          <value>${db.schema.update.lockRetryCount}</value>
       </property>
       <property name="schemaUpdateLockRetryWaitSeconds">
          <value>${db.schema.update.lockRetryWaitSeconds}</value>
       </property>
       <property name="globalProperties">
          <ref bean="global-properties" />
       </property>
       <property name="preCreateScriptUrls">
          <list>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-RepoTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-LockTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-ContentTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-PropertyValueTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-AuditTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-AvmTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-ActivityTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-UsageTables.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoCreate-SubscriptionTables.sql</value>
          </list>
       </property>
       <property name="postCreateScriptUrls">
          <list>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoPostCreate-JBPM-Extra.sql</value>
             <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/AlfrescoPostCreate-JBPM-FK-indexes.sql</value>
          </list>
       </property>
       <property name="schemaReferenceUrl">
          <value>classpath:alfresco/dbscripts/create/${db.script.dialect}/Schema-Reference.xml</value>
       </property>
       <property name="validateUpdateScriptPatches">
          <list>
          </list>
       </property>
       <property name="preUpdateScriptPatches">
          <list>
             <ref bean="patch.db-V2.2-ACL-From-2.1-A" />
             <ref bean="patch.db-V2.2-ACL" />
             <ref bean="patch.db-V2.2-CleanNodeStatuses" />
             <ref bean="patch.db-V2.2-0-CreateMissingTables" />
             <ref bean="patch.db-V2.2-Upgrade-From-2.1" />
             <ref bean="patch.db-V2.2-Upgrade-From-2.2SP1" />
             <ref bean="patch.db-V2.2-Person-3" />
             <ref bean="patch.db-V3.2-LockTables" />
             <ref bean="patch.db-V3.2-ContentTables" />
             <ref bean="patch.db-V3.2-ContentTables2" />
             <ref bean="patch.db-V3.2-PropertyValueTables" />
             <ref bean="patch.db-V3.2-AuditTables" />
             <ref bean="patch.db-V3.2-Child-Assoc-QName-CRC" />
             <ref bean="patch.db-V3.3-modify-index-permission_id" />
             <ref bean="patch.db-V3.2-AddFKIndexes" />
             <ref bean="patch.db-V3.2-AddFKIndexes-2" />
             <ref bean="patch.db-V3.0-ActivityTables" />
          </list>
       </property>
       <property name="postUpdateScriptPatches">
          <list>
             <ref bean="patch.db-V3.1-Allow-IPv6" />
             <ref bean="patch.db-V3.2-Remove-AVM-Issuer" />
             <ref bean="patch.db-V3.2-Modify-AVM-MimeType" />
             <ref bean="patch.db-V3.2-Upgrade-JBPM" />
             <ref bean="patch.db-V3.3-Remove-VersionCount" />
             <ref bean="patch.db-V3.3-Fix-Repo-Seqs" />
             <ref bean="patch.db-V3.3-Fix-AVM-Seqs" />
             <ref bean="patch.db-V3.3-JBPM-Extra" />
             <ref bean="patch.db-V3.3-Node-Prop-Serializable" />
             <ref bean="patch.db-V3.4-property-unique-ctx-value" />
             <ref bean="patch.db-V3.4-property-unique-ctx-idx" />
             <ref bean="patch.db-V3.4-authority-unique-idx" />
             <ref bean="patch.db-V3.4-child-assoc-indexes" />
             <ref bean="patch.db-V3.4-RemovingLinkValidationMetadata" />
             <ref bean="patch.db-V3.4-AVM-rename-dupes" />
             <ref bean="patch.db-V3.4-VarcharFieldSizesQuadrupleIncreasing" />
             <ref bean="patch.db-V3.4-JBPM-FK-indexes" />
             <ref bean="patch.db-V4.0-AclChangeSet" />
             <ref bean="patch.db-V4.0-NodeAssoc-Ordering" />
             <ref bean="patch.db-V4.0-Node-Locale" />
             <ref bean="patch.db-V4.0-SubscriptionTables" />
             <ref bean="patch.db-V4.0-SolrTracking" />
          </list>
       </property>
    </bean>
 

Gruß
Thomas

power4ever_7698
Champ in-the-making
Champ in-the-making
Hallo Thomas,

vielen Dank für die Erläuterung der Zusammenhänge. Es hat dann auch letztendlich genau so funktioniert wie im Beitrag von Jan beschrieben, nur dass ich alf_data komplett geleert habe.

Viele Grüße.
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.