Migration der OwnCloud SQLite Datenbank zu MariaDB
Nachdem OwnCloud im Admin Interface bereits seit langer Zeit angezeigt hat, dass ich auf ein richtiges Datenbanksystem wechseln soll, habe ich mir nun vor Weihnachten die Zeit genommen die Umstellung endlich durchzuführen.
Die OwnCloud Version zum Zeitpunkt der Umstellung lautet 10.3.2.2. Meine Installation verwaltet ca. 60GB Daten in annähernd 40.000 Dateien. Das ganze läuft auf einem Server mit CentOS 6.
Für die Umstellung habe ich mich an den Guide von OwnCloud gehalten:
https://doc.owncloud.org/server/10.3/admin_manual/configuration/database/db_conversion.html
Ich habe bereits einen laufenden MariaDB Server, so dass ich diesen nicht erst installieren muss. Die Installation wird an dieser Stelle nicht beschrieben. Auch habe ich die Vorbereitungen nicht wie in der Anleitung durchgeführt. Sondern die Datenbank und zugehörigen User über das Webfrontend PHPMyAdmin eingerichtet.
Für den Zugriff auf die Datenbank habe ich einen User owncloudadmin angelegt, welcher nur Berechtigungen auf diese eine Datenbank erhält.
Danach nur noch in den Ordner von OwnClopud wechseln und den folgenden Befehl ausführen:
sudo -u apache ./occ db:convert-type [options] type username hostname database
[[email protected] owncloud]# sudo -u apache ./occ db:convert-type --all-apps mysql owncloudadmin 127.0.0.1 owncloud
This feature is currently experimental.
Enter a password to access a target database:
Creating schema in new database
The following tables will not be converted:
oc_activity
oc_activity_mq
oc_files_antivirus
oc_files_avir_status
oc_notifications
oc_roundcube
oc_trusted_servers
oc_users_external
Continue with the conversion (y/n)? [n] y
oc_account_terms
0 [>---------------------------]
oc_accounts
2/2 [============================] 100%
oc_addressbookchanges
4/4 [============================] 100%
oc_addressbooks
1/1 [============================] 100%
oc_appconfig
130/130 [============================] 100%
oc_authtoken
5/5 [============================] 100%
oc_calendarchanges
0 [>---------------------------]
oc_calendarobjects
0 [>---------------------------]
oc_calendars
1/1 [============================] 100%
oc_calendarsubscriptions
0 [>---------------------------]
oc_cards
2/2 [============================] 100%
oc_cards_properties
9/9 [============================] 100%
oc_comments
0 [>---------------------------]
oc_comments_read_markers
0 [>---------------------------]
oc_credentials
0 [>---------------------------]
oc_dav_job_status
0 [>---------------------------]
oc_dav_properties
0 [>---------------------------]
oc_dav_shares
0 [>---------------------------]
oc_external_applicable
0 [>---------------------------]
oc_external_config
0 [>---------------------------]
oc_external_mounts
0 [>---------------------------]
oc_external_options
0 [>---------------------------]
oc_federated_reshares
0 [>---------------------------]
oc_file_locks
90/90 [============================] 100%
oc_filecache
chunked query, 40 chunks
39137/39137 [============================] 100%
oc_files_trash
0 [>---------------------------]
oc_group_admin
1/1 [============================] 100%
oc_group_user
2/2 [============================] 100%
oc_groups
2/2 [============================] 100%
oc_jobs
18/18 [============================] 100%
Skipping copying data for the table "oc_migrations", it will be populated later.
oc_mimetypes
71/71 [============================] 100%
oc_mounts
2/2 [============================] 100%
oc_persistent_locks
0 [>---------------------------]
oc_preferences
12/12 [============================] 100%
oc_privatedata
0 [>---------------------------]
oc_properties
0 [>---------------------------]
oc_schedulingobjects
0 [>---------------------------]
oc_share
24/24 [============================] 100%
oc_share_external
0 [>---------------------------]
oc_storages
7/7 [============================] 100%
oc_systemtag
0 [>---------------------------]
oc_systemtag_group
0 [>---------------------------]
oc_systemtag_object_mapping
0 [>---------------------------]
oc_users
2/2 [============================] 100%
oc_vcategory
0 [>---------------------------]
oc_vcategory_to_object
0 [>---------------------------]
Obwohl die Funktion noch im Versuchsstadium ist, hat zumindest bei mir die Migration perfekt funktioniert. Während der Migration hat kein User an den Daten gearbeitet, wurden keine Änderungen durchgeführt, um eine Störung der Migration zu verhindern.