Database files
Database files
Starcounter database consists of the following items:
Name
Number
Description
Required
Platform Specific
📁 archive
0 - 1
Archived transaction log files.
No
No
📜 DatabaseName.000000000000.log
0 - ∞
Transaction log file.
Yes
No
📜 DatabaseName.000000000000.optlog
0 - ∞
Compressed transaction log file.
Yes
No
📜 DatabaseName.cfg
1
Database configuration file.
Yes
Yes
📜 starcounter.000000000000.log
0 - ∞
Database events log.
No
No
Required: specifies whether this item is a required database part; for example, when moving or backing up a database.
Platform Specific:
No
- the file is platform independent;Yes
- the file is platform specific and not cross-compatible between Windows / Linux versions of Starcounter.
Note: due to the .cfg
file being platform specific, it is not currently possible to copy databases between Windows and Linux.
Transaction log files
The very first database transaction log file is created during the first database startup. A created, but never started database does not contain any transaction log files.
When database grows, Starcounter:
Creates new transaction log files.
Compresses existing transaction log files into
.optlog
files.Moves compressed transaction log files into the
archive
folder.
*Note: due to the current limitations, it is important to start the database at least once before using it from multiple different processes.*
Database configuration file
This file contains all required information about the database.
Database events log
Starcounter logs database events into this file. Sample content:
Deleting database files while scdata
is running
scdata
is runningOn Windows, it's not possible to delete database files while the scdata
process is running. On Linux operating systems, however, it is, which may lead to potential issues. Consider the following scenario:
A database is created at
/home/database/TestDatabase
.An
scdata
process is started for the database.The database files are deleted.
New database is created in exactly the same location.
An app tries to connect to the new database.
Starcounter detects, that there is a running
scdata
process associated with this database path.The app connects to the existing
scdata
process, which still operates on the deleted files. The filesystem will keep those files around for thescdata
process, as long as it's running.The app continues to run as expected, but the next time
scdata
is restarted, for example due to a system restart, the database files will be removed from the system completely, taking all the app's database data with them.
Last updated