如何缩小oracle中的temp表空间?
我们如何缩小oracle中的temp表空间?以及为什么它增加到高达25 GB,因为在应用程序的数据库中只有一个模式,数据表空间大小为2 GB,索引表空间大小为1 GB。
哦,我的天啊!看看我的临时表空间的大小!
或者…如何缩减Oracle中的临时表空间。 是的,我运行一个查询,看看我的临时表空间有多大: SQL> SELECT tablespace_name,file_name,bytes 2 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 可以非常有用的确定原因。 也许你只是不在乎原因,你只需要收缩它。 让我们来看看缩小它。它将取决于什么版本 首先让我们缩小数据文件。如果我们能做到这一点,那么我们回来 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 根据错误消息,您可能想尝试不同的大小 好的。这没有工作。这个怎么样。 SQL> alter tablespace YOUR_TEMP_TABLESPACE_NAME shrink space keep 256M; 如果你在11g(Maybee在10g也),这是它!如果它的工作,你可能想要 但是如果失败了。如果临时表空间是默认的临时表空间 好吧…回到严重的东西… SQL> CREATE TEMPORARY TABLESPACE temp2 2 TEMPFILE '/the/full/path/to/temp2_01.dbf' SIZE 5M REUSE 3 AUTOEXTEND ON NEXT 1M MAXSIZE unlimited 4 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. 希望这些事情之一将有所帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |