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 |
Destinos de atualização mais recentes |
---|---|
Aurora PostgreSQL (Babelfish) | Aurora PostgreSQL (Babelfish) |
15.8 (3.7.0) |
16.4 (4.3.0) |
15.7 (3.6.0) |
16.4 (4.3.0), 16.3 (4.2.0) |
15.6 (3.5.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0) |
15.5 (3.4.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) |
15.4 (3.3.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) |
15.3 (3.2.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) |
15.2 (3.1.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) |
14.13 (2.10.0) |
16.4 (4.3.0) 15.8 (3.7.0) |
14.12 (2.9.0) |
16.4 (4.3.0), 16.3 (4.2.0) 15.8 (3.7.0), 15.7 (3.6.0) |
14.11 (2.8.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0) 15.8 (3.7.0), 15.7 (3.6.0), 15.6 (3.5.0) |
14.10 (2.7.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) 15.8 (3.7.0), 15.7 (3.6.0), 15.6 (3.5.0), 15.5 (3.4.0) |
14.9 (2.6.0) |
16.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) 15.8 (3.7.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.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) 15.8 (3.7.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.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) 15.8 (3.7.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.4 (4.3.0), 16.3 (4.2.0), 16.2 (4.1.0), 16.1 (4.0.0) 15.8 (3.7.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 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
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.
-
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.
-
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.
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 erroInvalidParameterCombination
aparecerá no AWS Management Console ou na saída do comandomodify-db-cluster
da AWS CLI.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
-
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.
-
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 -Usa
-P********
-ddbname
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
' \ --regionus-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 do cluster de banco de dados no Amazon Aurora.
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