Если вы забыли / не знаете пароль администратора (admin) интерфейса сервера, его можно сбросить в значение по умолчанию (admin) путем правки базы данных:
root@qow-clients:/home/qow/logs# mongo qos_db
MongoDB shell version v4.4.10
...
---
> db.user.update({"username" : "admin"}, {$set:{"password" : "$2a$10$t5TI2p94yakRGIAOQygoUO258u.rTbohYR7Ix0CkVIChQwKXVhxHG",}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Состояние БД
Для контроля состояния БД используется страница Администрирование/Статистика БД или специальные средства администратора для MongoDB.
На странице "Статистика БД" можно увидеть коллекции и индексы базы данных и оценить их размер и состав. При необходимости индексы для выбранной коллекции можно пересоздать при помощи ссылки "recreate", доступной к колонке "Индексы".
Ограничение "глубины" хранения данных
Для предотвращения неконтролируемого разрастания БД используются TTL-индексы. Для коллекций созданы скрипты для пересоздания TTL-индексов (они же используются при переиндексации коллекций, упомянутой в предыдущем разделе). "Время жизни" данных. задается в секундах. При необходимости использовать определенные значения TTL (Time To Live, время жизни), администратор системы может задать их значения в диапазоне от 2592000 до 15552000 (30 - 180 дней) при помощи параметра com.netams.database.ttl.seconds.
Например
com.netams.database.ttl.seconds=2628000
Если параметр com.netams.database.ttl.seconds не задан, будут использованы наши значения по умолчанию, удобные в большинстве случаев. При наличии корректного значения параметра после пересоздания индекса время жизни записей во всех коллекциях с TTL-индексами будет одинаковым.
В случае отсутствия рекомендованного TTL-индекса в коллекции, на странице "Статистика БД" будет отображаться предупредительное сообщение для соответствующей коллекции.
Ограничение глубины хранения данных при помощи планировщика задач и индивидуальных настроек коллекций
Возможна настройка числа дней хранения данных в отдельных коллекциях независимо от индексов и их настроек TTL
Для ряда коллекций можно указать время хранения записей (поле "createdAt" сравнивается с текущей датой) в днях. При нажатии на ссылку "Редактировать" в колонке "Глубина хранения" для соответствующей коллекции открывается диалог для редактирования числа дней хранения записей. Непосредственно удаление записей выполняется фоновым процессом сервера, время срабатывания можно настроить при помощи параметра "com.netams.database.ttl.schedule.cron" в application.properties. Примеры значений;
0 2 * * * * - ежедневно в 2 часа
0 * * * * * - каждый час
- - отключено (дефис, т.е. com.netams.database.ttl.schedule.cron=-)
Для каждой коллекции можно задать комбинацию настроек времени хранения, позволяющую хранить в одной коллекции данных разного типа в течение разного времени. Например:
настройки для хранения данных в коллекции accessPointSignalLevel. Записи без указания значения true в поле aggregated (обычные данные) сохраняются 14 дней, любые записи (независимо от того, что указано в aggregated) хранятся 180 дней. То есть, исходные данные сохраняем 2 недели, но агрегированные (их значительно меньше) сохраняем в течение полугода. При указании нескольких условий, они объединяются условием "И". С проверкой по "createdAt" тоже. То есть "aggregated = false AND createdAt < (now - 14 days)".
- Условие для TTL: aggregated = false
Поле: createdAt TTL: 14days - Условие для TTL:
Поле: createdAt TTL: 180days