一. 数据文件的查询方式
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