Um técnico de TI precisa realizar um backup lógico completo de um banco de dados MySQL chamado ensino. O backup deve incluir não apenas a estrutura das tabelas e seus dados, mas também todos os objetos programáveis associados, como procedures, functions e triggers. Para atender a todos os requisitos da tarefa, é necessário que sejam especificados os seguintes parâmetros:Assinale a alternativa que preenche, correta e respectivamente, as lacunas do comando acima.
A--all-databases --force
B--routines --all-data
C--routines --triggers
D--procedures --triggers
E--procedures --skip-triggers
Revelar gabarito e comentário▾
GabaritoC — --routines --triggers
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Backup lógico no MySQL: mysqldump e objetos programáveis
Gabarito: letra C — para incluir procedures, functions e triggers em um backup lógico completo do banco ensino, o comando mysqldump deve usar os parâmetros --routines e --triggers. O --routines cobre procedures e functions; o --triggers garante que os gatilhos sejam exportados junto com a estrutura e os dados.
O mysqldump é a ferramenta clássica de backup lógico do MySQL: ela gera um arquivo de texto com comandos SQL (CREATE TABLE, INSERT, etc.) que, ao ser executado, recria o banco. Por padrão, o mysqldumpnão inclui objetos programáveis — procedures, functions e triggers ficam de fora do dump a menos que você peça explicitamente. É exatamente essa a pegadinha da questão: o candidato que conhece o comando básico (mysqldump -u usuario -p ensino > backup.sql) acha que o backup está completo, mas ele não contém os objetos programáveis.
A documentação oficial do MySQL define o comportamento dos parâmetros:
MySQL 8.0 Reference Manual — mysqldump:
--routines — "Dump stored routines (procedures and functions) from the dumped databases." (Despeja rotinas armazenadas — procedures e functions — dos bancos de dados despejados.)
--triggers — "Include triggers for each dumped table." (Inclui triggers para cada tabela despejada.)
O --routines é o parâmetro que cobre ambos os tipos de rotina armazenada: procedures e functions. Não existe um parâmetro separado para cada um — a banca tenta confundir com --procedures, que simplesmente não existe no mysqldump. Já o --triggers é o parâmetro específico para os gatilhos, e ele é ativado por padrão nas versões mais recentes do MySQL (a partir da 5.7.2), mas a questão pede explicitamente que ele seja especificado, então a alternativa correta é a que o inclui.
Esse comando gera um arquivo com a estrutura das tabelas, os dados, as procedures, as functions e os triggers do banco ensino. É o backup lógico completo que o técnico precisa.
A distinção que importa aqui é entre backup lógico e backup físico: o lógico (mysqldump) exporta comandos SQL e é portável entre versões e servidores; o físico (cópia dos arquivos de dados) é mais rápido para restaurar, mas menos flexível. E dentro do backup lógico, a distinção é entre o que vem por padrão (estrutura + dados) e o que precisa de parâmetros extras (rotinas e triggers).
Guarde a fronteira: --routines = procedures + functions; --triggers = triggers. É exatamente nessa fronteira que as alternativas se dividem.
mysqldump (backup lógico)
1Por padrão
Estrutura das tabelas
Dados (INSERT)
2Objetos programáveis (não vêm por padrão)
--routines
Procedures
Functions
--triggers
Gatilhos
3Parâmetros que não existem
--procedures
--all-data
4Parâmetro que exclui
--skip-triggers
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O --all-databases faz o dump de todos os bancos do servidor, não apenas do ensino — isso contraria o requisito de backup de um banco específico. E o --force apenas continua o dump mesmo se ocorrer um erro, não tem relação com objetos programáveis. A alternativa mistura dois parâmetros que não atendem à necessidade de incluir procedures, functions e triggers.
Alternativa B — ❌ Incorreta
O --routines está correto e cobre procedures e functions, mas o --all-datanão existe no mysqldump. O parâmetro que existe é --all-databases (todos os bancos) ou --all-tablespaces (todos os tablespaces), mas nenhum deles é --all-data. Além disso, a alternativa não menciona --triggers, então os gatilhos ficariam de fora do backup.
Alternativa C — ✅ Correta ⟵ GABARITO
O --routines inclui procedures e functions, e o --triggers inclui os gatilhos. Juntos, atendem exatamente aos requisitos do enunciado: estrutura das tabelas, dados, procedures, functions e triggers. É a combinação correta e completa.
Alternativa D — ❌ Incorreta
O --proceduresnão existe no mysqldump — o parâmetro correto é --routines, que cobre procedures e functions. E o --triggers está correto, mas sozinho não cobre as rotinas armazenadas. A alternativa troca o parâmetro real por um inventado.
Alternativa E — ❌ Incorreta
O --procedures não existe (o correto é --routines), e o --skip-triggers faz exatamente o oposto do que o enunciado pede: ele exclui os triggers do backup. É uma alternativa duplamente errada — usa um parâmetro inexistente e nega a inclusão dos gatilhos.
NÃO CAIA NESSA!
A banca explora a confusão entre --routines e --procedures. O candidato que não conhece a sintaxe exata do mysqldump pode achar que --procedures é o parâmetro certo para procedures, mas ele não existe — o --routines cobre procedures e functions de uma vez. E o --skip-triggers é a armadilha inversa: parece razoável, mas faz o contrário do que o enunciado pede.
PEGA ESSA DICA!
Memorize os parâmetros do mysqldump que aparecem em prova: --routines (procedures + functions), --triggers (gatilhos), --all-databases (todos os bancos), --single-transaction (consistência sem travar tabelas InnoDB), --no-data (só estrutura) e --no-create-info (só dados). Se a questão pedir backup completo com objetos programáveis, a combinação é sempre --routines --triggers.