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

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


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

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

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