如何在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 ...
随机推荐
- Linux下yum安装Redis
检验是否有yum源: [root@localhost ~]# yum install redis 显示没有软件包Redis,安装epel仓库(提供一些RHEL/CentOS默认不提供的软件包). [r ...
- Tomcat最佳线程数
什么是最佳线程数? 为满足更多用户访问需求,可以调整Tomcat线程数,但是不能太大,否则导致线程切换开销,随着用户递增(线程数也随之调整),系统QPS逐渐增加,当用户量达到某个值,QPS并不会增加, ...
- visualStudio 无法登陆
如果遇到 visualStudio 无法登陆,可以看下我的方法,可能有用 尝试关闭代理 打开设置.网络.代理,关了它,试试 如果遇到下面的问题: 我们无法刷新此账户的凭据 No home tenant ...
- P1044 最大值最小化
题目描述 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要.当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写 \( ...
- dotnet core 通过 frp 发布自己的网站
很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...
- H3C STP配置示例
- 组合数学入门—TwelveFold Way
组合数学入门-TwelveFold Way 你需要解决\(12\)个组合计数问题. \(n\)个有标号/无标号的球分给\(m\)个有标号/无标号的盒子 盒子有三种限制: A.无限制 B.每个盒子至少有 ...
- HTML常用布局
一般的局部布局无非采用如下的技术: 1)div + ul(ol)-li:用于分类导航或菜单等场合 2)div + dl-dt-dd:用于图文混编场合 3)table-tr-td:用于图 ...
- 2018-8-10-C#-6.0-字符串-String-Interpolation
title author date CreateTime categories C# 6.0 字符串 String Interpolation lindexi 2018-08-10 19:16:52 ...
- Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾,wc -c统计字符串长度
Linux统计文件数量 ls -l | grep "^-" | wc -l “^-” 一般文件 “^d” 目录文件 shell/vim中^表示开头 cat repatterns ...