临时表空间操作总结

简介:

一、 临时表空间理论

在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 观察系统运行情况与告警日志信息,无异常就删除旧的临时表空间的数据文件。

文章可以转载,必须以链接形式标明出处。



本文转自 张冲andy 博客园博客,原文链接:http://www.cnblogs.com/andy6/p/7284304.html    ,如需转载请自行联系原作者
相关文章
|
9月前
|
API 开发者 Windows
uniapp 极速上手鸿蒙开发
uniapp 自版本 `4.28.2024092502` 起支持鸿蒙应用开发,现版本 `4.36.2024112817` 同时支持鸿蒙应用和元服务开发。本文介绍使用 HBuilderX 4.24+ 和 DevEco Studio 进行环境配置、项目创建及运行的详细步骤,涵盖从 AGC 平台新建项目、配置证书到最终运行项目的全流程,帮助开发者快速上手鸿蒙开发。注意:HBuilderX 4.31+ 构建的鸿蒙运行包不支持 x86_64 平台,需使用真机调试。
940 85
uniapp 极速上手鸿蒙开发
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
491 0
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
|
安全 搜索推荐 数据挖掘
解密虾皮商品详情API接口:获取与运用
随着电子商务的蓬勃发展,各大电商平台纷纷开放API接口,为开发者提供丰富的数据资源和功能。虾皮作为东南亚领先的电商平台,其商品详情API接口在电商领域的应用尤为突出。本文将详细介绍虾皮商品详情API接口的功能、特点、获取方法及应用场景,帮助开发者更好地理解和运用这一接口。
344 2
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
837 15
|
安全 算法 编译器
【C++ 泛型编程 进阶篇】深入探索 C++ STL 容器的嵌套类型:识别、运用与最佳实践
【C++ 泛型编程 进阶篇】深入探索 C++ STL 容器的嵌套类型:识别、运用与最佳实践
388 7
|
Windows
windows端口冲突解决办法
windows端口冲突解决办法
506 1
windows端口冲突解决办法
|
存储 JavaScript
这一定是最有用的vite插件入门教程了!
【8月更文挑战第3天】 vite插件核心在于几个钩子函数的理解与使用,想开发vite插件,掌握这几个插件即可。本文中探讨了**config钩子**和**transformIndexHtml钩子**,相信大家看完对插件开发一定有了最基本的认识与方向!
830 3
|
机器学习/深度学习 JavaScript 前端开发
JavaScript拟合Math
【8月更文挑战第20天】
218 4
|
存储 NoSQL 前端开发
MongoDB——副本集与分片
 MongoDB复制是将数据同步在多个服务器的过程。
1201 0
MongoDB——副本集与分片
|
Java Linux 开发工具
Linux安装Java
Linux安装Java
692 0