DBAtlas · Atlas de operaciones de bases de datos

Establecer el nivel de compatibilidad / versión de funciones

Oracle

-- Raise the COMPATIBLE initialization parameter (irreversible!):
ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
-- Then restart the instance. To see the current value:
SHOW PARAMETER compatible;

El parámetro COMPATIBLE determina qué funciones y formatos de archivo de cada versión están habilitados. Una vez subido y reiniciada la instancia, NO SE PUEDE REVERTIR (el downgrade queda bloqueado); por eso súbalo de forma gradual hasta confirmar el éxito de la actualización.

PostgreSQL

# Not applicable: PostgreSQL has no database compatibility level.
# If legacy behavior is needed, set the relevant GUCs (e.g. SET standard_conforming_strings=off)
# or manage the major migration with dump/restore.

PostgreSQL no tiene un concepto de 'nivel de compatibilidad' como SQL Server/Oracle; el comportamiento de la versión está ligado directamente a la versión binaria. La migración entre versiones se hace con pg_dump/pg_restore o pg_upgrade.

MySQL

# Not applicable: MySQL has no configurable database compatibility level.
# Behavioral differences are managed with sql_mode:
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

MySQL no tiene un nivel de compatibilidad por versión; el comportamiento SQL depende sobre todo de la versión binaria y de la configuración de sql_mode. Ajuste sql_mode para conservar el comportamiento de aplicaciones heredadas.

SQL Server

-- Set the database compatibility level (e.g. SQL Server 2022 = 160):
ALTER DATABASE Sales SET COMPATIBILITY_LEVEL = 160;
-- To see the current value:
SELECT name, compatibility_level FROM sys.databases;

COMPATIBILITY_LEVEL determina a qué versión se asemeja el comportamiento del optimizador de consultas y de las funciones del lenguaje (150=2019, 160=2022). Tras actualizar la instancia, las bases de datos pueden quedarse en el nivel antiguo; se recomienda subirlo de forma gradual y vigilar las regresiones de planes. Se puede volver a bajar.

MongoDB

// Set the Feature Compatibility Version (FCV):
db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })
// Read the current value:
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })

El FCV controla cuándo se habilitan los cambios de formato de datos persistentes y las nuevas funciones que trae una versión. Súbalo tras la actualización binaria con el clúster estable; bajarlo solo es posible si la misma versión binaria sigue admitiendo el FCV inferior.

Redis

# Not applicable: Redis has no compatibility level / feature version concept.
# Behavior depends directly on the running binary version.

Redis no tiene un nivel de compatibilidad configurable; el conjunto de funciones depende por completo de la versión en ejecución. La compatibilidad solo se mantiene a nivel del formato de archivo RDB/AOF, hacia adelante.

Elasticsearch

# Not applicable: Elasticsearch has no configurable compatibility level.
# An index is tied to the format of the version it was created in; very old indices
# cannot be read in the new version and require a reindex.

Elasticsearch no tiene un ajuste de nivel de compatibilidad; cada índice conserva el formato de la versión mayor en la que se creó. Los índices creados en la versión mayor anterior se pueden leer, mientras que los más antiguos deben pasarse a la nueva versión con _reindex.

Abrir en DBAtlas →