Mongo при работе не особождает место на блочном устройстве при удалении данных из БД.

Рассмотрим ситуацию что необходимо освободить место на хосте который работает "мастером" инсталяции.

Полное описание здесь:  rs.stepDown




stepDownSecsnumber

The number of seconds to step down the primary, during which time the stepdown member is ineligible for becoming primary. If you specify a non-numeric value, the command uses 60 seconds.

The stepdown period starts from the time that the mongod receives the command. The stepdown period must be greater than the secondaryCatchUpPeriodSecs.

secondaryCatchUpPeriodSecsnumber

Optional. The number of seconds that mongod will wait for an electable secondary to catch up to the primary.

When specified, secondaryCatchUpPeriodSecs overrides the default wait time of 10 seconds.

Алгоритм:

  1. Залогиниться на нод с мастером с правами админа

    mongo -u root -p XXXX --authenticationDatabase admin <nocbase>
  2. Выполнить rs.stepDown с параметром 300

    sova:PRIMARY> rs.stepDown(300)
    
    DB.prototype.runCommand@src/mongo/shell/db.js:168:1
    DB.prototype.adminCommand@src/mongo/shell/db.js:186:16
    rs.stepDown@src/mongo/shell/utils.js:1352:12
    @(shell):1:1
    2020-02-05T14:04:43.657+0300 I NETWORK  [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
    2020-02-05T14:04:43.791+0300 I NETWORK  [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) ok
    noc:SECONDARY> 
    ....
    noc:PRIMARY> 
    
    
  3. Дождаться когда все операции запили переключатся на соседнюю ноду (видно переключения операций записи с первой ноды на третью и возвращение операций записи обратно на первую. Бирюзовый график)
  4. Остановить сервис монги
  5. Удалить файлы БД на блочном устройстве.
  6. Запустить сервис mongo и проследить что запуск закончился успешно

    # systemctl status mongod
    ● mongod.service - MongoDB Database Server
       Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2019-09-11 02:40:16 MSK; 4 months 25 days ago
         Docs: https://docs.mongodb.org/manual
     Main PID: 6393 (mongod)
       Memory: 97.1G
       CGroup: /system.slice/mongod.service
               └─6393 /usr/bin/mongod -f /etc/mongod.conf
    
    # journalctl -f -u mongod
  7. Синхронизация запустится автоматически
  8. Дождаться завершения копирования всех файлов
  9. Проследить что операции записи перешли на текущий сервер

Запуск с параметрами stepDownSecs около 300 оставляет достаточно времени чтобы после переключения мастера остановить сервис.

  • No labels