.. _database_container: ******** Database ******** .. _database_creation: Creation and Initialization =========================== Starting from the Callisto version, the database on the **XiVO PBX** and **all mediaservers** is started inside a docker container based on custom image. On first startup the database will be initialized and the required structure and data will be created inside a host mounted folder ``/var/lib/postgresql/11/main/``. .. _database_configuration: Custom database configuration ============================= The database image contains a default postgres configuration and some specific defaults required by our application: * the postgres default configuration is located in :file:`/var/lib/postgresql/11/main/postgresql.conf` * and our custom defaults are in :file:`/var/lib/postgresql/11/main/conf.d/00-xivo-default.conf`. .. warning:: Do not change these files! If you need to change some parameters, create another file in :file:`/var/lib/postgresql/11/main/conf.d/` prefixed with a number like ``01`` or upper and with a ``.conf`` extension. This file will be loaded after all defaults and can override any parameter. Sample configuration -------------------- Here is an example to increase the default number of concurrent connection to the database: :file:`/var/lib/postgresql/11/main/conf.d/10-custom-max-connection.conf`:: max_connections = 300 Apply the configuration ----------------------- Run this command to reload postgres configuration:: xivo-dcomp reload-db It will not restart db container despite the message *"Killing xivo_db_1"*. Files path summary table ======================== +------------------------+-------------------------------------+-------------------------------------------------------------------------------------------------------+ | File | Path | Comment | +========================+=====================================+=======================================================================================================+ | postgresql.conf | /var/lib/postgresql/11/main/ | Please, do not edit this file but use overriding mechanism explained in :ref:`database_configuration` | +------------------------+-------------------------------------+-------------------------------------------------------------------------------------------------------+ | conf.d files | /var/lib/postgresql/11/main/conf.d/ | Files are handled in Lexicographical order | +------------------------+-------------------------------------+-------------------------------------------------------------------------------------------------------+ | pg_hba.conf | /var/lib/postgresql/11/main/ | Configure connection authorization in this file | +------------------------+-------------------------------------+-------------------------------------------------------------------------------------------------------+ | postgresql-11-main.log | /var/log/postgresql/ | Database log file. | +------------------------+-------------------------------------+-------------------------------------------------------------------------------------------------------+ .. _replication_schema: Connections to database and replication schema ============================================== This schema shows required database connections between different types of servers. These connections must be authorized in ``pg_hba.conf`` file. It is being done automatically or it is described in installation or upgrade documentation. It also shows how asterisk database is replicated. Only *configuration* tables are replicated between asterisk databases and only *event* tables (cel and queue_log) are replicated to stats database. .. figure:: images/db_connections.png :scale: 100%