最近测试环境的数据库的空间暴涨,导致原有的硬盘难以支撑。为缓解之,遂欲调整较大的数据文件到空间较大的磁盘。简单记录一下,供参考。
本文中采用的是对系统影响相对较小的方法进行调整。
整体处理过程主要分5步:
1.OFFLINE表空间;
2.修改操作系统上的文件名;
3.修改数据库中的文件名;
5.ONLINE数据文件。
该方法的优势在于:适用于非归档的环境。
sys@hou> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 5221
Current log sequence 5223
1.查询获得数据文件大小
sys@hou> col TABLESPACE_NAME for a20
sys@hou> col file_name for a40
sys@hou> select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 MB from dba_data_files where TABLESPACE_NAME = 'TBS_SECO_BI_D';
TABLESPACE_NAME FILE_NAME MB
-------------------- ---------------------------------------- ----------
TBS_SECO_BI_D /oracle/oradata/hou/iata_bi_d_01.dbf 10506
TBS_SECO_BI_D /oracle/oradata/hou/iata_bi_d_02.dbf 4096
目前该表空间已近15G。这就是我们要调整的对象。
2.将该表空间OFFLINE
1.OFFLINE表空间
sys@hou> alter tablespace TBS_SECO_BI_D offline;
Tablespace altered.
3.修改操作系统上的文件名
hou@houDB /oradata/hou$ mv /oracle/oradata/hou/iata_bi_d_01.dbf /oradata/hou/iata_bi_d_01.dbf
hou@houDB /oradata/hou$ mv /oracle/oradata/hou/iata_bi_d_02.dbf /oradata/hou/iata_bi_d_02.dbf
4.修改数据库中的文件名
sys@hou> alter database rename file '/oracle/oradata/hou/iata_bi_d_01.dbf' to '/oradata/hou/iata_bi_d_01.dbf';
Database altered.
sys@hou> alter database rename file '/oracle/oradata/hou/iata_bi_d_02.dbf' to '/oradata/hou/iata_bi_d_02.dbf';
Database altered.
5.ONLINE表空间
sys@ora10g> alter tablespace TBS_SECO_BI_D online;
Tablespace altered.
6.确认修改成功
sys@hou> select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 MB from dba_data_files where TABLESPACE_NAME = 'TBS_SECO_BI_D';
TABLESPACE_NAME FILE_NAME MB
------------------------------ ------------------------------ ----------
TBS_SECO_BI_D /oradata/hou/iata_bi_d_01.dbf 10506
TBS_SECO_BI_D /oradata/hou/iata_bi_d_02.dbf 4096
7.小结
调整方法并不局限在此文中的方法,更多的方法可以参考《【实验】修改数据文件名字的三种途径》http://space.itpub.net/519536/viewspace-608810。
Good luck.
secooler
10.06.06
-- The End --