Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Database administrators: start here

Where database administrators start with Exponential. The six supported engines in one paragraph, a first fifteen minutes, the rules every DBA keeps, and a map of every page for database administrators, from engine…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/database-administrators/database-administrators-start-here.md

On this page

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

  1. Exponential's database in one paragraph
  2. Your first fifteen minutes
  3. Six rules for every database
  4. Map of the database administrator pages
  5. Pages from other audiences you will use
  6. 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

  1. 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.
  2. Read the layer (5 minutes): The database layer in one page.
  3. Read your engine's setup page (5 minutes): from the map below.
  4. Check the backups (3 minutes): Backups per engine.

Then follow the reading path.

Six rules for every database

  1. Never edit shipped files. Settings go into settings/override/; schema changes come from update files.
  2. One account per site, least privilege, never root. (Accounts)
  3. UTF-8 everywhere: utf8mb4, UTF8, AL32UTF8. (Character sets)
  4. Back up the database and the files together, and test the restore. (Backups)
  5. After any write outside Exponential, clear the caches, the SQL query cache included. (Query cache)
  6. After a settings change, clear the INI cache and restart Velocity's workers. (Changing settings)

Map of the database administrator pages

Orientation

PageWhat it helps you do
The database layer in one pageUnderstand eZDB, the drivers, the schema handlers and what is stored where
Supported engines and versionsState supported versions and know what CI tests
Choosing an enginePick the right database for a site
PHP extensions per engineMake sure every PHP has the driver extension
The DatabaseSettings referenceLook up every connection setting
Reading and changing database settingsRead the value in effect and change it safely

Engines

PageWhat it helps you do
SQLite 3 for database administratorsUnderstand the driver, its files, PRAGMAs and WAL
SQLite: the write queue and lockingHandle concurrent publishing and lock timeouts
SQLite maintenanceRun ANALYZE, VACUUM, WAL checkpoints and integrity checks
SQLite files, ownership and permissionsSet up the files so every process can write them
Setting up PostgreSQL, Operating PostgreSQLCreate the database, pgcrypto, sequences and case
Setting up MySQL and MariaDBCreate the database and the account
MySQL and MariaDB: utf8mb4, the connection charset and InnoDBGet character sets and table types right
MySQL and MariaDB read replicasSend reads to replicas
Setting up MongoDB, MongoDB: limits and operationsRun MongoDB and know what the adapter cannot do
Setting up Oracle with ezoraclePrepare an Oracle schema
Oracle: persistent connections, DRCP and tuningPool and tune Oracle sessions
Oracle maintenance commands and cronjobsUse the ext:ezoracle commands and cronjobs
Microsoft SQL Server: status for DBAsAnswer the SQL Server question correctly

Security and schema

PageWhat it helps you do
Character sets and collationsCreate UTF-8 databases and handle case
Database accounts and privilegesGrant the least privileges that work
Securing the databaseProtect credentials, network access and backups
The .dba schema format and the shipped schema filesKnow where the schema comes from
Schema tools: dump, insert and diffUse ezsqldumpschema, ezsqlinsertschema and ezsqldiff
The tables a database administrator should knowFind your way in the kernel's tables

Backups, upgrades and moves

PageWhat it helps you do
Backups per engineBack up each engine consistently
Restoring a databaseRestore and test restores
Upgrades and the SQL update filesApply the right update files in the right order
Applying the 6.0.15 database updateBring a 6.0.x database to 6.0.15
Checking the schema after an upgradeVerify the schema with the upgrade check and ezsqldiff
Moving a site to another engineChange the database engine of a running site

Operations and performance

PageWhat it helps you do
Sessions in the databaseDecide where sessions live and clean them up
The built-in search index tablesLook after the search index and its queue
Housekeeping: cronjobs and queue tablesKeep queues moving and tables tidy
The SQL query cacheUse the query cache safely
Finding slow queriesFind the statements that make a page slow
Performance and scalingApply the levers in the right order
Clustering: DFS and its metadata databaseRun the database side of a multi-server cluster
Monitoring the databaseSet up checks and alerts

Troubleshooting and reference

PageWhat it helps you do
Troubleshooting database errorsGo from a symptom to its fix
Database error codes and messagesRead error numbers and messages
Reviewing extension SQL for every engineApprove an extension for a non-MySQL site
Database FAQGet quick answers
Checklists for database administratorsFollow a routine step by step
Glossary for database administratorsLook up a term
A reading path for database administratorsLearn the pages in a sensible order

Pages from other audiences you will use

PageWhy a database administrator reads it
Database supportThe project's support statement for every engine
Chapter 9, DatabasesThe operator's reference behind these pages
Admin tour, Logging into the adminFind Setup > System information, Upgrade check, Sessions and Cronjobs
Security hardeningThe security of the whole site
Operating a site, Upgrading, Upgrade check, System information, Sessions, Cronjobs, CachesThe administrators' guides your work touches
Hosting companies: start hereThe hosting side: servers, panels, backups, runbooks
Databases in the official order, Database backups per engine, Changing the database engine, Clustering and shared storageThe same topics from a host's point of view
When something goes wrongWhere to get help
Free documentationWhat 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.

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x