Обновление мажорной версии
Oracle
# Recommended: AutoUpgrade (analyze + fixups + deploy in a single flow):
$ java -jar $NEW_ORACLE_HOME/rdbms/admin/autoupgrade.jar -config db.cfg -mode deploy
# Graphical alternative: DBUA (Database Upgrade Assistant)
$ $NEW_ORACLE_HOME/bin/dbuaAutoUpgrade одной командой выполняет анализ, предварительные исправления, обновление и пост-шаги; может обрабатывать несколько баз последовательно, сокращая простой. DBUA делает то же через пошаговый интерфейс. Полный бэкап перед этим обязателен.
PostgreSQL
# pg_upgrade to the new major version (with both clusters stopped):
$ pg_upgrade \
--old-datadir=/var/lib/pgsql/16/data \
--new-datadir=/var/lib/pgsql/17/data \
--old-bindir=/usr/pgsql-16/bin \
--new-bindir=/usr/pgsql-17/bin \
--link # fast migration with hard links
# Then gather statistics (analyze_new_cluster.sh was removed in PG14):
$ vacuumdb --all --analyze-in-stagespg_upgrade выполняет переход на мажорную версию (16 -> 17) на месте; режим --link сокращает время, создавая жёсткие ссылки вместо копирования файлов, но делает старый кластер непригодным. После перехода статистику нужно собрать заново.
MySQL
# In-place upgrade (same datadir, new binaries):
$ sudo systemctl stop mysqld
$ sudo dnf install mysql-community-server-8.4 # replacing the old package
$ sudo systemctl start mysqld # the server upgrades the dictionary automaticallyНачиная с MySQL 8.x поддерживаются мажорные обновления на месте: сервер, запущенный с новыми бинарными файлами, автоматически преобразует словарь данных и системные таблицы (старый отдельный шаг mysql_upgrade удалён). Обновляйтесь по одной мажорной версии за раз.
SQL Server
-- In-place major version upgrade (with setup):
-- setup.exe /q /ACTION=upgrade /INSTANCENAME=MSSQLSERVER
-- /IAcceptSQLServerLicenseTerms
-- Alternative: install a new instance side by side and move the databases (restore/attach).setup /ACTION=upgrade обновляет экземпляр на месте до новой мажорной версии. Более безопасный способ — параллельная установка (side-by-side), затем перенос баз через backup/restore и повышение уровня совместимости отдельным шагом.
MongoDB
// Stepwise major upgrade (e.g. 6.0 -> 7.0), one major version at a time:
// 1) Roll the binary to 7.0 on all nodes
// 2) Once the cluster is stable, raise the FCV:
db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })Мажорное обновление в MongoDB проходит в два этапа: сначала бинарные файлы всех узлов поочерёдно переводятся на новую версию, затем, когда кластер стабилен, FCV повышается до новой версии. Подниматься можно только на одну мажорную версию за раз; FCV управляется отдельно, чтобы сохранить возможность отката.
Redis
# Major upgrade via a replica (no downtime):
# 1) Create a replica on the new version, wait for full sync from the master
# 2) Prepare the application; fail over the master:
redis-cli -h <new-replica> REPLICAOF NO ONE # make the new version the master
# 3) Upgrade the old master, attach it as a replica of the new masterПереход Redis на мажорную версию (6.x -> 7.x) выполняется так: на новой версии поднимается реплика, синхронизируется и затем повышается до master; простой записи таким образом сводится почти к нулю. Файлы RDB совместимы с последующими версиями.
Elasticsearch
# Major versions cannot be skipped; one major at a time, via the last minor first (e.g. 6.8 -> 7.17 -> 8.x):
# 1) Upgrade to the last minor (7.17), resolve the GET _migration/deprecations warnings
# 2) Rolling upgrade, per node: set allocation to "primaries" -> update the node -> start -> wait for green
# Alternative: full-cluster restart (stop all nodes -> upgrade -> start together); this also moves only one majorElasticsearch ни одним способом не поддерживает пропуск мажорных версий: и rolling upgrade, и full-cluster restart переходят только на следующую мажорную (n -> n+1) и требуют, чтобы источник был на последней минорной (напр. 7.17). Индексы, созданные двумя мажорными версиями ранее (напр. в 6.x), в новой версии не открываются; их нужно пересоздать через _reindex до перехода (8.x может читать их лишь ограниченно, как read-only архивные индексы). Перед переходом сделайте снимок и устраните предупреждения об устаревании.