Actualización del clúster de base de datos a una nueva versión - Amazon Aurora

Actualización del clúster de base de datos a una nueva versión

Las nuevas versiones de Babelfish están disponibles con algunas versiones nuevas del motor de base de datos Aurora PostgreSQL después de la versión 13.4. Cada nueva versión de Babelfish tiene su propio número de versión. Al igual que con Aurora PostgreSQL, Babelfish usa el esquema de nomenclatura principal.secundaria.revisión para las versiones. Por ejemplo, la primera versión de Babelfish, la versión 1.0.0, estuvo disponible como parte de Aurora PostgreSQL 13.4.0.

Babelfish no requiere un proceso de instalación independiente. Como se explica en Creación de un clúster de base de datos de Babelfish para Aurora PostgreSQL, Turn on Babelfish (Activar Babelfish) es una opción que se elige al crear un clúster de base de datos de Aurora PostgreSQL.

Del mismo modo, no puede actualizar Babelfish independientemente del clúster de base de datos de Aurora que es compatible. Para actualizar un clúster de base de datos de Babelfish para Aurora PostgreSQL existente a una nueva versión de Babelfish, actualice el clúster de base de datos de Aurora PostgreSQL a una nueva versión que sea compatible con la versión de Babelfish que desee utilizar. El procedimiento que siga para la actualización depende de la versión de Aurora PostgreSQL que sea compatible con la implementación de Babelfish, tal y como se indica a continuación.

Actualizaciones de la versión principal

Debe actualizar las siguientes versiones de Aurora PostgreSQL a Aurora PostgreSQL 14.6 o una versión posterior antes de actualizar a Aurora PostgreSQL 15.2.

  • Aurora PostgreSQL 13.8 y todas las versiones posteriores

  • Aurora PostgreSQL 13.7.1 y todas las versiones secundarias posteriores

  • Aurora PostgreSQL 13.6.4 y todas las versiones secundarias posteriores

Puede actualizar Aurora PostgreSQL 14.6 y versiones posteriores a Aurora PostgreSQL 15.2 y versiones posteriores.

La actualización de un clúster de base de datos de Aurora PostgreSQL a una nueva versión principal implica varias tareas preliminares. Para obtener más información, consulte Cómo realizar una actualización de versión principal. Para actualizar correctamente su clúster de base de datos de Babelfish para Aurora PostgreSQL, debe crear un grupo de parámetros de clúster de base de datos personalizado para la nueva versión de Aurora PostgreSQL. Este nuevo grupo de parámetros debe contener la misma configuración de parámetros de Babelfish que la del clúster que está actualizando. Para obtener más información y ver una tabla de las principales fuentes y destinos de las actualizaciones de las versiones principales, consulte Actualización de Babelfish a una nueva versión principal.

Actualizaciones y revisiones de versión secundarias

Las versiones secundarias y las revisiones no requieren la creación de un nuevo grupo de parámetros de clúster de base de datos para la actualización. Las versiones secundarias y las revisiones pueden utilizar el proceso de actualización de versiones secundarias, tanto automático como manual. Para obtener más información y ver una tabla de las fuentes y destinos de las versiones, consulte Actualización de Babelfish a una nueva versión secundaria.

nota

Antes de realizar una actualización principal o secundaria, aplique todas las tareas de mantenimiento pendientes a su clúster de Babelfish para Aurora PostgreSQL.

Actualización de Babelfish a una nueva versión secundaria

Una nueva versión secundaria incluye solo los cambios que son compatibles con versiones anteriores. Una versión de revisión incluye correcciones importantes que se añaden a una versión secundaria después de su lanzamiento. Por ejemplo, la etiqueta de versión de la primera versión de Aurora PostgreSQL 13.4 era Aurora PostgreSQL 13.4.0. Hasta la fecha, se han publicado varias revisiones para esa versión secundaria, incluidas Aurora PostgreSQL 13.4.1, 13.4.2 y 13.4.4. Encontrará las revisiones disponibles para cada versión de Aurora PostgreSQL en la lista de versiones de revisiones que aparece en la parte superior de las notas de la versión de Aurora PostgreSQL. Para ver un ejemplo, consulte PostgreSQL 14.3 en las notas de la versión de Aurora PostgreSQL.

Si su clúster de base de datos de Aurora PostgreSQL está configurado con la opción Auto minor version upgrade (Actualización automática de versiones secundarias), su clúster de base de datos de Babelfish para Aurora PostgreSQL se actualiza automáticamente durante el período de mantenimiento del clúster. Para obtener más información acerca de la actualización automática de versiones secundarias (AmVU) y cómo utilizarla, consulte Actualizaciones de versiones secundarias automáticas para clústeres de base de datos de Aurora. Si su clúster no utiliza AmVU, puede actualizar manualmente su clúster de base de datos de Babelfish para Aurora PostgreSQL a las nuevas versiones secundarias, ya sea respondiendo a las tareas de mantenimiento o modificando el clúster para utilizar la nueva versión.

Al elegir una versión de Aurora PostgreSQL para instalar y al ver un clúster de base de datos de Aurora PostgreSQL existente en la AWS Management Console, la versión muestra solo los dígitos principal.secundaria. Por ejemplo, la siguiente imagen de la consola de un clúster de base de datos de Babelfish para Aurora PostgreSQL existente con Aurora PostgreSQL 13.4 recomienda actualizar el clúster a la versión 13.7, una nueva versión secundaria de Aurora PostgreSQL.

Versión secundaria disponible para el clúster de base de datos de Aurora PostgreSQL con Babelfish.

Para obtener todos los detalles de la versión, incluido el nivel de revisión, puede consultar el clúster de base de datos de Aurora PostgreSQL mediante la función aurora_version de Aurora PostgreSQL. Para obtener más información, consulte aurora_version en la Referencia de las funciones de Aurora PostgreSQL. Encontrará un ejemplo del uso de la función en el procedimiento To use the PostgreSQL port to query for version information en Identificación de la versión de Babelfish.

La siguiente tabla muestra las versiones de Aurora PostgreSQL y Babelfish y las versiones de destino disponibles que pueden admitir el proceso de actualización de la versión secundaria.

Versiones de origen actuales

Destinos de actualización más recientes

Otras versiones de actualización disponibles

Aurora PostgreSQL Babelfish Aurora PostgreSQLBabelfish Versiones de Aurora PostgreSQL con la opción Babelfish

15.4

3.3.0

15.5

3.4.0

15.3.2

3.2.1

15.5

3.4.0

15.4

15.2.4

3.1.3

15.5

3.4.0

15.4

15.3

14.9.1

2.6.0

14.10

2.7.0

14.8.2

2.5.1

14.10

2.7.0

14.9.1

14.7.4

2.4.3

14.10

2.7.0

14.9.1

14.8.2

14.6.4

2.3.3

14.10

2.7.0

14.9.1

14.8.2

14.7.4

14.5.3

2.2.3

14.10

2.7.0

14.9.1

14.8.2

14.7.4

14.6.4

14.3.1

2.1.1

14.6

2.3.0

14.3.0

2.1.0

14.6

2.3.0

14.3.1

13.8

1.4.0

13.9

1.5

13.7.1

1.3.1

13.9

1.5

13.8

13.7.0

1.3.0

13.9

1.5

13.7.1

13.6.4

1.2.4

13.9

1.5

13.7

13.6.3

1.2.1

13.9

1.5

13.7

13.6.4

13.6.2

1.2.1

13.9

1.5

13.7

13.6.4

13.6.1

1.2.0

13.9

1.5

13.7

13.6.4

13.6.0

1.2.0

13.9

1.5

13.7

13.6.4

13.5

1.1.0

13.9

1.5

13.7

13.6

13.4

1.0.0

13.9

1.5

13.7

13.6

13.5

Actualización de Babelfish a una nueva versión principal

Para actualizar una versión principal, primero debe actualizar su clúster de base de datos de Babelfish para Aurora PostgreSQL a una versión que sea compatible con la actualización de la versión principal. Para ello, aplique actualizaciones de revisiones o actualizaciones de versiones secundarias a su clúster de base de datos. Para obtener más información, consulte Actualización de Babelfish a una nueva versión secundaria.

La siguiente tabla muestra la versión de Aurora PostgreSQL y la versión de Babelfish que pueden ser compatibles con una actualización de la versión principal.

Versiones de origen actuales

Destino de actualización disponible más reciente

Otras versiones disponibles (actualizaciones de versión secundaria)

Aurora PostgreSQL Babelfish Aurora PostgreSQLBabelfish Versión de Aurora PostgreSQL (versión de Babelfish)

15.5

3.4.0

16.1

4.0.0

15.4

3.3.0

16.1

4.0.0

15.3

3.2.0

16.1

4.0.0

15.2

3.1.0

16.1

4.0.0

14.10

2.7.0

15.5

3.4.0

14.9

2.6.0

15.5

3.4.0

15.4(3.3.0)

14.8

2.5.0

15.5

3.4.0

15.4(3.3.0)

15.3(3.2.0)

14.7

2.4.0

15.5

3.4.0

15.4(3.3.0)

15.3(3.2.0)

15.2(3.1.0)

14.6

2.3.0

15.5

3.4.0

15.4(3.3.0)

15.3(3.2.0)

15.2(3.1.0)

13.9

1.5.0

14.6

2.3.0

13.8

1.4.0

14.6

2.3.0

13.7.1

1.3.1

14.6

2.3.0

13.8 (1,4)

13.6.4

1.2.2

14.6

2.3.0

13.8 (1.4)

13.7 (1.3)

Antes de actualizar Babelfish a una nueva versión principal

Una actualización puede implicar breves interrupciones. Por este motivo, le recomendamos que realice o programe actualizaciones durante el período de mantenimiento o durante otros períodos de poca utilización.

Antes de realizar una actualización de la versión principal

  1. Identifique la versión de Babelfish de su clúster de base de datos Aurora PostgreSQL existente mediante los comandos que se describen en Identificación de la versión de Babelfish. PostgreSQL gestiona la información de las versiones de Aurora PostgreSQL y Babelfish, así que siga los pasos detallados en el procedimiento To use the PostgreSQL port to query for version information para obtener los detalles.

  2. Compruebe si su versión es compatible con la actualización de la versión principal. Para obtener la lista de versiones que son compatibles con la característica de actualización de versiones principales, consulte Actualización de Babelfish a una nueva versión secundaria y realice las tareas previas a la actualización necesarias.

    Por ejemplo, si su versión de Babelfish se ejecuta en un clúster de base de datos de Aurora PostgreSQL 13.5 y desea actualizar a Aurora PostgreSQL 15.2, aplique primero todas las versiones secundarias y revisiones para actualizar el clúster a Aurora PostgreSQL 14.6 o versiones posteriores. Cuando el clúster esté en la versión 14.6 o una versión posterior, continúe con el proceso de actualización de la versión principal.

  3. Cree una instantánea manual de tu clúster de base de datos de Babelfish actual como copia de seguridad. La copia de seguridad le permite restaurar el clúster a su versión de Aurora PostgreSQL y Babelfish y restaurar todos los datos al estado anterior a la actualización. Para obtener más información, consulte Creación de una instantánea de clúster de base de datos. Asegúrese de conservar su grupo de parámetros de clúster de base de datos personalizado existente para volver a usarlo si decide restaurar este clúster a su estado previo a la actualización. Para más información, consulte Restauración de una instantánea de clúster de base de datos y Consideraciones relativas al grupo de parámetros.

  4. Prepare un grupo de parámetros de clúster de base de datos personalizado para la versión de base de datos de Aurora PostgreSQL de destino. Duplique los ajustes de los parámetros de Babelfish de su clúster de base de datos de Babelfish para Aurora PostgreSQL actual. Para obtener una lista de todos los parámetros de Babelfish, consulte Configuración del grupo de parámetros del clúster de base de datos para Babelfish. Para una actualización de versión importante, los siguientes parámetros requieren la misma configuración que el clúster de base de datos de origen. Para que la actualización se realice correctamente, todos los ajustes deben ser los mismos.

    • rds.babelfish_status

    • babelfishpg_tds.tds_default_numeric_precision

    • babelfishpg_tds.tds_default_numeric_scale

    • babelfishpg_tsql.database_name

    • babelfishpg_tsql.default_locale

    • babelfishpg_tsql.migration_mode

    • babelfishpg_tsql.server_collation_name

    aviso

    Si los ajustes de los parámetros de Babelfish del grupo de parámetros del clúster de base de datos personalizado para la nueva versión de Aurora PostgreSQL no coincide con los valores de los parámetros del clúster que está actualizando, la operación ModifyDBCluster fallará. Aparece un mensaje de error InvalidParameterCombination en la AWS Management Console o en el resultado del comando modify-db-cluster de la AWS CLI.

  5. Utilice la AWS Management Console o la AWS CLI para crear el grupo de parámetros personalizado del clúster de base de datos. Elija la familia de Aurora PostgreSQL aplicable a la versión de Aurora PostgreSQL que desea actualizar.

    sugerencia

    Los grupos de parámetros se administran a nivel de Región de AWS. Cuando trabaje con AWS CLI, puede configurarlos con una región predeterminada en lugar de especificarlos en el comando --region. Para obtener más información sobre la AWS CLI, consulte la sección Configuración rápida de la Guía de usuario de la AWS Command Line Interface.

Realización de una actualización de la versión principal

  1. Actualice el clúster de base de datos de Aurora PostgreSQL a una nueva versión principal. Para obtener más información, consulte Actualización del motor de Aurora PostgreSQL a una nueva versión principal.

  2. Reinicie la instancia de escritor del clúster para que la configuración de los parámetros se aplique.

Después de actualizar a una nueva versión principal

Tras una actualización de la versión principal a una nueva versión de Aurora PostgreSQL, el valor de IDENTITY de las tablas con una columna IDENTITY puede ser mayor (+32) que el valor anterior a la actualización. El resultado es que, cuando se inserta la siguiente fila en dichas tablas, el valor de la columna de identidad generado salta al número +32 y comienza la secuencia desde allí. Esta condición no afectará negativamente a las funciones del clúster de base de datos de Babelfish. Sin embargo, si lo desea, puede restablecer el objeto de secuencia en función del valor máximo de la columna. Para ello, conéctese al puerto T-SQL de la instancia de escritor de Babelfish mediante sqlcmd u otro cliente de SQL Server. Para obtener más información, consulte Uso de un cliente de SQL Server para conectarse al clúster de su base de datos.

sqlcmd -S bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U sa -P ******** -d dbname

Cuando esté conectado, utilice el siguiente comando SQL para generar instrucciones que pueda utilizar para iniciar el objeto de secuencia asociado. Este comando SQL funciona tanto para configuraciones de Babelfish de una sola base de datos como de múltiples bases de datos. Para obtener más información acerca de estos dos modelos de implementación, consulte Uso de Babelfish con una base de datos única o varias bases de datos.

DECLARE @schema_prefix NVARCHAR(200) = '' IF current_setting('babelfishpg_tsql.migration_mode') = 'multi-db' SET @schema_prefix = db_name() + '_' SELECT 'SELECT setval(pg_get_serial_sequence(''' + @schema_prefix + schema_name(tables.schema_id) + '.' + tables.name + ''', ''' + columns.name + '''),(select max(' + columns.name + ') FROM ' + schema_name(tables.schema_id) + '.' + tables.name + ')); 'FROM sys.tables tables JOIN sys.columns columns ON tables.object_id = columns.object_id WHERE columns.is_identity = 1 GO

La consulta genera una serie de instrucciones SELECT que puede ejecutar luego para restablecer el valor máximo de IDENTITY y cerrar cualquier brecha. A continuación, se muestra el resultado cuando se utiliza la base de datos SQL Server de ejemplo, Northwind, que se ejecuta en un clúster de Babelfish.

-------------------------------------------------------- SELECT setval(pg_get_serial_sequence('northwind_dbo.categories', 'categoryid'),(select max(categoryid) FROM dbo.categories)); SELECT setval(pg_get_serial_sequence('northwind_dbo.orders', 'orderid'),(select max(orderid) FROM dbo.orders)); SELECT setval(pg_get_serial_sequence('northwind_dbo.products', 'productid'),(select max(productid) FROM dbo.products)); SELECT setval(pg_get_serial_sequence('northwind_dbo.shippers', 'shipperid'),(select max(shipperid) FROM dbo.shippers)); SELECT setval(pg_get_serial_sequence('northwind_dbo.suppliers', 'supplierid'),(select max(supplierid) FROM dbo.suppliers)); (5 rows affected)

Ejecute las instrucciones una por una para restablecer los valores de la secuencia.

Ejemplo: Actualización del clúster de base de datos de Babelfish a una versión principal

En este ejemplo, puede encontrar la serie de comandos de AWS CLI para explicar cómo se actualiza un clúster de base de datos de Aurora PostgreSQL 13.6.4 que ejecuta la versión 1.2.2 de Babelfish a Aurora PostgreSQL 14.6. En primer lugar, cree un grupo de parámetros de clúster de base de datos personalizado para Aurora PostgreSQL 14. A continuación, modifique los valores de los parámetros para que coincidan con los de su origen de Aurora PostgreSQL versión 13. Por último, realice la actualización modificando el clúster de origen. Para obtener más información, consulte Configuración del grupo de parámetros del clúster de base de datos para Babelfish. En ese tema, también encontrará información sobre el uso de la AWS Management Console para realizar la actualización.

Utilice el comando de la CLI create-db-cluster-parameter-group ara crear el grupo de parámetros del clúster de base de datos para la nueva versión.

Para Linux, macOS, o Unix:

aws rds create-db-cluster-parameter-group \ --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \ --db-parameter-group-family aurora-postgresql14 \ --description 'New custom parameter group for upgrade to new major version' \ --region us-west-1

Al ejecutar este comando, el grupo de parámetros del clúster de base de datos personalizado se crea en la Región de AWS. Se muestra una salida similar a la siguiente.

{ "DBClusterParameterGroup": { "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14", "DBParameterGroupFamily": "aurora-postgresql14", "Description": "New custom parameter group for upgrade to new major version", "DBClusterParameterGroupArn": "arn:aws:rds:us-west-1:111122223333:cluster-pg:docs-lab-babelfish-apg-14" } }

Para obtener más información, consulte Creación de un grupo de parámetros de clúster de base de datos.

Utilice el comando de la CLI modify-db-cluster-parameter-group para modificar la configuración de forma que coincida con el clúster de origen.

En Windows:

aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 ^ --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tds.tds_default_numeric_precision,ParameterValue=38,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tds.tds_default_numeric_scale,ParameterValue=8,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.database_name,ParameterValue=babelfish_db,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.default_locale,ParameterValue=en-US,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.migration_mode,ParameterValue=single-db,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.server_collation_name,ParameterValue=sql_latin1_general_cp1_ci_as,ApplyMethod=pending-reboot"

La respuesta tiene un aspecto similar a la siguiente.

{ "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14" }

Utilice el comando de la CLI modify-db-cluster para modificar el clúster y utilizar la nueva versión y el nuevo grupo de parámetros del clúster de base de datos personalizado. También especifica el argumento --allow-major-version-upgrade, como se muestra en el siguiente ejemplo.

aws rds modify-db-cluster \ --db-cluster-identifier docs-lab-bfish-apg-14 \ --engine-version 14.6 \ --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \ --allow-major-version-upgrade \ --region us-west-1 \ --apply-immediately

Utilice el comando de la CLI reboot-db-instance para reiniciar la instancia de escritor del clúster, de modo que la configuración de los parámetros se aplique.

aws rds reboot-db-instance \ --db-instance-identifier docs-lab-bfish-apg-14-instance-1\ --region us-west-1