Modo somente leitura para failover groups simplifica testes de DR no Snowflake
O Snowflake liberou o modo somente leitura para failover groups primários, pausando novas gravações atomicamente para garantir zero perda de dados em migrações e testes de DR.
O que mudou
O modo somente leitura para grupos de failover primários agora está em disponibilidade geral (GA). O recurso permite congelar gravações no grupo primário com um único comando, facilitando testes de recuperação de desastres (DR) e migrações de conta sem risco de perda de dados.
Para que serve
Imagine que você precisa rodar um teste programado de disaster recovery ou migrar uma conta sem perder nenhuma transação. Antes, era necessário desabilitar usuários, revogar permissões ou suspender pipes e tasks manualmente para evitar novas alterações antes do último refresh de replicação.
Com o modo somente leitura em failover groups primários, você consegue:
- Bloquear atomicamente comandos DDL e DML novos nos objetos pertencentes ao grupo de failover.
- Pausar automaticamente o agendamento de tasks, alertas e a ingestão de pipes (Snowpipe) vinculados aos bancos do grupo.
- Manter consultas analíticas de leitura (SELECT, SHOW, DESCRIBE) em funcionamento na origem.
- Reverter o congelamento a qualquer momento sem precisar executar um failover completo.
Como usar
A sintaxe principal para ativar e desativar o modo de leitura é executada no grupo de failover da conta primária:
-- Ativa o modo somente leitura no primário
ALTER FAILOVER GROUP meu_fg SET READ_ONLY = TRUE;
-- Restaura o modo normal de leitura e escrita (se não for fazer failover)
ALTER FAILOVER GROUP meu_fg UNSET READ_ONLY;
Em um cenário completo de teste de DR ou migração, o fluxo padrão envolve pausar as gravações, encerrar consultas em andamento, sincronizar e promover o secundário:
-- 1. Na conta de origem (primária): congela as gravações
ALTER FAILOVER GROUP meu_fg SET READ_ONLY = TRUE;
-- 2. Na conta de origem: cancela consultas ativas nos bancos do grupo
SHOW DATABASES IN FAILOVER GROUP meu_fg;
SELECT SYSTEM$CANCEL_QUERY(q.query_id)
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY()) q
WHERE q.execution_status = 'RUNNING'
AND q.database_name IN (SELECT "name" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())));
-- 3. Na conta de destino: executa o refresh final a partir da origem estática
ALTER FAILOVER GROUP meu_fg REFRESH;
-- 4. Na conta de destino: promove conexão e grupo para se tornarem o novo primário
ALTER CONNECTION minha_conexao PRIMARY;
ALTER FAILOVER GROUP meu_fg PRIMARY;
O que acontece nesse código:
- O comando
SET READ_ONLY = TRUErejeita novos DDL/DML e interrompe o agendamento de tasks e pipes no grupo de failover. - A consulta localiza queries ainda em execução nos bancos afetados e as cancela via
SYSTEM$CANCEL_QUERYpara liberar computação imediatamente. - O comando
REFRESHna conta de destino copia as últimas alterações do primário sem risco de novas modificações concorrentes. - A promoção transfere o tráfego do cliente e transforma a réplica de destino no novo primário de leitura e escrita. Na conta de origem, o grupo vira réplica secundária padrão e a flag de leitura é limpa automaticamente.
O que retorna
A visualização do estado do failover group exibe o status de congelamento através dos comandos de monitoramento:
| Campo | Descrição |
|---|---|
read_only | Retorna TRUE se o failover group primário estiver em modo somente leitura; FALSE em operação normal. |
Essa coluna fica visível tanto na conta primária quanto na secundária via SHOW FAILOVER GROUPS ou SHOW REPLICATION GROUPS.
Limitações e requisitos
- Estágio: Disponibilidade geral (GA).
- Privilégios: O usuário precisa da role com
OWNERSHIPou privilégioFAILOVERsobre o failover group. - Transações ativas: Consultas que já estavam rodando antes do congelamento não são canceladas automaticamente pelo Snowflake; elas falham apenas na hora do commit se tentarem gravar. Use
SYSTEM$CANCEL_QUERYouSYSTEM$ABORT_SESSIONse precisar encerrá-las de imediato. - Dynamic Tables: O agendamento de dynamic tables não é suprimido automaticamente. O Snowflake tenta o refresh até cinco vezes e, após sucessivas falhas pela trava de escrita, suspende o agendamento. Se desativar o modo somente leitura (
UNSET READ_ONLY), será necessário reativar as dynamic tables manualmente. - Restrições de alteração: Não é permitido adicionar ou remover bancos e shares (
ADDouREMOVE) no grupo enquanto ele estiver em modo somente leitura.
- failover groups
- replication
- disaster recovery
- snowpipe
- tasks
Quiesce a primary failover group (General availability)
Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.
Relacionadas
- SnowflakePublic Preview
Consulte o Cortex Search direto em SQL com a função CORTEX_SEARCH_RETRIEVE
A função de tabela CORTEX_SEARCH_RETRIEVE permite consultar serviços do Cortex Search diretamente no SQL com baixa latência, suportando buscas pontuais ou por linha com junções LATERAL para RAG e chatbots.
snowflake cortex · cortex search - SnowflakePublic Preview
Suporte à Responses API da OpenAI na Cortex REST API
Agora é possível consumir modelos OpenAI via especificação Responses API na Cortex REST API e no Cortex AI Gateway, mantendo a inferência no perímetro do Snowflake.
snowflake cortex · cortex rest api - SnowflakeGA
Instâncias GEN_ARM_G1 e GEN_X64_G1 do SPCS chegam em GA no Google Cloud
As instâncias GEN_ARM_G1 e GEN_X64_G1 do Snowpark Container Services já estão em GA no Google Cloud, oferecendo opções de 1 a 28 vCPUs para workloads ARM e x86.
snowflake · snowpark container services