在检查aix5.3系统的磁盘空间时,发现临时表空间所在临时数据文件已经达到20G,已经占用了100%。
因为是正式数据库服务器,不能随便重启数据库。
以下的操作是用数据库的sys超级用户操作
刚开始打算把临时表空间的数据文件重新缩小就好了
执行:
SQL> alter database tempfile
2 '/oracle/oms/oradata/temp/temp01.dbf' resize 10240M;
数据库报错,重新设置的空间大小不能满足需要。
看来需要重新建立新的临时表空间替换当前的表空间了
1、首先查看当前的数据库默认表空间:
SQL>select * from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';
确认当前的临时表空间为TEMP
2、查看目前临时表空间的大小:
SQL>select file_name,tablespace_name,bytes/1024/1024 "MB",autoextensible from dba_temp_files;
3、创建新的临时表空间:(先在其他的磁盘空间借用一下空间)
SQL> create temporary tablespace temp02
2 tempfile '/oracle/oms/oradata/undo/temp02.dbf'
3 size 512M;
4、把新建的临时表空间却换成数据库的默认临时表空间
SQL> alter database default temporary tablespace temp02;
5、确认目前数据库的默认临时表空间
SQL>select * from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';
确认temp02为当前的数据库默认表空间
6、在删除temp临时表空间之前,先把运行在temp临时表空间的sql语句kill掉,这样的sql语句多为排序的语句
SQL>Select se.username,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value))as Space,
tablespace,segtype,sql_text
from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and s.hashvalue=su.sqlhash
and s.address=su.sqladdr
order by se.username,se.sid;
查询出来之后,kill掉这些sql语句:
SQL>alter system kill session '524,778'; (假如某一条运行的sql语句的SID为524,serial#为778)
确认在temp临时表空间中没有运行的sql语句之后,则可以删除temp临时表空间数据文件了
7、删除temp临时表空间
SQL> drop tablespace temp including contents and datafiles;
这样很快就可以删除了临时表空间的数据文件
8、现在temp02临时表空间占据了别人的磁盘空间,需要重新把临时表空间建立在原来的位置,重新建立temp临时表空间
SQL> create temporary tablespace temp
2 tempfile '/oracle/oms/oradata/temp/temp01.dbf'
3 size 512M autoextend on maxsize 15G;
新建一个512M的自动扩展临时表空间,最大的扩展为15G。
查看新建的temp临时表空间是否正确:
SQL>select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024,autoextensible from dba_temp_files;
9、把新建的temp临时表空间却换成数据库的默认临时表空间
SQL> alter database default temporary tablespace temp;
10、确认目前数据库的默认临时表空间
SQL>select * from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';
确认temp为当前的数据库默认表空间
11、目前把原来的temp临时表空间变成了512M,把剩余的磁盘空间空了出来,temp02临时表空间就没有用了,删除temp02临时表空间
SQL> drop tablespace temp02 including contents and datafiles;
分享到:
相关推荐
### Oracle 临时表空间详解 #### 一、Oracle表空间概览 在Oracle数据库系统中,数据被组织成多个逻辑单元,这些单元被称为表空间。每个表空间由一个或多个物理磁盘文件(称为数据文件)组成,并且是数据库中的最高...
- **空间不足**:如果临时表空间大小不足,Oracle会频繁写磁盘,导致I/O压力增大,影响性能。 - **竞争资源**:多个用户同时使用同一个临时表空间可能导致资源争抢,降低性能。 - **碎片过多**:频繁的写入和删除...
这样,当表空间满时,数据文件会自动增大,但要注意设置合理的增长限制,避免无节制地占用磁盘空间。 6. **定期清理临时段**: - 清理会话:结束不再需要的会话,以释放它们占用的临时空间。 - 设置全局临时表:...
通过使用临时表空间组,可以确保有足够的空间供查询使用,从而避免出现磁盘排序等问题。 2. **多默认临时表空间:** 在数据库级别,管理员可以定义多个默认的临时表空间。这样,在创建新会话或用户时,可以自动分配...
此外,还可以为用户指定临时表空间,用于处理临时数据,如排序和并行查询: ```sql ALTER USER myuser TEMPORARY TABLESPACE temp_tablespace; ``` 这里的`temp_tablespace`应替换为实际的临时表空间名。 总结起来...
- **存储空间**:虽然临时表在会话结束或事务提交后会被清理,但它们仍会占用内存和磁盘空间,因此需要合理使用,以避免资源浪费。 总结来说,Oracle存储过程中使用临时表是优化数据处理和提高性能的有效手段,正确...
### 一、Oracle临时表空间简介 Oracle数据库中的临时表空间主要用于存储临时对象,如排序操作、汇总统计、临时表等。这些操作在执行完毕后,数据会自动从临时表空间中清除,不会永久保存。然而,在高并发或大容量...
在创建表空间和用户的过程中,管理员还需要关注Oracle的文件路径和文件系统的管理,确保数据库文件存储在适当的磁盘上,以优化性能并防止磁盘空间耗尽的问题。同样需要注意的是,这些操作应由具有相应权限的数据库...
- **减少磁盘I/O:** 由于数据存储在临时表空间,可以减少对永久表空间的读写操作,提高系统整体性能。 #### 六、注意事项 - **临时表空间管理:** 确保有足够的空间供临时表使用,特别是在高并发环境下。 - **...
在 Oracle 数据库中,表空间可以分为三种类型:数据表空间、UNDO 表空间和临时表空间。 1. 数据表空间:用于存储数据库对象,如表、索引、视图等。 2. UNDO 表空间:用于存储Undo 信息,用于回滚事务。 3. 临时表...
然而,在某些情况下,表空间可能会出现所谓的“暴涨”现象,即短时间内迅速增大,这可能会导致磁盘空间不足等问题。因此,了解如何取消表空间的自动扩展功能对于避免此类问题至关重要。 #### 一、表空间自动扩展...
临时表空间用于存放临时表和其他临时数据,通常在会话结束时被清除。 **示例代码:** ```sql CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'D:\oracle\product\10.2.0\oradata\orcl\test_temp01.dbf' SIZE 32M ...
总结来说,创建和管理Oracle表空间涉及多个方面,包括创建表空间和临时表空间、指定数据文件、设置自动扩展、创建用户并分配表空间、授权以及维护表空间的数据文件。理解这些概念和操作对于有效管理Oracle数据库至关...
- **临时表空间**:用于临时存储SQL查询的中间结果,例如排序和联接操作。 - **恢复表空间**:用于存放还原的数据文件,通常在数据库恢复过程中使用。 3. **创建表空间的步骤** 创建表空间的基本语法如下: ```...
3. 临时表空间(Temporary Tablespace):用于临时存储排序和聚合操作的结果。 4. 回滚表空间(Rollback Tablespace):存储事务回滚信息,用于恢复操作。 5. Undo表空间(Undo Tablespace):Oracle 9i之后引入,也...
示例中的SQL语句创建了一个名为`cqtimas`的新用户,并设置了其默认表空间为`CQCY7`,临时表空间为`temp`。 ```sql CREATE USER cqtimas IDENTIFIED BY cqtimas DEFAULT TABLESPACE CQCY7 TEMPORARY TABLESPACE temp...
解决策略是检查表空间的可用空间,并通过修改表空间的默认存储参数或改变用户的临时表空间设置来增加空间。使用`ALTER TABLESPACE`命令可以调整临时表空间的初始和后续扩展大小,或者通过`ALTER USER`命令为用户指定...
在Oracle数据库中,表空间是存储数据的对象,分为数据表空间、索引表空间和临时表空间等。当表空间出现问题,如超出其最大容量(在Windows环境下可能限制为4GB),可能导致数据库服务中断。文中提到的问题即是一个...
在Oracle数据库管理中,创建临时表空间是十分重要的步骤之一,尤其是在处理大量临时数据或排序操作时。临时表空间主要用于存储排序、索引创建和其他临时操作过程中产生的中间结果。以下是创建临时表空间的具体命令:...