oracle数据文件查询修改总结

来源:互联网 发布:安倍 修宪 知乎 编辑:程序博客网 时间:2024/06/06 00:57

一. 数据文件的查询方式

1. 数据文件

    SELECT * FROM V$DATAFILE;

2. 临时文件

    SELECT * FROM V$TEMPFILE;

3.日志文件

    SELECT * FROM V$LOGFILE;

 

二. 数据文件的修改

主要总结几个常用的数据文件修改方式,也是经常遇到需要修改的数据文件。

在实际工作过程中,如果有巨量的排序、对比等操作,都会造成 TEMP UNDO两个表空间的迅速增长, 但是Oracle又采用的是贪心策略,即占有了的空间,他就不再释放,所以,一段时间之后,就需要释放重建这2个表空间。

1. TEMP表空间的修改
方法一:对于临时表空间,可以用resize
修改其空间,但是前提是其中没有数据或不是正在使用;
SQL> ALTER database TEMPFILE '/u01/app/oracle/database/oradata/Bondex/temp01.dbf' resize 100M  
 ALTER database TEMPFILE  '/u01/app/oracle/database/oradata/Bondex/temp01.dbf ' resize 100M 

ORA-03297: file contains used data beyond requested RESIZE value
出现这样的提示,说明该表空间里还有数据不能立即resize.只能等到其中没有数据才可以 resize了
 
方法二:对于其中有数据的表空间,则可以采取替换的方法: 
SQL> create temporary tablespace TEMP1 tempfile '/u01/app/oracle/oradata/BXG/temp02.dbf' size 200M; 
Tablespace created. 
SQL> alter database default temporary tablespace TEMP1;
Database altered. 
SQL> drop tablespace TEMP including contents and datafiles;
Tablespace dropped.
新建后的表空间因为没有数据,就可以再resize了
SQL> alter database tempfile '/u01/app/oracle/oradata/BXG/temp02.dbf' resize 100M;
Database altered.

 

2. UNDO表空间的修改

再看UNDO表空间,UNDO表空间就没有resize了,直接重建1创建新的undo表空间
SQL> CREATE UNDO TABLESPACE undotbs DATAFILE ‘/oracle/app/oracle/oradata/ora10g/undo01.dbf‘ SIZE 100M 
Tablespace created.
2。切换UNDO表空间为新的UNDO表空间
alter system set undo_tablespace=undotbs scope=both;
或者修改init文件,重启数据库
3 删除原来的undo表空间
SQL> drop tablespace undotbs1 including contents;
Tablespace dropped

 

0 0