`

ORACLE临时段表空间不足,修改表空间大小

阅读更多
问题一ORA-01652:unable to extend temp segment by num in tablespace name 
ORA-01652:unable to extend temp segment by num in tablespace name 
产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象。 
解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小: 
SQL>Select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=’’; 
返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数: 
SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_NAME=name; 
通过下面的SQL命令修改临时段表空间的缺省存储值: 
SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY); 
适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题: 
SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name; 
使用ALTER TABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加了数据文件,就不能再删除它,若要删除,就要删除表空间。 
一个报错例子如下: 
以上错误还有可能是创建用户的时候没有指定默认临时表空间:
create user test identified by  password default tablespace test Temporary TABLESPACE Temp;

 http://zscomehuyue.iteye.com/blog/600465

 

问题二 ORACLE错误1658,无法为表空间中的段创建ITINIAL区

问题产生的原因:数据导入过程中表空间不足

现象:导入过程中出现“ORACLE错误1658,无法为表空间中的段创建ITINIAL区

解决这个问题的方法:设置表空间为自增长模式,文件大小设置为足够大或者设置能不限制

以下命令创建的时候设置模式与大小

create tablespace test Logging datafile 'F:\oracle\product\10.2.0\oradata\develop\xuping.ora' size 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;;

 

以下则是创建之后在开发阶段修改模式与大小

由于在最开始建立表空间时,表空间设的不够大,而且不是AUTOEXTEND的,今天发现不够用了,数据导不进去。 
现在要做的事情有两个,一是把表空间调整大一些,另一个是把表空间设置成可以自动扩展的。 

与表空间有关的几个视图如下: 

select * from dba_tablespaces; 
select * from dba_temp_files; 
select * from dba_data_files; 

select * from dba_free_space; 
select * from v$tempfile; 
select * from v$datafile; 

扩展表空间文件大小的语法如下: 
alter database [datafile name/tempfile name] resize [new_size]; 
alter database datafile ‘E:\EFMP\ORADATA\EFMP_DATA1.DBF’ resize 1024M; 
alter database tempfile ‘E:\EFMP\ORADATA\EFMP_TEMP2.DBF’ resize 800M; 
修改表空间属性的语法如下: 
alter database [datafile name/tempfile name] autoextend on next [increment_size] maxsize [max_size/unlimited]; 
alter database datafile ‘E:\EFMP\ORADATA\EFMP_DATA1.DBF’ autoextend on next 5M maxsize 2048M; 
alter database tempfile ‘E:\EFMP\ORADATA\EFMP_TEMP2.DBF’ autoextend on next 5M maxsize 1024M; 
要留意操作系统和相关的工具(例如备份软件)在文件尺寸上有限制。在重新调整数据文件或开启Oracle的数据文件自动扩展特性前,必须熟悉你的操作系统的限制。 

表空间使用久了,特别是在开发阶段,经过频繁的表、视图等对象的添加删除,会产生碎片。整理碎片最好的方式是将数据导出,然后删除掉表空间,重建表空间,再导入数据。 

 

 

 

提供oracle文档链接

http://tahiti.oracle.com/
分享到:
评论

相关推荐

    ORACLE修改表空间大小

    ### ORACLE 修改表空间大小详解 #### 一、问题背景及原因分析 在Oracle数据库管理过程中,经常会遇到因表空间不足导致的各种问题。其中一种常见问题是ORA-01652错误,即“无法在指定表空间扩展临时段”。这通常...

    学习oracle创建一个表空间创建临时表空间创建用户表空间资源的权限

    在Oracle数据库系统中,表空间(Tablespace)是存储数据对象(如表、索引、视图等)的逻辑单位,而临时表空间(Temporary Tablespace)则用于存储临时数据,比如排序或联接操作产生的中间结果。创建和管理表空间及...

    oracle-临时表空间

    此查询显示了每个表空间的空闲空间大小。 另外,也可以通过更详细的计算来获取表空间的总容量、已使用量以及剩余空间百分比等信息: ```sql SELECT A.TABLESPACE_NAME, A.BYTES TOTAL, B.BYTES USED, C.BYTES FREE...

    oracle创建表空间用户等

    本文将详细介绍如何在Oracle数据库中创建表空间、创建用户并分配相应的权限,以及如何设置表空间的自增长和修改其大小。 #### 一、创建表空间 表空间是Oracle数据库中的逻辑存储单元,它由一个或多个数据文件组成...

    Oracle的Temp表空间和UNDO表空间的处理

    4. **调整新表空间大小**(如果需要): ```sql ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/BXG/temp02.dbf' RESIZE 100M; ``` #### 二、UNDO表空间处理 UNDO表空间用于存储事务的回滚信息,以便在需要...

    Oracle 表空间 收缩

    2. **移动表、索引等对象**:将block_id大于目标表空间大小的表、索引、分区表等对象移动到一个新的临时表空间中。 3. **收缩表空间**:在确保所有对象都已妥善处理后,执行收缩操作。 4. **移动对象回原表空间**:...

    Oracle 12c中的表空间管理、用户和角色、临时Undo.pdf

    除了上述知识点外,文档中还提到了一些实际操作命令和SQL语句,如创建表空间、添加数据文件、查询表空间属性、设置默认表空间、更改PDB存储参数、创建临时表空间、查询CDB表空间大小等。这些操作命令和SQL语句是...

    Oracle数据库创建表空间和用户.doc

    例如,可以选择使用自动扩展(Autoextend)功能来动态调整表空间大小,确保数据存储的灵活性。 #### 4. 创建临时表空间 除了主表空间,临时表空间也非常重要,主要用于排序操作、临时表和索引构建等场景。同样地,...

    Oracle临时表空间处理.txt

    #### 三、调整临时表空间大小 ##### 1. 缩小临时表空间大小 ```sql ALTER DATABASE TEMPFILE '/path/to/file' RESIZE 100M; ``` 通过上述命令可以减小指定临时文件的大小。 ##### 2. 扩展临时表空间 ###### 方法一...

    oracle创建数据库表空间.doc

    其中,`TEMPORARY TABLESPACE` 指定创建的是临时表空间,`test_temp` 是表空间的名称,`TEMPFILE` 指定了表空间的文件路径和名称,`SIZE` 指定了表空间的初始大小,`AUTOEXTEND ON` 指定了表空间的自动扩展功能,`...

    Oracle创建表空间、临时表、用户及用户授权

    在Oracle数据库管理中,表空间(Tablespaces)、临时表(Temporary Tables)、用户(Users)以及用户授权(User Authorization)是数据库管理员(DBA)进行数据库架构设计和安全管理的基础操作。以下将详细介绍这些...

    oracle 创建表空间、回滚段、用户、表的详细语法

    Oracle 创建表空间、回滚段、用户、表的详细语法 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。创建表空间、回滚段、用户、表是 Oracle 中最基本的操作之一,本文将详细介绍这四个操作的语法和步骤。 ...

    oracle 12c SYSAUX表空间过大

    SYSAUX表空间是Oracle数据库中的一个重要组成部分,它存储了系统级别的对象和服务,包括数据字典、索引、临时段等。当SYSAUX表空间占用过大时,可能导致数据库性能下降,甚至影响到正常的数据库操作。 **症状分析**...

    Oracle 表空间建立方法

    表空间可以进行各种修改操作,包括添加数据文件、调整大小、更改状态等。 ##### 添加数据文件 ```sql ALTER TABLESPACE tablespace_name ADD DATAFILE 'path/filename.xxx' SIZE xM MAXSIZE xM/UNLIMITED; ``` - `...

    Oracle表空间

    其中,tablespace_name 是要创建的临时表空间的名称,file_name 是临时数据文件的名称,size 是临时表空间的初始大小。 例如,创建一个名为 TEST07 的临时表空间,临时数据文件的名称为 F:\app\oraclezq\oradata\...

    Oracle 表空间与数据文件

    表空间是 Oracle 数据库中的一个逻辑存储对象,用于存储永久段、临时段和回滚段等数据。 Oracle 表空间分类有系统表空间和非系统表空间。系统表空间包括 SYSTEM、SYSAUX 等,非系统表空间包括 USERS、EXAMPLE 等。每...

    oracle表空间管理汇总.docx

    Oracle 表空间管理包括创建表空间、添加数据文件、删除表空间数据文件、扩展表空间大小、修改表空间属性、删除表空间等操作。 1. 创建表空间 创建表空间是 Oracle 表空间管理的基本操作。创建表空间需要指定表空间...

    表空间暴长后如何才能取消自动扩展

    - 减少了DBA手动管理表空间大小的工作量。 4. **缺点**: - 可能会导致磁盘空间迅速耗尽。 - 数据文件可能变得非常大,从而影响备份和恢复操作。 #### 二、取消表空间自动扩展的方法 1. **直接修改数据文件...

    Oracle 表空间查询与操作方法

    2. **查询Oracle用户的默认表空间和临时表空间** ```sql SELECT default_tablespace, temporary_tablespace FROM dba_users; ``` **解释**: - `dba_users` 表记录了所有用户的详细信息。 - 查询每个用户的...

    ORACLE 导入导出表空间文档

    ### Oracle 数据库表空间管理与数据导入导出详解 #### 表空间概念及管理 在Oracle数据库中,**表空间**是逻辑存储结构的一部分,用于组织数据库中的数据和索引。一个表空间由一个或多个数据文件组成,这些数据文件...

Global site tag (gtag.js) - Google Analytics