Usando o comando DROP DATABASE no Oracle 10g – Revenge of DBA

Juntamente com o Oracle 10g foi introduzido um comando que é o sonho de todo DBA, o comando “DROP DATABASE”, ele serve para quando você está de saco cheio daquele banco que sempre toma mais do que 90% do seu tempo e está sempre com queries ruins, consumindo bastante CPU e você, mesmo sem ter culpa (pelo menos diretamente), acaba tomando uma chamada da equipe de S.O, pois a CPU da máquina está colada no teto.

Se você já passou por problemas semelhantes, seus dias de stress acabaram!!! Com esse comando, você resolve em poucos minutos o que levaria meses para resolver pelas vias normais. “Rsrsrsrs”. Brincadeiras à parte, o comando DROP DATABASE é muito útil quando você quer remover todos os arquivos pertencentes a um banco de dados, e se temos mais de um database rodando no mesmo servidor, ele ainda é uma das maneiras mais seguras, pois evita erros humanos (Podemos remover facilmente arquivos de outro banco de dados usando o utilitário “rm” do Unix, no caso do Windows é mais difícil, pois ele trava os arquivos ao serviço do Windows). Veremos abaixo como usar este comando e os requisitos para que o mesmo seja executado com sucesso:

exemplo do comando drop database

Na tela mostrada acima, temos todos os passos que envolvem a eliminação do banco de dados.

1) Exporte a variável corretamente para evitar matar o banco errada, é tudo isso que não queremos, erros na carreira de DBA são quase inadmissíveis.

No Unix

$ export ORACLE_SID=<>

No Windows

Set Oracle_sid=<>

2) Logue-se no banco de dados como SYS, no meu caso como estou logado no host estou usando autenticação de S.O.

$ sqlplus “/as sysdba”

Um dos requisitos é que iniciemos o banco de dados em modo restrito exclusivo, então primeiro ele deve ser baixado. Como eu irei eliminar todos os seus arquivos, posso baixar com o comando “shutdown abort”.

SQL> shutdown abort;

Quando vir a mensagem, quase que instantaneamente, “ORACLE instance shut down” pois sabemos que o comando shutdown em modo abort faz. Não sabe? Então é bom saber:

O comando shutdown em modo abort, elimina todas as sessões deixa todos os DML’s precisando de rollback, libera da memória o espaço usado pela SGA e termina os background processes. Muitos DBA’s morrem de medo desse método de shutdown com o “mito” de o banco de dados não voltar, quando não deveriam. Esse comando simplesmente diz ao Oracle para terminar o trabalho atual “agora, já”, com isso, vai implicar em um “instance recover” no momento que o banco de dados iniciar que é bem diferente de um “media recover” (onde temos de aplicar archives).

3) Depois de uma breve explicação sobre o shutdown abort, vamos iniciar o banco em modo mount exclusive restrict.

SQL> startup mount exclusive restrict;

Total System Global Area 8.5899E+10 bytes

Fixed Size 2245728 bytes

Variable Size 1308625824 bytes

Database Buffers 8.4574E+10 bytes

Redo Buffers 14528512 bytes

Database mounted.

4) Depois de verificar a mensagem “Database mounted”, podemos eliminar o banco de dados por inteiro com o comando “DROP DATABASE”. Este comando vai apagar todos os datafiles, controlfiles, redolog files e spfiles (O banco de dados inteiro). Então emitimos o commando drop database para que ele faça o trabalho para nós:

SQL> drop database;

Database dropped.

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

Com esse retorno, não existe mais o banco de dados que você foi incumbido de eliminar.

Forte abraço,

rodrigo at mufalani dot com dot br

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *