Перейти к основному содержимому
Версия: 7.0

Windows Server

осторожно
  • Если используется репликационный набор — обратитесь в техническую поддержку Пассворка для корректного обновления и сохранения данных.
  • Если Пассворк установлен на виртуальном сервере, рекомендуется создать виртуальный снимок ОС перед обновлением.

Подготовка и удаление устаревшей версии

Создание резервной копии

По умолчанию утилиты администрирования MongoDB не расположены в переменном окружении $PATH. Поиск утилит необходимо выполнить с помощью PowerShell.

Открыть PowerShell от имени администратора:

  • Нажать правой кнопкой мыши на значок Пуск в левом нижнем углу экрана;
  • Выбрать Windows PowerShell (администратор) в контекстном меню.

Выполнить поиск утилит администрирования:

$utilityPath = Get-ChildItem -Path "C:\" -Filter "mongodump.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1; $utilityDirectory = $utilityPath.DirectoryName; cd $utilityDirectory
к сведению

Если MongoDB и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре -Path

После выполнения произойдет смена текущей рабочей директории на новую, в которой расположены утилиты. Для проверки выполнить:

dir

Создать директорию:

mkdir C:\backup\

Создать резервную копию:

$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --out "C:\backup\mongo-$timestamp"
к сведению

Утилиты mongodump и mongorestore расположены в одной директории установки MongoDB 4.x.

Удаление

Остановить службу:

net stop MongoDB

Удалить базу данных:

sc.exe delete "MongoDB"

Удалить директорию с содержимым базы данных:

if (Test-Path "$env:ProgramFiles\MongoDB") {
Remove-Item -Path "$env:ProgramFiles\MongoDB" -Recurse -Force
Write-Host "Директория MongoDB удалена." -ForegroundColor Green
} else {
Write-Host "Директория MongoDB не найдена."
}

Выполнить поиск MongoDB в реестре:

$mongo = Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | Where-Object {
($_ | Get-ItemProperty).DisplayName -like "*MongoDB*"
}

Удалить запись из реестра:

if ($mongo) {
$mongo.PSPath | Remove-Item -Recurse -Force
Write-Host "Запись удалена из реестра" -ForegroundColor Green
} else {
Write-Host "Запись с DisplayName не найдена"
}

Установка и восстановление резервной копии

Установка

Загрузить установщик MongoDB:

try {
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/windows_packages/mongodb_database_latest.msi", "$env:SystemDrive\Windows\Temp\mongodb_database_latest.msi")
Write-Host "MongoDB успешно загружен" -ForegroundColor Green
} catch {
Write-Host "Ошибка при загрузке MongoDB: $_" -ForegroundColor Red
}
к сведению

Вы также можете скачать инсталлятор вручную

Установить MongoDB по умолчанию:

try {
Start-Process -FilePath "msiexec.exe" -ArgumentList "/l*v", "$env:SystemDrive\Windows\Temp\mdbinstall.log", "/qb", "/i", "$env:SystemDrive\Windows\Temp\mongodb_database_latest.msi", "SHOULD_INSTALL_COMPASS=0", "ADDLOCAL=Router,ServerService" -Wait -ErrorAction Stop
} catch {
Write-Host "Ошибка установки MongoDB: $_." -ForegroundColor Red
}
к сведению

Для установки MongoDB на другой диск нужно добавить "INSTALLLOCATION=A:\MongoDB"

Создать директорию для утилит администрирования MongoDB:

if (-not (Test-Path "$env:ProgramFiles\MongoDB\Tools\")) {
New-Item -ItemType Directory -Force -Path "$env:ProgramFiles\MongoDB\Tools\"
Write-Host "Директория успешно создана" -ForegroundColor Green
} else {
Write-Host "Директория уже существует"
}

Загрузить утилиты администрирования:

try {
(New-Object System.Net.WebClient).DownloadFile(
"https://repos.passwork.ru/repository/windows_packages/database_tools_latest.zip",
"$env:SystemDrive\Windows\Temp\database_tools_latest.zip"
)
Write-Host "Утилиты администрирования загружены" -ForegroundColor Green
} catch {
Write-Host "Ошибка загрузки утилит администрирования: $_" -ForegroundColor Red
}
к сведению

Вы также можете скачать утилиты вручную

Разархивировать содержимое:

Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\database_tools_latest.zip" `
-DestinationPath "$env:ProgramFiles\MongoDB\Tools\"

Выполнить проверку подключения к shell-оболочке:

cd "$env:ProgramFiles\MongoDB\Tools\"
.\mongosh mongodb://localhost:27017

Восстановление резервной копии

Если подключение к shell-оболочке успешно, восстановить базы данных из резервной копии:

cd "$env:ProgramFiles\MongoDB\Tools\"
.\mongorestore --drop "C:\backup\mongo-xxxx-xx-xx_xx-xx"

Открыть Пассворк для проверки корректной работы.