====== Database administration ======
{{indexmenu_n>2}}
UDR (built-in database, user data repository) is used for permanent storage of data on services and policing settings for the subscribers.
**List of database tables**
^ Table ^ Purpose ^
|bindings| login and address binding|
|bindings_multi| login and address binding for multu-subscribers (with several IPs)|
|policing| Subscriber policing setting|
|profile_names| Names of profiles|
|profiles| Profiles of services and policing|
|services| Subscriber services setting|
|vchannel_policing| Channel policing setting|
|ip_props| BRAS subscriber properties|
==== Activating the built-in database ====
UDR activation is required to support dynamic IPs and subscribers with several IPs.
UDR is activated by the configuration parameter in **///etc/dpi/fastdpi.conf//** file.
udr=1
The created database is located in the **///var/db/dpi//** directory
You can make a copy of the database without stopping the DPI with a backup command
mdb_copy/var/db/dpi./DB
and handle further manipulations in the copied database.
==== Enlarging the DB ====
By default, the database size is limited to 1GB. If you have more than 1 million policing profiles, you will need to increase the default size:
udr_size=2147483648
will set the DB size of 2GB.
The built-in database does not require administration and is fault tolerant. However, in rare cases, damage to the embedded database occurred. In this case, one of the following options is possible.
==== Database recovery with data transfer ====
Stop the fastDPI
service fastdpi stop
Run the script
rm -rf /var/db/dpi.recover/*
mkdir -p /var/db/dpi.recover/tmp
for table in $(mdb_dump -l /var/db/dpi); do
mdb_dump -f /var/db/dpi.recover/tmp/dump.$table.load -s $table /var/db/dpi
mdb_load -f /var/db/dpi.recover/tmp/dump.$table.load /var/db/dpi.recover
done
rm /var/db/dpi/lock.mdb
mv /var/db/dpi/data.mdb /var/db/dpi.recover/data.mdb.backup
cp -f /var/db/dpi.recover/data.mdb /var/db/dpi/
Start the fastDPI
service fastdpi start
==== Deleting a database and reloading data back from an external source (billing, etc.) ====
Stop the fastDPI
service fastdpi stop
Delete the DB
/bin/rm /var/db/dpi/*
Start the fastDPI
service fastdpi start
Reload all the settings into the database using own scripts.
===== Experimental Section =====
==== Restoring a database to the fdpi_ctrl command format ====
Stop the fastDPI
service fastdpi stop
Run the script
mdb_dump -p -a -f dump.sh /var/db/dpi
/bin/rm /var/db/dpi/*
Start the fastDPI
service fastdpi start
Run the script
chmod +x dump.sh
./dump.sh
==== Restoring certain tables to the fdpi_ctrl command format ====
Stop the fastDPI
service fastdpi stop
Run the script
for table in $(mdb_dump -l /var/db/dpi); do
mdb_dump -p -f dump.$table.sh -s $table /var/db/dpi
done
/bin/rm /var/db/dpi/*
Start the fastDPI
service fastdpi start
Choose and run the scripts you need, **for example**
chmod +x dump.bindings.sh
./dump.bindings.sh