Confluence HSQLDB auf mysql migieren

Folgende Problematik: ihr habt Confluence testweise auf einem Server installiert und nutzt für die Evaluation erstmal die hsqldb – also die integrierte in-Memory Datenbank, die NICHT für den produktiven Einsatz gedacht ist, da sie im Falle eines Absturzes zu Datenverlust führt. Die gestützter sehen das jedoch anders und nutzen das System umgehend produktiv und nun müsst ihr schnell auf eine richtige Datenbank wie MySQL, Oracle usw. umsteigen. Und genau für diesen Punkt ist dieses kleine Tutorial gedacht:

Im Confluence Admin in den Bereich Administration und dort “Sichern und Wiederherstellen” wechseln. “In Sicherungsordner archivieren” sowie “Anhänge sichern” aktivieren und auf sichern klicken.

Das nun erstellte Backup befindet sich (standardmäßig) unter

/var/atlassian/application-data/confluence/backups

Ladet die Datei xmlexport-xxxxxxxx-xxxx.zip herunter – die richtige Datei erkennt ihr am jeweiligen Timestamp.

Anschließen Confluence herunterfahren und die Datei

/var/atlassian/application-data/confluence/confluence.cfg.xml

löschen (auch hier ist der Pfad wieder standardmäßig und kann bei euch evtl. abweichen).

Unter

https://confluence.atlassian.com/display/DOC/Database+JDBC+Drivers

den entsprechenden Treiber für eure zu verwendende DB herunterladen (ist für MySQL und Oracle notwendig), entpacken und die jeweilige .jar Datei in den Pfad (standardmäßig)

/opt/atlassian/confluence/confluence/WEB-INF/lib/

legen.

Mysql my.cnf (/etc/mysql) einstellen:

[mysqld]
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=32M

Mysql neu starten.

Datenbank einrichten:
CREATE DATABASE confluence;
GRANT ALL PRIVILEGES ON confluence.* TO ‘confluenceuser’@’localhost’ IDENTIFIED BY ‘confluencepass’;
FLUSH PRIVILEGES;

Nun müsst ihr Confluence wieder starten und im Browser unter der ursprünglichen URL aufrufen – der Setup Wizard beginnt erneut. Sprache einstellen und dann “Kundenspezifische” Installation wählen. Dort die externe Datenbank Mysql auswählen und auf der nächsten Seite die Zugangsdaten zur Datenbank eintragen:

URL: jdbc:mysql://[db-host]/[db-name]?sessionVariables=storage_engine%3DInnoDB
Benutzer: [db-username]
Kennwort: [passwort]

Anschließend wird die Datenbank erzeugt.

Im nächsten Schritt ganz unten “Wiederherstellen aus Backup” wählen und im folgenden Upload Dialog die vorhin gesicherte

xmlexport-xxxxxxxx-xxxx.zip

wählen. Nun wird die ursprüngliche Datenbank wieder hergestellt und ihr könnt confluence wieder wie gewohnt nutzen.

Confluence zählt LDAP Benutzer mehrfach für die Lizenz

Ein etwas wirrer Titel, aber ich möchte auf folgende Problematik hinweisen – die evtl. auch einfach nur ein Bug ist:

Confluence erlaubt in seinen einzelnen Lizenzpaketen nur eine gewisse Anzahl an Nutzern. Wenn man die Nutzerdaten per LDAP in das System spielt und z.B. nicht alle LDAP Nutzer auch als Confluence User berechtigen möchte, kann man über die Zuweisung von Gruppen regeln, wer Zugriff bekommt und wer nicht.

Anschließend legt man unter “Globale Berechtigungen” einfach die Gruppen oder einzelnen User an und bestimmt, was sie dürfen und was nicht. Nur DIESE User, die entweder der entsprechenden Gruppe angehören, oder aber einzeln gelistet sind, können sich einloggen.

Ein nicht ganz so offensichtlicher Bug/Feature: wenn man den gleichen User in unterschiedlichen Gruppen hinzufügt und diese für Confluence berechtigt, so wird dieser User auch mehrfach für die Lizenz gezählt! Also legt den User einfach in die entsprechend seiner Berechtigungen höchste Gruppe, dann wird er auch nur einmal gezählt.