2011年7月12日火曜日

[基础知识] 临时表空间相关操作


1. 查询 temp 文件
select * from v$tempfile;

2. 查询 temp 表空间
select * from dba_tablespaces where contents='TEMPORARY';

3. 现在数据库使用中的temp表空间
select * from database_properties where property_name like '%TEMP%';

4. 查询临时表空间组
select * from dba_tablespace_groups;

5. 查询用户默认 temp 表空间
select username,temporary_tablespace from dba_users;

6. 查询当前会话的临时表空间使用情况
select x.sid,x.username,y.tablespace,y.blocks from v$session x,v$tempseg_usage y where x.saddr=y.session_addr;

7. 切换数据库默认临时表空间
alter database default temporary tablespace temp;

8. 把临时表空间组 tempgrp1 分配给用户
alter user go temporary tablespace tempgrp1;

9. 创建临时表空间
需要注意的是, 临时数据文件并不会在创建时立即分配实际大小, 而是在使用过程中动态扩展
有些情况下, 可能需要通过 dd 命令或 cp --sparse=never 创建一个非稀疏文件, 然后 create temporary ... reuse;
create temporary tablespace temp tempfile '/data/temp01.dbf' size 10m autoextend on next 1m tablespace group tmpgrp1;

10. 给 temp 表空间添加临时文件
alter tablespace temp02 add tempfile '/data/temp02.dbf' size 10m autoextend on next 1m;

11. temp 文件 offline
alter database tempfile '/data/temp01.dbf' offline;

12. 删除 temp 文件
alter database tempfile '/data/temp01.dbf' drop including datafiles;

13. 删除 temp 表空间 (数据库默认的 temp 表空间不能被删除)
drop tablespace temp02 including contents and datafiles;

14. resize 临时数据文件
alter database tempfile '/data/temp01.dbf' resize 50M;

0 件のコメント:

コメントを投稿