Actualización de Babelfish a una nueva versión principal - Amazon Aurora

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

Destinos de actualización más recientes

Aurora PostgreSQL (Babelfish) Aurora PostgreSQL (Babelfish)

15.7 (3.6.0)

16.3 (4.2.0)

15.6 (3.5.0)

16.3 (4.2.0), 16.2 (4.1.0)

15.5 (3.4.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0)

15.4 (3.3.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0)

15.3 (3.2.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0)

15.2 (3.1.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0)

14.12 (2.9.0)

16.3 (4.2.0), 15.7 (3.6.0)

14.11 (2.8.0)

16.3 (4.2.0), 16.2 (4.1.0), 15.7 (3.6.0), 15.6 (3.5.0)

14.10 (2.7.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0), 15.7 (3.6.0), 15.6 (3.5.0), 15.5 (3.4.0)

14.9 (2.6.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0), 15.7 (3.6.0), 15.6 (3.5.0), 15.5 (3.4.0), 15.4 (3.3.0)

14.8 (2.5.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0), 15.7 (3.6.0), 15.6 (3.5.0), 15.5 (3.4.0), 15.4 (3.3.0), 15.3 (3.2.0)

14.7 (2.4.0)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0), 15.7 (3.6.0), 15.6 (3.5.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)

16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0), 15.7 (3.6.0), 15.6 (3.5.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.3.0)

14.6 (2.3.0)

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 obtener 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-clúster-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 en Amazon Aurora.

Utilice el comando de la CLI modify-db-clúster-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-clúster 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