Exclua uma instância do oracle, da maneira certa

8

Desejo excluir uma instância do oracle (oracle 10.2.0.4.0) criada no SO AIX 6.0. Eu sei que posso excluir todos os arquivos dbf e ctl no terminal, mas acho que essa não é a melhor maneira de fazer isso. Eu acho que deve ser uma maneira mais limpa de fazer isso.

Desde já, obrigado.

Jorge Vega Sánchez
fonte

Respostas:

16

Você pode excluir bancos de dados com o DBCA, que cuida da maior parte dele.

Ou você pode fazer o seguinte, mas isso fará o mesmo que remover os arquivos de dados, refazer logs, arquivos de controle manualmente.

sqlplus / as sysdba
startup mount exclusive restrict
exit
rman target /
drop database including backups noprompt;
exit

Depois disso, você ainda precisará remover a entrada que pertence ao banco de dados de / etc / oratab, remover init.ora / spfile, arquivo de senha de $ ORACLE_HOME / dbs e limpar os diretórios de log (adump, bdump, cdump, udump).

Balazs Papp
fonte
8

Se você decidir usar o DBCA para excluir o banco de dados, poderá fazer o seguinte:

Se você deseja remover completamente uma instância do Oracle 10.2g de um diretório inicial do Oracle, primeiro você precisa identificar a instância no arquivo oratab . Por exemplo, esta entrada mostra que a instância do banco de dados Oracle testdb está associada ao seguinte ORACLE_HOME:

testdb:/u01/app/oracle/product/11.2.0/db_1:Y
mydb:/u01/app/oracle/product/10.2.0/db_1:N

Em seguida, você precisa definir o ambiente para o banco de dados que deseja remover, por exemplo:

/usr/local/bin/oraenv
ORACLE_SID = [testdb] ? mydb

Agora você pode iniciar o DBCA ( Assistente de Configuração do Banco de Dados ):

dbca

Em seguida, selecione o banco de dados a ser excluído (mydb) e clique em Concluir.

Você também pode excluir um banco de dados usando o DBCA no modo silencioso . Por exemplo, para o banco de dados de instância única:

dbca -silent -deleteDatabase -sourceDB <Oracle_Sid>

A remoção de um banco de dados Oracle exclui todos os dados no banco de dados. Por exemplo, entre outras coisas, esta ação excluirá :

1) Todos os arquivos resultantes desta consulta (para mydb):

SELECT name FROM v$datafile
   UNION
SELECT name FROM v$controlfile
   UNION
SELECT name FROM v$tempfile
   UNION
SELECT member FROM v$logfile

2) Entrada associada ao mydb no oratab

3) Entradas associadas ao mydb em listener.ora e tnsnames.ora

Se você deseja manter esses dados, faça backup do banco de dados antes de excluí-lo.

A partir do Oracle Database 11g Release 2 (11.2), você pode aproveitar o comando deinstall .

Shaunyl
fonte