Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FGV 2024

Banco de DadosOracle
Código
fg165253
Banca
FGV
Órgão
TJ MS
Ano
2024
Cargo
Tec NS ( )
João, administrador de Banco de Dados Oracle, percebe que a configuração de um parâmetro específico precisa ser ajustada para otimizar o desempenho do banco de dados. Ele precisa fazer essa alteração, de forma persistente, no arquivo de inicialização (spfile) e garantir que ela seja aplicada após o reinício do banco de dados.   Para isso, João deverá executar o comando:
  1. AUPDATE SYSTEM SET parameter_name = novo_valor;
  2. BALTER SESSION SET parameter_name = novo_valor;
  3. CALTER SYSTEM SET parameter_name = novo_valor SCOPE=PFILE;
  4. DALTER SYSTEM SET parameter_name = novo_valor SCOPE=SPFILE;
  5. EALTER DATABASE SET parameter_name = novo_valor SCOPE=SPFILE;
Revelar gabarito e comentário

GabaritoD — ALTER SYSTEM SET parameter_name = novo_valor SCOPE=SPFILE;

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”.

Parâmetros de Inicialização no Oracle: SPFILE vs PFILE

Gabarito: letra D. Para alterar um parâmetro de forma persistente no arquivo de inicialização (spfile) e garantir que a alteração seja aplicada após o reinício do banco, o comando correto é ALTER SYSTEM SET parameter_name = novo_valor SCOPE=SPFILE. O comando ALTER SYSTEM é o único que permite alterar parâmetros em nível de sistema, e a cláusula SCOPE=SPFILE especifica que a alteração deve ser gravada no arquivo binário de parâmetros do servidor, garantindo a persistência.

O Oracle Database utiliza dois tipos de arquivos de parâmetros de inicialização: o PFILE (Parameter File) e o SPFILE (Server Parameter File). O PFILE é um arquivo de texto simples, localizado no cliente, que pode ser editado manualmente com um editor de texto. O SPFILE, por sua vez, é um arquivo binário localizado no servidor, que não pode ser editado diretamente, mas é gerenciado pelo próprio Oracle através de comandos SQL. A principal vantagem do SPFILE é que ele permite que alterações de parâmetros sejam feitas dinamicamente, sem a necessidade de editar manualmente um arquivo de texto, e essas alterações podem ser persistidas para o próximo reinício.

O comando ALTER SYSTEM é utilizado para alterar parâmetros de inicialização em nível de sistema, afetando todos os usuários e sessões. A cláusula SCOPE define o escopo da alteração, podendo assumir três valores: MEMORY, SPFILE e BOTH. O valor MEMORY altera o parâmetro apenas na memória, sendo válido somente até o próximo reinício. O valor SPFILE altera o parâmetro apenas no arquivo de parâmetros do servidor, sendo aplicado somente após o próximo reinício. O valor BOTH altera o parâmetro tanto na memória quanto no arquivo, sendo aplicado imediatamente e persistido para o próximo reinício. Para garantir que a alteração seja persistente e aplicada após o reinício, o SCOPE deve ser SPFILE ou BOTH.

A distinção entre ALTER SYSTEM e ALTER SESSION é fundamental. O comando ALTER SESSION altera parâmetros apenas para a sessão atual do usuário, não afetando outras sessões nem persistindo após o término da sessão. Já o comando ALTER SYSTEM altera parâmetros em nível de instância, afetando todas as sessões. O comando UPDATE SYSTEM não existe no Oracle para alterar parâmetros de inicialização; ele é um comando DML usado para atualizar dados em tabelas. O comando ALTER DATABASE é utilizado para alterar a estrutura física do banco de dados, como adicionar ou remover datafiles, e não para alterar parâmetros de inicialização.

A pegadinha desta questão está na confusão entre SCOPE=PFILE e SCOPE=SPFILE. O PFILE é um arquivo de texto que pode ser editado manualmente, mas o comando ALTER SYSTEM SET ... SCOPE=PFILE não é válido no Oracle. O Oracle não permite alterar o PFILE através do comando ALTER SYSTEM; o PFILE deve ser editado manualmente com um editor de texto. O SPFILE, por outro lado, é o arquivo binário que o Oracle gerencia, e é para ele que o comando ALTER SYSTEM SET ... SCOPE=SPFILE se aplica. Portanto, para alterar um parâmetro de forma persistente no arquivo de inicialização, o comando correto é ALTER SYSTEM SET parameter_name = novo_valor SCOPE=SPFILE.

Guarde a distinção entre os três escopos do ALTER SYSTEM e a diferença entre ALTER SYSTEM e ALTER SESSION: é exatamente nesses pontos que as alternativas se dividem.

ALTER SYSTEM SET
  • 1SCOPE
    • MEMORY
      • Só na memória
      • Não persiste
    • SPFILE
      • Só no arquivo
      • Persiste após reinício
    • BOTH
      • Memória + arquivo
      • Imediato e persistente
  • 2Alternativas inválidas
    • UPDATE SYSTEM
      • Comando DML, não existe
    • ALTER SESSION
      • Só na sessão atual
    • SCOPE=PFILE
      • Não é válido no Oracle
    • ALTER DATABASE
      • Estrutura física, não parâmetros
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O comando UPDATE SYSTEM SET parameter_name = novo_valor; não existe no Oracle para alterar parâmetros de inicialização. O comando UPDATE é um comando DML (Data Manipulation Language) utilizado para atualizar dados em tabelas, não para alterar parâmetros do sistema. A sintaxe correta para alterar parâmetros é ALTER SYSTEM SET ....

Alternativa B — ❌ Incorreta

O comando ALTER SESSION SET parameter_name = novo_valor; altera o parâmetro apenas para a sessão atual do usuário. Essa alteração não é persistente e não afeta outras sessões nem o banco de dados como um todo. Para alterar um parâmetro de forma persistente no arquivo de inicialização, é necessário usar ALTER SYSTEM.

Alternativa C — ❌ Incorreta

O comando ALTER SYSTEM SET parameter_name = novo_valor SCOPE=PFILE; não é válido no Oracle. O Oracle não permite alterar o PFILE através do comando ALTER SYSTEM; o PFILE é um arquivo de texto que deve ser editado manualmente. O SCOPE=PFILE não é uma opção válida para o comando ALTER SYSTEM. O escopo correto para persistir a alteração no arquivo de parâmetros do servidor é SCOPE=SPFILE.

Alternativa D — ✅ Correta ⟵ GABARITO

O comando ALTER SYSTEM SET parameter_name = novo_valor SCOPE=SPFILE; é o correto para alterar um parâmetro de forma persistente no arquivo de inicialização (spfile). O SCOPE=SPFILE especifica que a alteração deve ser gravada no arquivo binário de parâmetros do servidor, garantindo que a alteração seja aplicada após o próximo reinício do banco de dados. Este é o comando padrão para alterações persistentes de parâmetros no Oracle.

Alternativa E — ❌ Incorreta

O comando ALTER DATABASE SET parameter_name = novo_valor SCOPE=SPFILE; não é válido no Oracle. O comando ALTER DATABASE é utilizado para alterar a estrutura física do banco de dados, como adicionar ou remover datafiles, alterar o modo de arquivamento, entre outras operações. Para alterar parâmetros de inicialização, o comando correto é ALTER SYSTEM.

NÃO CAIA NESSA!

A banca explora a confusão entre SCOPE=PFILE e SCOPE=SPFILE. Muitos candidatos lembram que o PFILE é o arquivo de parâmetros e escolhem a alternativa C, mas o Oracle não permite alterar o PFILE via comando ALTER SYSTEM. O PFILE é editado manualmente; o SPFILE é gerenciado pelo Oracle e é para ele que o SCOPE=SPFILE se aplica. Lembre-se: para persistir alterações de parâmetros, use SCOPE=SPFILE ou SCOPE=BOTH.

PEGA ESSA DICA!

Para memorizar os escopos do ALTER SYSTEM, pense: MEMORY = só na memória (temporário), SPFILE = só no arquivo (permanente após reinício), BOTH = nos dois (imediato e permanente). Se a questão pedir persistência após reinício, escolha SPFILE ou BOTH. Se pedir efeito imediato, escolha MEMORY ou BOTH.

Gabarito: letra D

Link permanente: /questoes/fg165253