Database administration

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