Database administrators: start here #
This section of the help is for database administrators: the people who create, secure, back up, upgrade, tune and
monitor the database of an Exponential site, whether they run one site or many, on SQLite, PostgreSQL, MongoDB,
MariaDB, Oracle or MySQL. It describes the database layer exactly as the 6.0.x kernel implements it, with the
settings, scripts and files you will use, and says plainly where something needs an extension or does not exist.
Every fact on these pages was checked against the code, the settings files and the project's documentation, chiefly
Database support and chapter 9 of the installation guide.
Each page names its sources.
Contents #
- Exponential's database in one paragraph
- Your first fifteen minutes
- Six rules for every database
- Map of the database administrator pages
- Pages from other audiences you will use
- Finding these pages again
Exponential's database in one paragraph #
Exponential is a free and open source PHP content management system; its content repository lives in one
database reached through the kernel class eZDB and one of five drivers. Six databases are supported, in this order
of preference: 1. SQLite 3 (the default, one file, for a site on one machine) · 2. PostgreSQL (the recommended
server) · 3. MongoDB (through an adapter, with documented limits) · 4. MariaDB · 5. Oracle (19c and later,
through the ezoracle extension) · 6. MySQL. Microsoft SQL Server is known to be possible with additional work at
this time. The schema is kept in an engine-neutral .dba format and changed by per-engine update files. Uploaded
files, settings and caches are not in the database.
Your first fifteen minutes #
- Find the engine (2 minutes): Setup > System information, Database card, or
php bin/php/console exp:ini get site.ini/DatabaseSettings/DatabaseImplementation --allow-root-user. - Read the layer (5 minutes): The database layer in one page.
- Read your engine's setup page (5 minutes): from the map below.
- Check the backups (3 minutes): Backups per engine.
Then follow the reading path.
Six rules for every database #
- Never edit shipped files. Settings go into
settings/override/; schema changes come from update files. - One account per site, least privilege, never
root. (Accounts) - UTF-8 everywhere:
utf8mb4, UTF8, AL32UTF8. (Character sets) - Back up the database and the files together, and test the restore. (Backups)
- After any write outside Exponential, clear the caches, the SQL query cache included.
(Query cache)
- After a settings change, clear the INI cache and restart Velocity's workers.
(Changing settings)
Map of the database administrator pages #
Orientation #
Engines #
| Page | What it helps you do |
|---|
| SQLite 3 for database administrators | Understand the driver, its files, PRAGMAs and WAL |
| SQLite: the write queue and locking | Handle concurrent publishing and lock timeouts |
| SQLite maintenance | Run ANALYZE, VACUUM, WAL checkpoints and integrity checks |
| SQLite files, ownership and permissions | Set up the files so every process can write them |
| Setting up PostgreSQL, Operating PostgreSQL | Create the database, pgcrypto, sequences and case |
| Setting up MySQL and MariaDB | Create the database and the account |
| MySQL and MariaDB: utf8mb4, the connection charset and InnoDB | Get character sets and table types right |
| MySQL and MariaDB read replicas | Send reads to replicas |
| Setting up MongoDB, MongoDB: limits and operations | Run MongoDB and know what the adapter cannot do |
| Setting up Oracle with ezoracle | Prepare an Oracle schema |
| Oracle: persistent connections, DRCP and tuning | Pool and tune Oracle sessions |
| Oracle maintenance commands and cronjobs | Use the ext:ezoracle commands and cronjobs |
| Microsoft SQL Server: status for DBAs | Answer the SQL Server question correctly |
Security and schema #
Backups, upgrades and moves #
Troubleshooting and reference #
Pages from other audiences you will use #
| Page | Why a database administrator reads it |
|---|
| Database support | The project's support statement for every engine |
| Chapter 9, Databases | The operator's reference behind these pages |
| Admin tour, Logging into the admin | Find Setup > System information, Upgrade check, Sessions and Cronjobs |
| Security hardening | The security of the whole site |
| Operating a site, Upgrading, Upgrade check, System information, Sessions, Cronjobs, Caches | The administrators' guides your work touches |
| Hosting companies: start here | The hosting side: servers, panels, backups, runbooks |
| Databases in the official order, Database backups per engine, Changing the database engine, Clustering and shared storage | The same topics from a host's point of view |
| When something goes wrong | Where to get help |
| Free documentation | What you may do with these pages |
Finding these pages again #
- In the help, filter by the audience Database administrators or the category Database administration, or
open All pages and the folder
database-administrators. - Each page has Edit on GitHub. If a fact here is wrong or out of date, tell us there or on the
software tracker.
Related pages #
Become an Exponential Partner
Partners share their information, provide funding, contribute back and
develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for
mid-2027: please become a partner today to speed up our growth rate and land new features faster.