Удалить экземпляр Oracle, правильный путь

8

Я хочу удалить экземпляр oracle (oracle 10.2.0.4.0), созданный в ОС AIX 6.0. Я знаю, что могу удалить все файлы dbf и ctl в Терминале, но я думаю, что это не лучший способ сделать это. Я думаю, должен быть более чистый способ сделать это.

Заранее спасибо.

Хорхе Вега Санчес
источник

Ответы:

16

Вы можете удалить базы данных с DBCA, который позаботится о большинстве из них.

Или вы можете сделать, как показано ниже, но это будет так же, как удаление файлов данных, журналов повторов, контрольных файлов вручную.

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

После этого вам все равно придется удалить запись, принадлежащую базе данных, из / etc / oratab, удалить файл init.ora / spfile, файл паролей из $ ORACLE_HOME / dbs и очистить каталоги журналов (adump, bdump, cdump, udump).

Балаз Папп
источник
8

Если вы решили использовать DBCA для удаления базы данных, вы можете сделать это:

Если вы хотите полностью удалить экземпляр Oracle 10.2g из домашнего каталога Oracle, сначала вам нужно определить его в файле oratab . Например, эта запись показывает, что экземпляр базы данных Oracle testdb связан со следующим ORACLE_HOME:

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

Далее вам нужно установить среду для базы данных, которую вы хотите удалить, например:

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

Теперь вы можете запустить Ассистент конфигурирования базы данных (DBCA):

dbca

Затем выберите базу данных для удаления (mydb) и нажмите «Готово».

Вы также можете удалить базу данных, используя DBCA в режиме без вывода сообщений . Например, для единственной базы данных:

dbca -silent -deleteDatabase -sourceDB <Oracle_Sid>

Удаление базы данных Oracle удаляет все данные в базе данных. Например, среди прочего, это действие удалит :

1) Все файлы, полученные в результате этого запроса (для 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) Запись, связанная с mydb в oratab

3) Записи, связанные с mydb в listener.ora и tnsnames.ora

Если вы хотите сохранить эти данные, убедитесь, что вы создали резервную копию базы данных перед ее удалением.

Начиная с Oracle Database 11g Release 2 (11.2), вы можете воспользоваться командой deinstall .

Shaunyl
источник