如何在oracle中缩小临时表空间?ORA-01652无法在表空间中扩展temp
查询临时表空间有多大:
SQL> SELECT tablespace_name, file_name, bytes
FROM dba_temp_files WHERE tablespace_name like 'TEMP%';
TABLESPACE_NAME FILE_NAME BYTES
----------------- -------------------------------- --------------
TEMP /the/full/path/to/temp01.dbf 13,917,200,000
为什么临时表空间这么大。您可能已经知道答案了。可能是由于您对一个大型查询使用了错误的排序(我已经做了多次以上)。这可能是由于其他一些特殊情况所致。如果是这种情况,那么您要做的就是缩小临时表空间并继续生活。
但是,如果您不知道该怎么办?在决定缩小之前,您可能需要对大型表空间的原因进行一些调查。如果定期发生这种情况,则您的数据库可能只需要那么多空间。
动态性能视图
V$TEMPSEG_USAGE
在确定原因方面非常有用。
也许您只是不关心原因,而只需要缩小它。这是您上班的第三天。如果数据和临时表空间为13GiB,则数据库中的数据仅为200MiB-只需收缩并继续。如果它再次增长,那么我们将调查原因。同时,该磁盘卷上的空间不足,我只需要退回空间。
让我们来看看缩小它。这将取决于您正在运行的Oracle版本以及如何设置临时表空间。
Oracle会尽力防止您犯任何可怕的错误,因此我们将尝试使用这些命令,如果这些命令不起作用,我们将采用新的方式进行缩减。
首先,让我们尝试缩小数据文件。如果我们能够做到这一点,那么我们将重新获得空间,我们可以担心它为什么会在明天增长。
SQL>
SQL> alter database tempfile '/the/full/path/to/temp01.dbf' resize 256M;
alter database tempfile '/the/full/path/to/temp01.dbf' resize 256M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
根据错误消息,您可能希望以小于文件当前位置的其他大小尝试此操作。我在这方面取得的成功有限。只有当临时表空间位于文件的开头并且小于您指定的大小时,Oracle才会收缩文件。一些旧的Oracle文档(他们已对此进行了纠正)说,您可以发出命令,并且错误消息将告诉您可以缩小到什么大小。在我开始担任DBA时,这还不是真的。您只需要猜测并重新运行该命令很多次,看看它是否有效。
好的。那没用。这个怎么样。
SQL> alter tablespace YOUR_TEMP_TABLESPACE_NAME shrink space keep 256M;
如果您使用的是11g(Maybee也使用的是10g)就可以了!如果可行,您可能需要返回上一个命令,然后再尝试一些。
但是,如果失败了怎么办。如果临时表空间是安装数据库时设置的默认临时表,那么您可能需要做更多的工作。在这一点上,我通常会重新评估是否真的需要这个空间。毕竟,所有磁盘空间的价格仅为GiB $ X.XX。通常我不想在生产时间内进行这样的更改。这意味着要在凌晨2点工作!(并不是说我真的反对在凌晨2点工作-只是……我也喜欢睡觉。而且我的妻子喜欢在凌晨2点让我在家...不在凌晨4点漫游市区,想记得在哪里我三个小时前停了车,听说过“远程通勤”的事情。
好...回到正题...如果要收缩的临时表空间是您的默认临时表空间,则必须首先创建一个新的临时表空间,将其设置为默认临时表空间,然后删除旧的默认临时表空间。表空间并重新创建它。后记删除创建的第二个临时表。
SQL> CREATE TEMPORARY TABLESPACE temp2
TEMPFILE '/the/full/path/to/temp2_01.dbf' SIZE 5M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
Tablespace created.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
Database altered.
SQL> DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
SQL> CREATE TEMPORARY TABLESPACE temp
2 TEMPFILE '/the/full/path/to/temp01.dbf' SIZE 256M REUSE
3 AUTOEXTEND ON NEXT 128M MAXSIZE unlimited
4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
Tablespace created.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
Database altered.
SQL> DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
希望这些对你有所帮助!
如何在oracle中缩小临时表空间?ORA-01652无法在表空间中扩展temp的更多相关文章
- oracle中创建用户、角色、权限、表空间简单使用
一.数据库用户 创建数据库用户 create user 用户名 identified by 密码; 授权 grant 权限名 to 用户名; 查看当前用户权限 select * from sessio ...
- Oracle备份恢复之无备份情况下恢复undo表空间
UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
- Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)
原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代 ...
- ORACLE表空间offline谈起,表空间备份恢复
从ORACLE表空间offline谈起,表空间备份恢复将表空间置为offline,可能的原因包括维护.备份恢复等目的:表空间处于offline状态,那么Oracle不会允许任何对该表空间中对象的SQL ...
- 【oracle11g,13】表空间管理2:undo表空间管理(调优) ,闪回原理
一.undo空间原理: dml操作会产生undo数据. update时,sever process 会在databuffer 中找到该记录的buffer块,没有就从datafile中找并读入data ...
- oracle创建临时表空间、用户表空间、创建用户关联表空间、授权等
1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test ...
- oracle创建用户和角色、管理授权以及表空间操作
show user 显示当前用户connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norma ...
- Oracle新建用户、角色,授权,建表空间
oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,gr ...
随机推荐
- supersockets接收过滤器(ReceiveFilter)
接收过滤器(ReceiveFilter)用于将接收到的二进制数据转化成请求实例(RequestInfo). 实现一个接收过滤器(ReceiveFilter), 你需要实现接口 IReceiveFilt ...
- PHP利用纯真IP数据库在本地实现IP地址信息查询
https://blog.csdn.net/myweishanli/article/details/45098693 准备工作: 建议本地IP地址数据库,请到http://www.cz88.net/这 ...
- H3C NAT的信息显示和调试
- Laravel基本使用、生成Cookie、返回视图、JSON/JSONP、文件下载及重定向
https://yq.aliyun.com/ziliao/23889 1.Response篇 1.1 基本响应 最基本的HTTP响应只需在路由闭包或控制器动作中返回一个简单字符串即可,但是具体业务逻辑 ...
- call undefined function openssl_cipher_iv_length
现象: 访问localhost/blog/public时,报错在verdor/framework/src/Illuminate/Encryption/Encrtpter.php的84行,找不到open ...
- js基础——基本包装类型
1.基本包装类型String var bz = new String("Li.Linda"); //引用类型(object) bz.name= bz.subst ...
- linux 自旋锁 API 简介
自旋锁原语要求的包含文件是 <linux/spinlock.h>. 一个实际的锁有类型 spinlock_t. 象任何其他数据结构, 一个 自旋锁必须初始化. 这个初始化可以在编译时完成, ...
- jQuery的使用及关于框架造型 专题
Introduction 正如jQuery所宣称的一样,Write Less, Do More.很多时候我们喜欢用它来解决问题.但增加一个库必然意味着更大的网络负担,意味着更高的页面初始载入时间.并且 ...
- Checkpoint R77.30 web ui登录配置
R77.30默认只能使用微软内核的浏览器进行web ui的登陆,在专家模式下修改后chrome和firefox正常登录,步骤如下: [Expert@BJ-ZHX-FW:0]# cp /web/htdo ...
- C++Review4_代码的组织
当一个项目越来越大,代码该如何组织?C++组织程序的策略是什么?遇到类.变量.函数的重名问题该如何解决? =============================================== ...