Oracle Database Fases de Startup/Shutdown

Iniciando a instância do banco de dados Oracle


Antes que os usuários possam se conectar a uma instância de banco de dados, um administrador de banco de dados deve iniciar a instância do banco de dados. A instância e o banco de dados passam por estágios à medida que o banco de dados é disponibilizado para acesso pelos usuários. A instância é iniciada, o banco de dados é montado e, em seguida, o banco de dados é aberto, como mostrado no slide.


NOMOUNT: Nesta etapa, o software Oracle lê um arquivo de parâmetros de inicialização, PFILE ou SPFILE, inicia os processos em segundo plano, aloca memória para a SGA, abre o log de alerta e os arquivos de rastreamento. Uma instância é tipicamente iniciada apenas no modo NOMOUNT durante a criação do banco de dados, durante a recriação de arquivos de controle ou em cenários específicos de backup e recuperação.


MOUNT: Nesta etapa, o software Oracle associa o banco de dados à instância de banco de dados previamente iniciada, abre e lê o controlefile especificado no arquivo de parâmetros de inicialização, PFILE ou SPFILE, e obtém os nomes e estados dos datafiles e dos redo logs. No entanto, nesta fase, não são realizadas verificações para confirmar a existência dos datafiles e dos redo logs. Iniciar no modo MOUNT para executar algumas operações de manutenção, como renomear datafiles e realizar restore do banco de dados.


OPEN: O software Oracle abre os redo logs e os datafiles de acordo com a lista registrada no controlefile. Inicie no modo OPEN para permitir que os usuários se conectem à instância do banco de dados. Os PDBs não são iniciados por padrão quando você abre o banco de dados.

Desligando a instância do banco de dados Oracle

Às vezes, é necessário desligar a instância do banco de dados (por exemplo, para alterar um parâmetro estático ou aplicar um patch no servidor do banco de dados).

Use o comando SHUTDOWN para desligar a instância do banco de dados, porém há vários modos possívels de se desligar a instância: ABORT, IMMEDIATE, NORMAL e TRANSACTIONAL.

ABORTIMMEDIATENORMALTRANSACTIONAL
Permite novas conexõesNONONONO
Espera até que todas as sessões terminemNONOYESNO
Espera até que todas as transações terminemNONOYESYES
Força um checkpoint e fecha os todos os arquivosNOYESYESYES


ABORT: Se os outros modos de desligamento não funcionarem, você pode usar o modo ABORT. O modo ABORT executa a menor quantidade de trabalho antes de desligar. Como esse modo coloca o banco de dados em um estado inconsistente e requer recuperação antes do reinício, use-o apenas quando necessário. Não é aconselhável fazer backup do banco de dados nesse estado. Geralmente, é usado quando nenhuma outra forma de desligamento funciona, quando há problemas para iniciar a instância do banco de dados ou quando você precisa desligar imediatamente devido a uma situação iminente (como aviso de queda de energia em questão de segundos). O modo ABORT costuma ser o modo de desligamento mais rápido, e o modo NORMAL é o mais lento. Os modos NORMAL e TRANSACTIONAL podem levar muito tempo, dependendo do número de sessões e transações.


Durante um desligamento no modo ABORT, uma falha na instância ou um reinício da instância do banco de dados no modo FORCE, o que acontece com o banco de dados:

  • As declarações SQL atuais sendo processadas pelo servidor Oracle são imediatamente interrompidas.
  • O servidor Oracle não espera pelos usuários que estão atualmente conectados ao banco de dados se desconectarem.
  • Os buffers do banco de dados e de redo não são gravados em disco.
  • Transações não confirmadas não são revertidas.
  • A instância é terminada sem fechar os arquivos.
  • O banco de dados não é fechado ou desmontado.
  • O próximo reinício requer recuperação da instância, que ocorre automaticamente pelo processo SMON.

IMMEDIATE: Um desligamento no modo IMMEDIATE é a opção mais utilizada. • As declarações SQL atuais sendo processadas pela instância do banco de dados não são concluídas. • O servidor de banco de dados não espera pelos usuários que estão atualmente conectados à instância do banco de dados se desconectarem. • O servidor de banco de dados faz rollback das transações ativas e desconecta todos os usuários conectados. • O servidor de banco de dados fecha e desmonta o banco de dados antes de desligar a instância do banco de dados.

NORMAL: NORMAL é o modo de desligamento padrão se nenhum modo for especificado com o comando SHUTDOWN. • Novas conexões não podem ser feitas. • O servidor Oracle espera que todos os usuários se desconectem antes de concluir o desligamento. • Buffers de banco de dados e de redo são gravados em disco. • Processos em segundo plano são terminados e a SGA é removida da memória. • O servidor Oracle fecha e desmonta o banco de dados antes de desligar a instância.

TRANSACTIONAL: Um desligamento no modo TRANSACTIONAL impede que os clientes percam dados, incluindo resultados de sua atividade atual. • Nenhum cliente pode iniciar uma nova transação nesta instância específica. • Um cliente é desconectado quando o cliente encerra a transação que está em andamento. • Quando todas as transações forem concluídas, ocorre um desligamento imediato.

Exemplos práticos:

Executando apenas o comando STARTUP é possível verificar todas as etapas que a instância transita até o estado OPEN, onde a base de dados está aberta e pronta para receber conexões:

É possível escolher a fase de inicialização da instância utilizando as opções NOMOUNT ou MOUNT:

STARTUP NOMOUNT, o arquivo de parametros PFILE ou SPFILE será lido e apenas a instância fará a alocação na memória:

-- VERIFICAR O STATUS(FASE) DA INSTÂNCIA

SELECT STATUS FROM V$INSTANCE;


Ao consultar o status da instância, aparecerá


STARTUP MOUNT, o arquivo de parametros PFILE ou SPFILE será lido, a instância iniciará e o controlfile será montado:


Ao consultar o status da instância, aparecerá como MOUNTED:


SHUTDOWN IMMEDIATE, que é o mais utilizado, ve-se também todas as fases:

Que tal resolver agora?