Это старая версия документа!
2 Администрирование БД
Встроенная БД не требует администрирования и устойчива к отказам. Тем не менее в редких случаях происходило повреждение встроенной БД. В этом случае возможны следующие варианты действий:
- восстановление БД с переносом данным
Останавливаем 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
- удаление БД и загрузка в нее данных заново из внешнего источника (биллинга и т.п.)
Останавливаем dpi service fastdpi stop Удаляем БД /bin/rm /var/db/dpi/* Запускаем dpi service fastdpi start Загружаем в БД заново все настройки с помощью своих скриптов
Экспериментально:
- восстановление БД в формат команд 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
- восстановление отдельных таблиц БД в формат команд 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 |