博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
临时表空间操作总结
阅读量:6633 次
发布时间:2019-06-25

本文共 3729 字,大约阅读时间需要 12 分钟。

一、 临时表空间理论

在9i之前,如果一个数据库用户没有被指定默认临时表空间,那么oracle就会使用system表空间作为该用户的临时表空间,这是很危险的。在9i里面,database可以被指定一个默认临时表空间。这样如果数据库用户没有被明确指定临时表空间,oracle 9i就会自动指定database的默认临时表空间作为该用户的临时表空间。

默认临时表空间的限制:

1.1. 默认临时表空间必须是TEMPORARY的:

SQL> alter database default temporary tablespace EXAMPLE;
ORA-12901: default temporary tablespace must be of TEMPORARY type

1.2. 默认临时表空间一旦被指定,将无法在改成PERMANET:

SQL> alter tablespace tmp01 permanent;
ORA-03217: invalid option for alter of TEMPORARY TABLESPACE

1.3. 在删除默认临时表空间必须先重新指定默认临时表空间:

SQL> drop tablespace temp including contents and datafiles;
ORA-12906: cannot drop default temporary tablespace
SQL> create temporary tablespace tmp01 tempfile '+DATA' size 10m autoextend  off;
Tablespace created.
SQL> alter database default temporary tablespace TMP01;
Database altered.
SQL> drop tablespace temp including contents and datafiles;
Tablespace dropped.

1.4. 默认临时表空间无法OFFLINE:

SQL> alter tablespace temp offline;
ORA-03217: invalid option for alter of TEMPORARY TABLESPACE

1.5. 用户的临时表空间必须是TEMPORARY的(在9i之前没有这个限制,可以是PERMANENT):

SQL> alter user TEST temporary tablespace tmp01;
User altered.

1.6. 修改数据库默认临时表空间

SQL> alter database default temporary tablespace tmp_grp;
Database altered.

1.7. 如果删除了用户的临时表空间,而这个临时表空间又不是数据库的默认临时表空间(如果是数据库的默认临时表空间是删不掉的),用户的临时表空间不会自动转换到数据库的默认临时表空间上:

SQL> select tablespace_name, contents from dba_tablespaces where contents like 'TEMPORARY%';
TABLESPACE CONTENTS
---------- ---------
TEMP TEMPORARY
TMP01 TEMPORARY
SQL> select TEMPORARY_TABLESPACE from dba_users where username='TEST';
TEMPORARY_TABLESPACE
------------------------------
TMP01

SQL> drop tablespace TMP01 including contents and datafiles;

Tablespace dropped.

SQL> select TEMPORARY_TABLESPACE from dba_users where username='TEST';

TEMPORARY_TABLESPACE
------------------------------
TMP01

二、 临时表空间实战

2.1 查询临时表空间使用率

SELECT temp_used.tablespace_name,

total - used as "Free_M",
total as "Total_M",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name;

2.2 临时表空间扩容

--2.2.0查看临时表空间及大小

SQL>
col FILE_NAME for a40;
col TABLESPACE_NAME for a10;
select tablespace_name,file_name,bytes/1024/1204 m from dba_temp_files;
TABLESPACE FILE_NAME M
---------- ---------------------------------------- ----------
TEMP +DATA/devdb/tempfile/temp.264.936769423 24.6644518

--2.2.1查询当前默认临时表空间

col PROPERTY_VALUE for a15;
col DESCRIPTION for a25;
select * from database_properties where property_name like 'DEFAULT_TEMP_%';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ --------------- -------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace

--2.2.2resize临时表空间文件

SQL> alter database tempfile '+DATA/devdb/tempfile/temp.264.936769423' resize 30m;
Database altered.

--2.2.3查看系统文件大小,已经修改成功

+ASM1@rac1 /home/oracle$ export ORACLE_SID=+ASM1
+ASM1@rac1 /home/oracle$ asmcmd
ASMCMD> ls -ls +DATA/devdb/tempfile/temp.264.936769423
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name
TEMPFILE UNPROT COARSE AUG 04 18:00:00 Y 8192 3841 31465472 32505856 temp.264.936769423

三、 重建临时表空间

3.1 先建

SQL> create temporary tablespace tmp01 tempfile '+DATA' size 2m tablespace group tmp_grp;
Tablespace created.

SQL> create temporary tablespace tmp02 tempfile '+DATA' size 2m;

Tablespace created.

SQL> alter tablespace tmp02 tablespace group tmp_grp;

Tablespace altered.

SQL> alter database default temporary tablespace tmp_grp;

Database altered.

3.2 观察系统运行情况与告警日志信息,无异常就删除旧的临时表空间的数据文件。

转载地址:http://edbvo.baihongyu.com/

你可能感兴趣的文章
php扩展安装
查看>>
(转)android 牛人必修 ant 编译android工程
查看>>
求最大公约数与最小公倍数
查看>>
【WebService】使用jaxb完成对象和xml的转换
查看>>
C# 该行已经属于另一个表 ...
查看>>
从自动驾驶到学习机器学习:解读2017科技发展的15大趋势
查看>>
在Linux中永久并安全删除文件和目录的方法
查看>>
全民直播时代 内容监管还得靠技术
查看>>
Nginx Rewrite规则初探(转)
查看>>
黑魔法NSURLProtocol 可拦截网络加载
查看>>
Integration Services创建ETL包
查看>>
IE浏览器开发中遇到的问题
查看>>
php实现按utf8编码对字符串进行分割
查看>>
Ftp的断点下载实现
查看>>
[转载] ubuntu Authentication failure
查看>>
Ring0 - 链表
查看>>
修改数组之----splice
查看>>
Linux中chkconfig使用介绍
查看>>
二进制方式快速安装MySQL数据库
查看>>
查询指定库中所有表
查看>>