Администрирование БД [Документация VAS Experts]

Это старая версия документа!


2 Администрирование БД

Активация встроенной БД

UDR (встроенная БД, user data repository) предназначен для постоянного хранения данных об услугах и настройках полисинга для абонентов оператора.

Активация UDR требуется в обязательном порядке при использовании динамических IP адресов и для поддержки абонентов с несколькими IP.

Активация UDR осуществляется настроечным параметром в файле /etc/dpi/fastdpi.conf

udr=1

Созданная база данных размещается в каталоге /var/db/dpi

Встроенная БД не требует администрирования и устойчива к отказам. Тем не менее в редких случаях происходило повреждение встроенной БД. В этом случае возможны следующие варианты действий:

  1. Восстановление БД с переносом данным:
    Останавливаем dpi
     service fastdpi stop

    Выполняем скрипт

    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/

    Запускаем dpi

     service fastdpi start 
  2. Удаление БД и загрузка в нее данных заново из внешнего источника (биллинга и т.п.)
    Останавливаем dpi
     service fastdpi stop 

    Удаляем БД

     /bin/rm /var/db/dpi/* 

    Запускаем dpi

     service fastdpi start 

    Загружаем в БД заново все настройки с помощью своих скриптов

:!: Экспериментально:

  1. восстановление БД в формат команд fdpi_ctrl
    Останавливаем dpi
     service fastdpi stop 

    Выполняем скрипт

    mdb_dump -p -a -f dump.sh /var/db/dpi
    /bin/rm /var/db/dpi/*

    Запускаем dpi

     service fastdpi start 

    Запускаем скрипт

    chmod +x dump.sh
    ./dump.sh
  2. восстановление отдельных таблиц БД в формат команд fdpi_ctrl
    Останавливаем dpi
     service fastdpi stop 

    Выполняем скрипт

    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/*

    Запускаем dpi

    service fastdpi start 

    Выбираем нужные нам скрипты и запускаем, пример

    chmod +x dump.bindings.sh
    ./dump.bindings.sh
Примечание: сделать копию БД можно без остановки dpi командой резервного копирования
mdb_copy /var/db/dpi ./DB

и выполнять дальнейшие манипуляции над копией БД

По умолчанию размер БД ограничен 1G, если у вас количество профилей полисинга превышает 1 млн, то потребуется увеличить размер по умолчанию:

udr_size=2147483648

установит размер БД в 2GB

Список таблиц в БД

Таблица Назначение
bindings Связь login и адреса
bindings_multi Связь login и адреса для мультиабонентов (с несколькими IP)
policing Настройки полисинга для абонентов
profile_names Имена профилей
profiles Профили услуг и полисинга
services Настройки услуг для абонентов
vchannel_policing Настройки полисинга для каналов
ip_props Свойства абонентов BRAS