`

Tablespace_回收Temp表空间

 
阅读更多

前几天重新建立大数据量表索引的时候temp表空间扩展了好大,一般的temp不会用太多,因此回收temp表空间

SQL>Alter tablespace TEMP coalesce;

ORA-03217:invalid option for alter of TEMPORARY TABLESPACE 

 

Cause: invalid option for alter of temporary tablespace was specified

Action: Specify one of the valid options: ADD TEMPFILE, TEMPFILE ONLINE, TEMPFILE OFFLINE

 

出错原因:Oracle9i 以上本地管理的temp表空间是不能使用 alter database , alter tablespace 来更改的。因为他们 在数据字典中没有参考信息。 也不需要备份tempfile 文件 。 

There is no need to backup the temporary locally manged tablespaces because: 
1. Locally managed tempfiles are always set to NOLOGGING mode. So thus will have no undo. 
2. Extents are managed by bitmap in each datafile to keep track of free or used status of blocks in that datafile.
3. The data dictionary does not manage the tablespace. 
4. Rollback information is not generated because there is no update on the data dictionary 
5. Media recovery does not recognize tempfiles.

 

1)用户缺省表空间查询:

SQL>select username,temporary_tablespace from dba_users;

USERNAME                       TEMPORARY_TABLESPACE
------------------------------ ------------------------------
ISGIS                                  TEMP
SCOTT                               TEMP

 

 

2)表空间包含的数据文件:

SQL>select name from v$tempfile;

NAME
-----------------------------------------------
/opt/ora10g/oradata/gis/temp01.dbf

 

 

3)创建新表空间:

SQL>create temporary tablespace TEMP2 TEMPFILE '/opt/oracle/database/oradata/gis/temp02.dbf ' SIZE 512M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
 
Tablespace created

 

4)看哪些用户在使用表间:

SQL>SELECT se.username,sid,serial#,sql_address,machine, program,tablespace,segtype,contents
  2  FROM v$session se,v$sort_usage su
  3  WHERE se.saddr=su.session_addr
  4  Order By machine ;

USERNAME      SID    SERIAL# SQL_ADDRESS MACHINE      PROGRAM       TABLESPACE       SEGTYPE   CONTENTS
------------------------------ ---------- ---------- ----------- ---------

5)修改系统默认表空间及确认:

SQL>alter database default temporary tablespace temp2;
Database altered

SQL>select username,temporary_tablespace from dba_users;
USERNAME                       TEMPORARY_TABLESPACE
------------------------------ ------------------------------
XMJL                                  TEMP2
MDDATA                           TEMP2

6)删除旧表空间:

SQL>drop tablespace temp including contents and datafiles;
 Tablespace dropped

其实到此步就应该释放了临时表空间占用的存储空间,为了保持一致,可以删掉这个过渡的表空间,建立和原来名称一致的临时表空间。

 

7)创建原来临时表空间

 
SQL> create temporary tablespace TEMP TEMPFILE '/opt/oracle/database/oradata/gis/temp01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
Tablespace created

8)修改系统默认表空间及确认:
SQL> alter database default temporary tablespace temp;
Database altered
 
SQL> select username,temporary_tablespace from dba_users;
USERNAME                       TEMPORARY_TABLESPACE
------------------------------ ------------------------------
XMJL                                 TEMP
MDDATA                           TEMP

9)删除中转的临时表空间TEMP2

SQL>drop tablespace temp2 including contents and datafiles;
Tablespace dropped

10)确认临时表空间属性

SQL>select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_temp_files;
FILE_NAME                                                                        TABLESPACE_NAME                        MB AUTOEXTENSIBLE
-------------------------------------------------------------------------------- ------------------------------ ---------- --------------
/opt/oracle/database/oradata/gis/temp01.dbf                                      TEMP                                  500 YES

分享到:
评论

相关推荐

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

    ### Oracle的Temp表空间与UNDO表空间处理详解 #### 一、Temp表空间处理 在Oracle数据库中,Temp表空间主要用于存储临时对象,如排序、分组等操作产生的临时数据。这些操作可能会导致Temp表空间迅速增大。然而,...

    表空间及临时文件的操作

    ### 表空间及临时文件的操作 #### 一、创建表空间 在Oracle数据库中,创建表空间是一项基础但重要的操作。表空间是Oracle数据库中逻辑存储结构的一部分,它由一个或多个数据文件组成,用于存储数据库中的数据。下面...

    oracle 用户 表空间 以及几个工作中用到的特殊函数

    使用`CREATE TABLESPACE`命令创建新的表空间。例如: ``` create tablespace histdb datafile 'E:\oracle\histdb.dbf' size 200m autoextend on next 10m maxsize unlimited; ``` 这里创建了一个名为`histdb`的...

    oracle常用命令

    创建新的表空间或对现有表空间进行调整是非常常见的操作。 #### 创建新的表空间 **命令示例:** ```sql CREATE UNDO TABLESPACE jinlian_undo DATAFILE '/opt/oracle/oradata/jinlian_undo.dbf' SIZE 20M; ``` ##...

    oracle表空间相关资料

    2. **监控与调整**:定期检查表空间的使用情况,及时调整表空间大小或进行空间回收。 3. **安全性考虑**:对于不同权限的用户,应确保他们只能访问被授权的表空间。 4. **性能优化**:合理使用本地管理和段空间管理...

    oracle常用命令20121228

    这些知识点不仅涵盖了基本的时间查询、数据恢复等常用命令,还涉及了回收站管理、表空间操作以及性能监控等方面的内容。 ### 1. 查询Oracle数据库当前时间 用于获取Oracle数据库系统当前的时间戳。 - `SELECT ...

    Oracle数据库用户角色、表空间创建、删除命令.pdf

    6. 删除表空间:`drop tablespace tablespace_name including contents;` 以上是Oracle数据库中关于用户角色、表空间创建与删除的基本操作,以及数据备份恢复的方法。了解并熟练掌握这些命令对于有效管理Oracle...

    5.1 PLSQL创建表空间-关联用户-DMP文件导入 1

    - `TEMPORARY TABLESPACE test_temp`: 用户使用的临时表空间为`test_temp`。 2. **给用户授予权限**: - **授予角色权限**: ```sql GRANT connect, resource TO test; GRANT exp_full_database TO test; ...

    六分钟学会创建Oracle表空间的步骤[转]

    - 创建sales表空间,使用自动分配方式管理空间,更灵活地分配和回收空间。 6. `create temporary tablespace salestemp tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next ...

    Oracle建表空间、用户操作详解-入门基础.pdf

    使用`CREATE TABLESPACE`语句创建表空间,例如: ``` CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M UNIFORM SIZE 128k; ``` 这里,`data01`是表空间名,`/oracle/oradata/db/...

    解决临时表(undo)空间过大问题

    - 使用`V$TEMPSPACE_USAGE`视图来监控临时表空间的使用,找出占用空间最多的会话或SQL语句。 - 执行查询如`SELECT * FROM V$TEMPSPACE_USAGE ORDER BY BYTES DESC;`来识别高消耗资源的源。 2. **优化SQL语句**: ...

    oracle 建表空间 实用脚本

    - **创建用户**:创建了一个名为“DZJC”的用户,默认表空间为“DZJC”,临时表空间为“DZJC_TEMP”。 - **密码设置**:用户密码为“12345678”。 - **权限授予**: - `GRANT "CONNECT" TO "DZJC"`:授予用户连接...

    29.Oracle表空间和数据文件1

    9. **分配和回收空间**:通过ALTER TABLESPACE命令,可以将空闲空间分配给用户或回收给表空间。 10. **权限管理**:创建表空间通常由DBA执行,需要`CREATE TABLESPACE`权限。非DBA用户如果需要创建表空间,必须先...

    Oracle表空间和安全管理.doc

    3. 查询临时表空间名称,可以使用`DBA_TEMP_TABLESPACES`视图。 4. 创建临时表空间组"xiexhiwei_group",大小为20MB。 5. 移动临时表空间到组中,使用`ALTER TABLESPACE`命令。 6. 查看临时表空间组信息,利用`DBA_...

    oracle表空间、用户初始化语句

    `unlimited_tablespace`允许用户无限使用其默认表空间之外的空间。 - **对象权限**:如`select any table`和`update any table`分别允许用户选择和更新任何表。 - **管理权限**:如`grant any privilege`允许授予...

    数据库常用操作命令.docx

    创建临时表空间:create [smallfile | bigfile] temporary tablespace 表空间名 tempfile '(可附路径)数据文件名.dbf'[size 10m] [autoextend off on] [next 10m] [maxsize unlimited 10m] [online offline];...

    最全的oracle常用命令大全.txt

    2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 3、查看回滚段名称及大小 ...

    ORACLE常用命令大全.

    局部管理表空间允许更高效的空间管理,通过局部分配和回收段空间。 #### 3. 临时表空间 ```sql create temporary tablespace temp_tablespace tempfile 'c:\oracle\oradata\tmp01.dbf' size 200m autoextend on ...

    Oracle常用的和表(Table)相关的命令

    - `tablespace tablespace_name`: 指定表空间。 - `pctfree` 和 `pctused`: 分别指定空闲百分比和使用百分比。 - `initrans` 和 `maxtrans`: 初始化事务数和最大事务数。 - `storage`: 存储参数配置。 - `logging` ...

Global site tag (gtag.js) - Google Analytics