Hapus instance oracle, dengan cara yang benar

8

Saya ingin menghapus instance oracle (oracle 10.2.0.4.0) yang dibuat di OS AIX 6.0. Saya tahu saya bisa menghapus semua file dbf dan ctl di Terminal tetapi saya pikir itu bukan cara terbaik untuk melakukannya. Saya pikir harus menjadi cara yang lebih bersih untuk melakukan itu.

Terima kasih sebelumnya.

Jorge Vega Sánchez
sumber

Jawaban:

16

Anda dapat menghapus basis data dengan DBCA yang menangani sebagian besar dari itu.

Atau Anda dapat melakukan seperti di bawah ini, tetapi ini akan melakukan hal yang sama seperti menghapus datafile, redo log, controlfiles secara manual.

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

Setelah ini, Anda masih harus menghapus entri milik database dari / etc / oratab, hapus init.ora / spfile, file kata sandi dari $ ORACLE_HOME / dbs, dan bersihkan direktori log (adump, bdump, cdump, udump).

Balazs Papp
sumber
8

Jika Anda memutuskan untuk menggunakan DBCA untuk menghapus database, Anda dapat melakukan ini:

Jika Anda ingin sepenuhnya menghapus instance Oracle 10.2g dari direktori home Oracle, Anda harus terlebih dahulu mengidentifikasi instance dalam file oratab . Misalnya, entri ini menunjukkan bahwa instance database testdb Oracle dikaitkan dengan ORACLE_HOME berikut:

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

Selanjutnya, Anda perlu mengatur lingkungan untuk database yang ingin Anda hapus, misalnya:

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

Sekarang Anda dapat memulai Database Configuration Assistant (DBCA):

dbca

Kemudian, pilih Database yang akan dihapus (mydb) dan klik finish.

Anda juga dapat menghapus database menggunakan DBCA dalam mode senyap . Sebagai contoh, untuk database instance tunggal:

dbca -silent -deleteDatabase -sourceDB <Oracle_Sid>

Menghapus database Oracle menghapus semua data dalam database. Misalnya, antara lain, tindakan ini akan menghapus :

1) Semua file yang dihasilkan dari permintaan ini (untuk 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) Entri yang terkait dengan mydb di oratab

3) Entri yang terkait dengan mydb di listener.ora dan tnsnames.ora

Jika Anda ingin menyimpan data ini, pastikan Anda membuat cadangan database sebelum menghapusnya.

Dimulai dengan Oracle Database 11g Release 2 (11.2), Anda dapat memanfaatkan perintah deinstall .

Shaunyl
sumber