Datenbank-Umstellung von Microsoft Access zu SQLite
Aktualisierungsstand | März 2025 |
---|---|
Produktrelevanz | ab estos ProCall 8.0 Enterprise |
Datenbanken
Seit ProCall Enterprise 8.0 wird Microsoft Access als Journal-Datenbank nicht mehr unterstützt. Im ProCall 8 Enterprise erforderliche Datenbank-Updates werden nur noch für SQL-basierte Datenbanken durchgeführt.
Es ist zwingend erforderlich, den UCServer für die Verwendung einer SQL-basierten Datenbank umzustellen.
In dieser Anleitung ist beschrieben, wie Sie auf SQLite als Datenbank umstellen.
Wenn Sie einen Wechsel auf Microsoft SQL Server planen, folgen Sie bitte der Anleitung unter Best Practice: Umstellung der UCServer Datenbank auf Microsoft SQL Server.
Bitte beachten Sie dabei auch die Einschränkungen beim Einsatz von Microsoft SQL Server Express.
Die Inhalte der Microsoft Access Datenbank können mit dem Tool ConvertUCServerMDB2SQLite.exe übernommen werden.
Die Portierung von Datenbeständen zwischen zwei Datenbanksystemen fällt in den Aufgabenbereich eines Datenbankadministrators.
Die folgende Anleitung und das seitens estos bereitgestellte Werkzeug ConvertUCServerMDB2SQLite.exe ist unverbindliche Hilfestellung für die Übernahme eines Datenbestandes von Microsoft Access zu SQLite gedacht und erfordert Fachkenntnis bei der Betreuung von Datenbanken.
- Bitte haben Sie Verständnis dafür, dass dieses Werkzeug ConvertUCServerMDB2SQLite.exe grundsätzlich vom estos-seitigen Support ausgeschlossen ist.
Wann muss die Datenbank umgestellt werden?
Die Umstellung muss zwingend mit der Version 8.3.5 durchgeführt werden, da es Änderungen für das Schreiben in der Datenbank gibt.
Wie kann ich prüfen, welche Datenbank genutzt wird?
Welche Datenbank genutzt wird, sehen Sie in der UCServer Verwaltung unter Allgemein – Datenbank.
Ist hier noch „Access & SQLite“ eingestellt , müssen die Daten übernommen und die Datenbank umgestellt werden.
Datenübernahme aus Microsoft Access
Zur Übernahme der Daten führen Sie folgende Schritte aus:
Beenden Sie den UCServer Dienst.
Sichern Sie das Verzeichnis „….\UCServer\database“.
Kopieren Sie die „ConvertUCServerMDB2SQLite.exe“ aus dem Verzeichnis „…\UCServer\Supportfiles“ in das Verzeichnis „….\UCServer\database“.
Führen Sie die „ConvertUCServerMDB2SQLite.exe“ aus.
Hier haben Sie folgende Möglichkeiten:
- per Doppelklick
Sie erhalten keine Informationen zu Fehlern. - in einer administrativen CMD
Es werden Meldungen zu Ablauf und Fehler ausgegeben.
Mit erfolgreicher Datenübernahme werden zwei neue Dateien erzeugt:
- CtiServerDatabasejournal.db
- CtiServerDatabasetask.db
Starten Sie den UCServer Dienst.
Melden Sie sich in der UCServer Verwaltung an und stellen Sie unter Allgemein – Datenbank die Datenbank auf „SQLite“ um.
Starten Sie den UCServer Dienst neu.
Die Datenübernahme und Umstellung auf SQLite ist damit abgeschlossen.
Weitere Parameter und Logging
ConvertUCServerMDB2SQLite.exe [-h] [-i INPUTFILE] [-o OUTPUTFILE] [--verbose] [--version]
optional arguments:
-h, --help show this help message and exit
-i INPUTFILE, --inputfile INPUTFILE
MS Access database filename
-o OUTPUTFILE, --outputfile OUTPUTFILE
SQLite database filename
--verbose Print some more info while processing
--version show program's version number and exit
Um erweitertes Logging zu aktivieren, verwenden Sie also den Parameter --verbose.
Bekannte Probleme und Einschränkungen
Fehlermeldung ODBC Exception - Cannot open database '(unknown)'
Insofern die Konvertierung der Datenbanken Fehlerausgaben dieser Art zeigt
Databaseconverter 20240205
Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb -> CtiServerDatabasejournal.db ...
Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;
Error openning MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;
ODBC Exception:
('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt. (-1028) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt. (-1028)")
versuchen Sie,
- die Datenbankdatei CtiServerDatabasejournal.mdb mittels Microsoft Access zu öffnen,
- mit dem darin enthaltenen Datenbanktool Datenbank komprimieren und reparieren den Datenbestand zu reorganisieren und
- diese auf diese Weise bearbeitete Datenbank als Access 2000-Datenbank (*.mdb) zu speichern.
Derselbe Vorgang ist mit der Datenbankdatei CtiServerDatabasetask.mdb durchzuführen.
Diese auf diese Weise bearbeiteten Datenbankdateien sollten sich dann problemlos erfolgreich konvertieren lassen:
Databaseconverter 20240205
Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb -> CtiServerDatabasejournal.db ...
Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;
Source table found: journal
Source table found: ValueProperties
Transfer table to SQLite: journal
Create tables for journal ...
CREATE TABLE journal ("TabIndex" INTEGER PRIMARY KEY, "EntryID" TEXT(255), "ConnectionID" TEXT(255), "StartTime" DATETIME, "StopTime" DATETIME, "DurationTotal" INTEGER, "ConnectTime" DATETIME, "DisconnectTime" DATETIME, "DurationConnected" INTEGER, "Outbound" SMALLINT, "Internal" SMALLINT, "LineNumber" TEXT(255), "LineName" TEXT(100), "LineUserName" TEXT(100), "LineUserOffline" SMALLINT, "LocalNumber" TEXT, "PhoneNumber" TEXT, "RedirectingNumber" TEXT, "ContactName" TEXT(100), "ContactCompany" TEXT(100), "ContactEntryID" TEXT, "ContactEntryStoreID" TEXT, "ContactEntryDBID" TEXT(4), "CTIServerUserName" TEXT(255), "ProviderNumber" TEXT(42), "Charging" REAL, "SuccessState" SMALLINT, "Subject" TEXT(255), "Memo" TEXT, "ReadFlag" SMALLINT, "ProjectName" TEXT(255), "ProjectID" TEXT(255), "PrivateCall" SMALLINT, "TrackerID" TEXT(36), "AcceptorName" TEXT(100), "AcceptorCtiServerUserName" TEXT(255), "AcceptorConnectionID" TEXT(255), "ProjectLocationID" TEXT(255), "TrackerLastCall" SMALLINT, "NoStatistic" SMALLINT, "CallType" INTEGER, "Label" TEXT(255), "TrackerCallFlow" SMALLINT, "Deleted" BOOLEAN CHECK ("Deleted" IN (0, 1)), "TransactionID" INTEGER DEFAULT 1);
CREATE UNIQUE INDEX IX_journal_ConnectionID ON journal (ConnectionID)
CREATE INDEX IX_journal_StartTime ON journal (StartTime ASC)
CREATE INDEX IX_journal_TransactionID ON journal (TransactionID ASC)
CREATE TABLE [ValueProperties] ([Name] TEXT CONSTRAINT [PK_ValueProperties] PRIMARY KEY, [Value] INTEGER NULL)
task_version 4
Transferred 379128 rows in table journal
Transfer table to SQLite: ValueProperties
Name [VARCHAR(20)]
Value [INTEGER(10)]
Transferred 1 rows in table ValueProperties
Conversion of journal successful
Databaseconverter 20240205
Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasetask.mdb -> CtiServerDatabasetask.db ...
Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasetask.mdb;
Source table found: task
Source table found: ValueProperties
Transfer table to SQLite: task
Create tables for journal ...
CREATE TABLE [ValueProperties] ( [Name] TEXT CONSTRAINT [PK_ValueProperties] PRIMARY KEY, [Value] INTEGER NULL )
CREATE TABLE task ("TabIndex" INTEGER PRIMARY KEY, "EntryID" TEXT, "Subject" TEXT, "DatabaseContact" TEXT, "CallPhoneNumber" TEXT, "ProjectName" TEXT, "ProjectPIN" TEXT, "StartDate" DATETIME, "DueDate" DATETIME, "State" SMALLINT, "Priority" SMALLINT, "DelegationState" SMALLINT, "ReminderActive" BOOLEAN, "ReminderTime" DATETIME, "ReminderFile" TEXT, "Owners" TEXT, "Creator" TEXT, "CreationTime" DATETIME, "Body" TEXT, "DateCompleted" DATETIME, "CompletedFrom" TEXT, "Privacy" SMALLINT, "ProjectLocationID" TEXT)
task_version 2
Transferred 32594 rows in table task
Transfer table to SQLite: ValueProperties
Name [VARCHAR(20)]
Value [INTEGER(10)]
Transferred 1 rows in table ValueProperties
Conversion of tasks successful
Weiterführende Informationen
Migration Datenbestand der internen UCServer Datenbank von Microsoft Access nach SQL Server
ProCall 8.0 Enterprise Release Notes
Best Practice: Umstellung der UCServer Datenbank auf Microsoft SQL Server
Einschränkungen beim Einsatz von Microsoft SQL Server Express
ProCall 8 Enterprise Systemvoraussetzungen
ProCall Journal wird nach einem UCServer Update auf Version 8.3.4 nicht mehr geschrieben