Oracle はユーザーとテーブルスペースを削除します
Oracle は長い間使用されてきたため、多くの新しいユーザーとテーブルスペースが追加されており、クリーンアップする必要があります
単一のユーザーとテーブルスペースの場合は、次のコマンドを使用できます。完了。
ステップ 1: ユーザーの削除
drop user ×× cascade
説明: ユーザーを削除すると、ユーザーの下のスキーマ オブジェクトのみが削除され、対応するテーブルスペースは削除されません。
ステップ 2: テーブルスペースを削除する
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
ただし、開発環境用のデータベースであるため、クリーンアップする必要があるユーザーおよびテーブルスペースが多数あります。
アイデア:
DB 内のすべてのユーザーとテーブルスペースをエクスポートし、システムと有用なテーブルスペースをフィルターで除外し、有用な情報をテーブルにロードします。次に、有用なテーブルにないテーブルスペースを削除するルーチン ループを作成します
1. dba_users から username,default_tablespace を選択します。
2.
create table MTUSEFULSPACE ( ID Number(4) NOT NULL PRIMARY KEY, USERNAME varchar2(30), TABLESPACENAME varchar2(60), OWNERNAME varchar2(30) );
がロックされているようです。 。
削除する必要があるユーザーとテーブルスペースを Excel にエクスポートします。CONCATENATE を使用して SQL を作成します。
バッチ実行のために SQLdevelop にポストします。
100 人を超えるユーザーの場合、全体の削除には時間がかかります。
データファイルの特定の場所を見つけたい場合は、
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;
-- 空の表スペースを削除しますが、物理ファイルは含まれません
ORA-06550: 第 10 行, 第 5 列: PLS-00103: 出现符号 "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:
--空ではない表領域を削除しますが、物理ファイルは含まれません
select t1.name,t2.name from v$tablespace t1, v$datafile t2 where t1.ts# = t2.ts#;
--空の表領域を削除します。物理ファイルが含まれます
drop tablespace tablespace_name;
--空ではない表領域を削除します(物理ファイルが含まれます)ファイル
drop tablespace tablespace_name including contents;
-- 他のテーブルスペースのテーブルに、このテーブルスペースのテーブルのフィールドに関連付けられた外部キーやその他の制約がある場合、CASCADE CONSTRAINTS を追加する必要があります
drop tablespace tablespace_name including datafiles;読んでいただきありがとうございます, 皆さんのお役に立てれば幸いです、皆さんコメントありがとうございます このサイトからのサポート! ユーザーとテーブルスペースの削除に関する詳細な Oracle 関連記事については、PHP 中国語 Web サイトに注目してください。