Windows Server
- Если используется репликационный набор — обратитесь в техническую поддержку Пассворка для корректного обновления и сохранения данных.
- Если Пассворк установлен на виртуальном сервере, рекомендуется создать виртуальный снимок ОС перед обновлением.
Подготовка и удаление устаревшей версии
Создание резервной копии
По умолчанию утилиты администрирования MongoDB не расположены в переменном окружении $PATH. Поиск утилит необходимо выполнить с помощью PowerShell.
Открыть PowerShell от имени администратора:
- Нажать правой кнопкой мыши на значок Пуск в левом нижнем углу экрана;
- Выбрать Windows PowerShell (администратор) в контекстном меню.
Выполнить поиск утилит администрирования:
- PowerShell
$utilityPath = Get-ChildItem -Path "C:\" -Filter "mongodump.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1; $utilityDirectory = $utilityPath.DirectoryName; cd $utilityDirectory
Если MongoDB и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре -Path
После выполнения произойдет смена текущей рабочей директории на новую, в которой расположены утилиты. Для проверки выполнить:
- PowerShell
dir
Создать директорию:
- PowerShell
mkdir C:\backup\
Создать резервную копию:
- PowerShell
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --out "C:\backup\mongo-$timestamp"
Утилиты mongodump и mongorestore расположены в одной директории установки MongoDB 4.x.
Удаление
Остановить службу:
- PowerShell
net stop MongoDB
Удалить базу данных:
- PowerShell
sc.exe delete "MongoDB"
Удалить директорию с содержимым базы данных:
- PowerShell
if (Test-Path "$env:ProgramFiles\MongoDB") {
Remove-Item -Path "$env:ProgramFiles\MongoDB" -Recurse -Force
Write-Host "Директория MongoDB удалена." -ForegroundColor Green
} else {
Write-Host "Директория MongoDB не найдена."
}
Выполнить поиск MongoDB в реестре:
- PowerShell
$mongo = Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | Where-Object {
($_ | Get-ItemProperty).DisplayName -like "*MongoDB*"
}
Удалить запись из реестра:
- PowerShell
if ($mongo) {
$mongo.PSPath | Remove-Item -Recurse -Force
Write-Host "Запись удалена из реестра" -ForegroundColor Green
} else {
Write-Host "Запись с DisplayName не найдена"
}
Установка и восстановление резервной копии
Установка
Загрузить установщик MongoDB:
- PowerShell
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 по умолчанию:
- PowerShell
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:
- PowerShell
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 "Директория уже существует"
}
Загрузить утилиты администрирования:
- PowerShell
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
}
Вы также можете скачать утилиты вручную
Разархивировать содержимое:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\database_tools_latest.zip" `
-DestinationPath "$env:ProgramFiles\MongoDB\Tools\"
Выполнить проверку подключения к shell-оболочке:
- PowerShell
cd "$env:ProgramFiles\MongoDB\Tools\"
.\mongosh mongodb://localhost:27017
Восстановление резервной копии
Если подключение к shell-оболочке успешно, восстановить базы данных из резервной копии:
- PowerShell
cd "$env:ProgramFiles\MongoDB\Tools\"
.\mongorestore --drop "C:\backup\mongo-xxxx-xx-xx_xx-xx"
Открыть Пассворк для проверки корректной работы.