Oracle 刪除用戶和表空間
Oracle 使用時間長了, 新增了許多user 和tablespace. 需要清理一下
對于單個user和tablespace 來說, 可以使用如下命令來完成。
?步驟一:? 刪除user
drop user ×× cascade
說明: 刪除了user,只是刪除了該user下的schema objects,是不會刪除相應(yīng)的tablespace的。
步驟二: 刪除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
但是,因為是供開發(fā)環(huán)境來使用的db, 需要清理的user 和 table space 很多。
思路:
Export出DB中所有的user和tablespace, 篩選出系統(tǒng)的和有用的tablespace,把有用的信息load到一張表中去。然后寫例程循環(huán),把不在有用表的tablespace刪掉
1. select username,default_tablespace from dba_users;
2.
create table MTUSEFULSPACE ( ID Number(4) NOT NULL PRIMARY KEY, USERNAME varchar2(30), TABLESPACENAME varchar2(60), OWNERNAME varchar2(30) );
3.
declare icount number(2); tempspace varchar2(60); begin for curTable in (select username as allusr,default_tablespace as alltblspace from dba_users) loop tempspace :=curTable.alltblspace; dbms_output.put_line(tempspace); select count(TABLESPACENAME) into icount from MTUSEFULSPACE where TABLESPACENAME = tempspace; if icount=0 then DROP TABLESPACE tempspace INCLUDING CONTENTS AND DATAFILES; end if; commit; end loop; end;
執(zhí)行后會報如下錯誤
ORA-06550: 第 10 行, 第 5 列: PLS-00103: 出現(xiàn)符號 "DROP"在需要下列之一時: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
好像是被鎖了。。
沒辦法,例程不能寫,就只能組出語句執(zhí)行了。
把需要刪除的user, tablespace 導(dǎo)出到Excel. 使用CONCATENATE 組出SQL.
貼到SQLdevelop 批量執(zhí)行。
整個刪除會比較耗時間, 100多個user. 用了12個小時左右。
如要找datafile的具體位置,可以使用
select t1.name,t2.name from v$tablespace t1, v$datafile t2 where t1.ts# = t2.ts#;
SQL code
--刪除空的表空間,但是不包含物理文件
drop tablespace tablespace_name;
--刪除非空表空間,但是不包含物理文件
drop tablespace tablespace_name including contents;
--刪除空表空間,包含物理文件
drop tablespace tablespace_name including datafiles;
--刪除非空表空間,包含物理文件
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
--如果其他表空間中的表有外鍵等約束關(guān)聯(lián)到了本表空間中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
?感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多Oracle 刪除用戶和表空間詳細介紹相關(guān)文章請關(guān)注PHP中文網(wǎng)!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
