Atualizar o cluster do Babelfish para uma nova versão principal - Amazon Aurora

Atualizar o cluster do Babelfish para uma nova versão principal

Novas versões do Babelfish ficam disponíveis com alguns novos lançamentos do mecanismo de banco de dados Aurora PostgreSQL após a versão 13.4. Cada nova versão do Babelfish tem um número exclusivo. Assim como no Aurora PostgreSQL, o Babelfish usa o esquema de nomenclatura major.minor.patch para versões. Por exemplo, a primeira versão do Babelfish, a 1.0.0, foi disponibilizada como parte do Aurora PostgreSQL 13.4.0.

O Babelfish não requer um processo de instalação separado. Conforme discutido em Criar um cluster de banco de dados do Babelfish para Aurora PostgreSQL, Turn on Babelfish (Ativar o Babelfish) é uma opção que você escolhe ao criar um cluster de banco de dados do Aurora PostgreSQL.

Da mesma forma, você não pode atualizar o Babelfish independentemente do cluster de banco de dados do Aurora auxiliar. Para atualizar um cluster de banco de dados do Babelfish para Aurora PostgreSQL para uma nova versão do Babelfish, atualize o cluster de banco de dados do Aurora PostgreSQL para uma nova versão compatível com a versão do Babelfish que você deseja usar. O procedimento para atualização depende da versão do Aurora PostgreSQL compatível com sua implantação do Babelfish, conforme mostrado a seguir.

Atualizações de versão principal

Você deve atualizar as versões a seguir do Aurora PostgreSQL para o Aurora PostgreSQL 14.6 e posterior antes de atualizar para a versão 15.2 do Aurora PostgreSQL.

  • Aurora PostgreSQL 13.8 e todas as versões posteriores

  • Aurora PostgreSQL 13.7.1 e todas as versões secundárias posteriores

  • Aurora PostgreSQL 13.6.4 e todas as versões secundárias posteriores

Você pode atualizar o Aurora PostgreSQL 14.6 e versões posteriores para o Aurora PostgreSQL 15.2 e versões posteriores.

A atualização de um cluster de banco de dados do Aurora PostgreSQL para uma nova versão principal envolve várias tarefas preliminares. Para ter mais informações, consulte Como realizar uma atualização de versão principal. Para atualizar o cluster de banco de dados do Babelfish para Aurora PostgreSQL, você precisa criar um grupo de parâmetros de cluster de banco de dados personalizado para a nova versão do Aurora PostgreSQL. Esse novo grupo de parâmetros deve conter as mesmas configurações de parâmetros do Babelfish do cluster que você está atualizando. Para ter mais informações e conferir uma tabela de fontes e destinos para atualização da versão principal, consulte Atualizar o Babelfish para uma nova versão principal.

Patches e atualizações de versões secundárias

Versões secundárias e patches não exigem a criação de um grupo de parâmetros de cluster de banco de dados para a atualização. Versões secundárias e patches podem usar o processo de atualização de versão secundária, que pode ser aplicado manual ou automaticamente. Para ter mais informações e conferir uma tabela de origens e destinos de versão, consulte Atualizar o Babelfish para uma nova versão secundária.

nota

Antes de realizar uma atualização principal ou secundária, aplique todas as tarefas de manutenção pendentes ao seu cluster do Babelfish para Aurora PostgreSQL.

Atualizar o Babelfish para uma nova versão secundária

Uma nova versão secundária inclui apenas alterações compatíveis com versões anteriores. Uma versão de patch inclui correções importantes para a uma versão secundária após o lançamento. Por exemplo, o rótulo da primeira versão do Aurora PostgreSQL 13.4 foi Aurora PostgreSQL 13.4.0. Vários patches para essa versão secundária já foram lançados até o momento, incluindo Aurora PostgreSQL 13.4.1, 13.4.2 e 13.4.4. Você pode encontrar os patches disponíveis para cada versão do Aurora PostgreSQL na lista de Patch releases (Lançamentos de patches) na parte superior das notas de versão do Aurora PostgreSQL da versão específica. Para obter um exemplo, consulte PostgreSQL 14.3 em Notas de versão do Aurora PostgreSQL.

Se o cluster de banco de dados do Aurora PostgreSQL estiver configurado com a opção Auto minor version upgrade (Atualização automática de versão secundária), o cluster de banco de dados do Babelfish para Aurora PostgreSQL será atualizado automaticamente durante a respectiva janela de manutenção. Para saber mais sobre a atualização automática de versão secundária (AmVU) e como usá-la, consulte Atualizações da versão secundária automáticas para clusters de banco de dados do Aurora. Se o cluster não estiver usando AmVU, você poderá atualizar manualmente o cluster de banco de dados do Babelfish para Aurora PostgreSQL para novas versões secundárias respondendo a tarefas de manutenção ou modificando o cluster para usar a nova versão.

Quando você escolhe uma versão do Aurora PostgreSQL para instalar e quando visualiza um cluster de banco de dados do Aurora PostgreSQL existente no AWS Management Console, a versão exibe apenas os dígitos major.minor. Por exemplo, a imagem a seguir do console de um cluster de banco de dados do Babelfish para Aurora PostgreSQL com Aurora PostgreSQL 13.4 recomenda atualizar o cluster para a versão 13.7, uma nova versão secundária do Aurora PostgreSQL.

Atualização de versão secundária disponível para um cluster de banco de dados do Aurora PostgreSQL com Babelfish.

Para obter os detalhes completos da versão, incluindo o nível de patch, você pode consultar o cluster de banco de dados do Aurora PostgreSQL usando a função aurora_version do Aurora PostgreSQL. Para ter mais informações, consulte aurora_version no Referência de funções do Aurora PostgreSQL. Você pode encontrar um exemplo de uso da função no procedimento To use the PostgreSQL port to query for version information em Identificar a versão do Babelfish.

A tabela a seguir mostra as versões do Aurora PostgreSQL e do Babelfish e as versões de destino disponíveis que são compatíveis com o processo de atualização da versão secundária.

Versões de origem atuais

Destinos de atualização mais recentes

Outras versões de atualização disponíveis

Aurora PostgreSQL Babelfish Aurora PostgreSQLBabelfish Versões do Aurora PostgreSQL com a opção do 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

Atualizar o Babelfish para uma nova versão principal

Para uma atualização da versão principal, primeiro é necessário atualizar o cluster de banco de dados do Babelfish para Aurora PostgreSQL para uma versão comporte a atualização da versão principal. Para conseguir isso, aplique atualizações de patch ou atualizações de versão secundária no cluster de banco de dados. Para ter mais informações, consulte Atualizar o Babelfish para uma nova versão secundária.

A tabela a seguir mostra a versão do Aurora PostgreSQL e a versão do Babelfish que são compatíveis com o processo de atualização da versão principal.

Versões de origem atuais

Destino de atualização disponível mais recente

Outras versões disponíveis (atualizações da versão secundária)

Aurora PostgreSQL Babelfish Aurora PostgreSQLBabelfish Versão do Aurora PostgreSQL (versão do 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 atualizar o Babelfish para uma nova versão principal

Uma atualização pode envolver breves interrupções. Por esse motivo, recomendamos que você execute ou programe atualizações durante sua janela de manutenção ou durante outros períodos de baixa utilização.

Antes de realizar uma atualização da versão principal

  1. Identifique a versão do Babelfish do cluster de banco de dados do Aurora PostgreSQL usando os comandos descritos em Identificar a versão do Babelfish. As informações da versão do Aurora PostgreSQL e da versão do Babelfish são tratadas pelo PostgreSQL, portanto siga as etapas detalhadas no procedimento To use the PostgreSQL port to query for version information para obter os detalhes.

  2. Verifique se sua versão é compatível com a atualização da versão principal. Para ver a lista de versões compatíveis com o recurso de atualização da versão principal, consulte Atualizar o Babelfish para uma nova versão secundária e execute as tarefas de pré-atualização necessárias.

    Por exemplo, se sua versão do Babelfish estiver sendo executada em um cluster de banco de dados do Aurora PostgreSQL 13.5 e você quiser atualizar para o Aurora PostgreSQL 15.2, primeiro aplique todas as versões secundárias e patches para atualizar o cluster para o Aurora PostgreSQL 14.6 ou versão posterior. Quando o cluster estiver na versão 14.6 ou posterior, continue com o processo de atualização da versão principal.

  3. Crie um snapshot manual do cluster de banco de dados do Babelfish atual como backup. O backup permite restaurar o cluster para a versão do Aurora PostgreSQL e a versão do Babelfish, bem como restaurar todos os dados para o estado anterior à atualização. Para ter mais informações, consulte Criar um snapshot de cluster de banco de dados. Mantenha seu grupo de parâmetros de cluster de banco de dados personalizado para usá-lo novamente se você decidir restaurar esse cluster ao estado antes da atualização. Para ter mais informações, consulte Restauração de um snapshot de um cluster de banco de dados e Considerações de grupos de parâmetros.

  4. Prepare um grupo de parâmetros de cluster de banco de dados personalizado para a versão do banco de dados de destino do Aurora PostgreSQL. Duplique as configurações dos parâmetros do Babelfish do cluster de banco de dados do Babelfish para Aurora PostgreSQL. Para conferir uma lista de todos os parâmetros do Babelfish, consulte Configurações de grupo de parâmetros de cluster de banco de dados para o Babelfish. Para uma atualização da versão principal, os parâmetros a seguir exigem as mesmas configurações do cluster de banco de dados de origem. Para que a atualização seja bem-sucedida, todas as configurações devem ser iguais.

    • 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

    Atenção

    Se as configurações dos parâmetros do Babelfish no grupo de parâmetros do cluster de banco de dados personalizado para a nova versão do Aurora PostgreSQL não corresponderem aos valores dos parâmetros do cluster que você está atualizando, a operação ModifyDBCluster falhará. Uma mensagem de erro InvalidParameterCombination aparecerá no AWS Management Console ou na saída do comando modify-db-cluster da AWS CLI.

  5. Use o AWS Management Console ou a AWS CLI para criar o grupo de parâmetros personalizado do cluster de banco de dados. Escolha a família do Aurora PostgreSQL aplicável para a versão do Aurora PostgreSQL que você deseja para a atualização.

    dica

    Os grupos de parâmetros são gerenciados no âmbito da Região da AWS. Ao trabalhar com a AWS CLI, você pode configurar com uma região padrão em vez de especificar --region no comando. Para saber mais sobre como usar a AWS CLI, consulte Instalação rápida no Guia do usuário da AWS Command Line Interface.

Realizar a atualização da versão principal

  1. Atualize o cluster de banco de dados do Aurora PostgreSQL para uma nova versão principal. Para ter mais informações, consulte Atualizar o mecanismo do Aurora PostgreSQL para uma nova versão principal.

  2. Reinicialize a instância gravadora do cluster para que as configurações dos parâmetros entrem em vigor.

Depois de atualizar para uma nova versão principal

Depois de uma atualização da versão principal para uma nova versão do Aurora PostgreSQL, o valor de IDENTITY nas tabelas com uma coluna IDENTITY pode ser maior (+32) do que o valor antes da atualização. O resultado é que, quando a próxima linha é inserida nessas tabelas, o valor da coluna de identidade gerada salta para o número +32 e inicia a sequência a partir daí. Essa condição não afetará negativamente as funções do cluster de banco de dados do Babelfish. No entanto, se quiser, você poderá redefinir o objeto de sequência com base no valor máximo da coluna. Para fazer isso, conecte-se à porta T-SQL da sua instância gravadora do Babelfish usando sqlcmd ou outro cliente do SQL Server. Para ter mais informações, consulte Utilizar um cliente SQL Server para se conectar ao seu cluster de banco de dados.

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

Após a conexão, use o comando SQL a seguir para gerar instruções que você pode usar para definir o seed do objeto de sequência associado. Esse comando SQL funciona tanto para configurações de um único banco de dados quanto para vários bancos do Babelfish. Para ter mais informações sobre esses dois modelos de implantação, consulte Utilizar o Babelfish com um único banco de dados ou vários bancos de dados.

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

A consulta gera uma série de instruções SELECT que você pode executar para redefinir o valor máximo de IDENTITY e fechar qualquer lacuna. Veja a seguir a saída ao usar o exemplo de banco de dados do SQL Server, Northwind, em execução em um cluster do 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)

Execute as instruções uma a uma para redefinir os valores da sequência.

Exemplo: Atualizar o cluster de banco de dados do Babelfish para uma versão principal

Neste exemplo, você pode encontrar a série de comandos da AWS CLI que explica como fazer upgrade de um cluster de banco de dados do Aurora PostgreSQL 13.6.4 que executa o Babelfish versão 1.2.2 para o Aurora PostgreSQL 14.6. Antes de começar, crie um grupo de parâmetros de cluster de banco de dados personalizado para o Aurora PostgreSQL 14. Depois, modifique os valores dos parâmetros para que correspondam aos da origem do Aurora PostgreSQL versão 13. Por fim, execute a atualização modificando o cluster de origem. Para ter mais informações, consulte Configurações de grupo de parâmetros de cluster de banco de dados para o Babelfish. Nesse tópico, você também pode encontrar informações sobre como usar o AWS Management Console para realizar a atualização.

Use o comando create-db-cluster-parameter-group da CLI para criar o grupo de parâmetros do cluster de banco de dados para a nova versão.

Para Linux, macOS ou 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

Quando você emite esse comando, o grupo de parâmetros do cluster de banco de dados personalizado é criado na Região da AWS. Você verá uma saída semelhante à seguinte.

{ "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 ter mais informações, consulte Criar um grupo de parâmetros de cluster de banco de dados.

Use o comando modify-db-cluster-parameter-group da CLI para modificar as configurações de forma que correspondam ao cluster de origem.

Para 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"

A resposta é semelhante à seguinte.

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

Use o comando modify-db-cluster da CLI para modificar o cluster a fim de usar a nova versão e o novo grupo de parâmetros de cluster de banco de dados personalizado. Você também especifica o argumento --allow-major-version-upgrade, conforme exibido no exemplo a seguir.

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

Use o comando reboot-db-instance da CLI para reinicializar a instância gravadora do cluster para que as configurações dos parâmetros entrem em vigor.

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