標籤:oracle 刪除 執行個體
今天建庫時選擇了OMF方式,結果檔案名稱採用Oracle自動命名的方式,看不懂啊,於是乎決定刪除再重建。
Oracle提供了刪除資料庫的指令:drop database。
需要資料庫處於mount狀態,然後alter system enable restricted session;,網上有文章說還需要exclusive,由於我是VM裝的,使用者只有我一個,所以不用可以。由於當前處於open狀態,需要改為mount,執行:
SQL> alter database close;
alter database close
*
ERROR at line 1:
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
原因是有個session仍串連,退出後再次執行,
SQL> alter database close;
Database altered.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter system enable restricted session;
System altered.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> drop database;
Database dropped.
此時alert.log記錄資訊:
Create Relation ADR_CONTROL
Create Relation ADR_INVALIDATION
Create Relation INC_METER_IMPT_DEF
Create Relation INC_METER_PK_IMPTS
USER (ospid: 8748): terminating the instance
Instance terminated by USER, pid = 8748
Deleted Oracle managed file /opt/app/ora11g/oradata/BISAL/controlfile/o1_mf_9x4fgq77_.ctl
Deleted Oracle managed file /opt/app/ora11g/flash_recovery_area/BISAL/controlfile/o1_mf_9x4fgypb_.ctl
Completed: drop database
Shutting down instance (abort)
License high water mark = 2
Fri Jul 25 19:09:26 2014
Instance shutdown complete
到oradata路徑下看已經沒有任何檔案了,那麼認為這個資料庫已經被刪除。
但再次執行dbca,企圖建立相同執行個體的庫時報錯:
雖然和bisal執行個體關聯的資料檔案、記錄檔等已經物理刪除了,但和這執行個體相關的設定檔沒有刪除,因此不能再次建立相同執行個體的庫。
此時需要手工刪除執行個體相關的配置:
1、刪除$ORACLE_BASE/admin/$ORACLE_SID所有目錄。
2、刪除$ORACLE_HOME/dbs下和SID相關的檔案和參數檔案,包括hc_bisal.dat,init.ora,lkBISAL,orapwbisal。
3、刪除/etc/oratab中和執行個體相關的部分。
4、可以在$ORACLE_HOME中執行find . -name bisal,刪除所有和執行個體相關的檔案。
再次執行dbca,就可以建立相同執行個體名稱的資料庫了。