本文给出在数据库Mount状态下调整表空间数据文件位置及名称的方法。关于在数据库Open状态下调整方法参见文章:《【TABLESPACE】数据库Open状态下调整表空间数据文件位置及名称》(http://space.itpub.net/519536/viewspace-692267)。
注意:在完成调整操作之前请对数据库做好有效备份,防止出现故障给数据库的使用带来不便。
1.创建测试用表空间TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;
Tablespace created.
2.获取表空间与数据文件之间的对应关系
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
3.关闭数据库实例
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
4.在操作系统中调整数据文件位置和名称
在Linux/UNIX操作系统中可以使用操作系统命令mv完成这一步的调整。
ora10g@secdb /home/oracle$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf
确认文件位置及名称调整完毕。
ora10g@secdb /home/oracle$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /home/oracle$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 12 21:24 /home/oracle/tbs_secooler_d.dbf
5.启动数据库实例到Mount状态
ora10g@secdb /home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 12 21:26:08 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
NotConnected@> startup mount;
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 125830860 bytes
Database Buffers 134217728 bytes
Redo Buffers 7168000 bytes
Database mounted.
6.在数据库中调整数据文件位置及名称
SQL> alter database rename file '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';
Database altered.
注意此处的调整方法与数据库Open状态下的调整方法的不同之处:此处使用的是“alter database”命令,而非“alter tablespace”命令,在Mount状态下是无法使用“alter tablespace”命令,否则会收到如下报错信息。
SQL> alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';
alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf'
*
ERROR at line 1:
ORA-01109: database not open
7.调整数据库实例至Open状态
SQL> alter database open;
Database altered.
到此,调整的任务便顺利完成。
8.最后的确认
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D /home/oracle/tbs_secooler_d.dbf
OK,已达到了调整表空间数据文件位置及名称的目的。
9.小结
本文给出的在Mount状态下调整数据文件名称及位置的方法的局限性在于,需要停启数据库实例。对于生产系统及对数据库实例有效性要求极高的环境中很难找到这样的维护窗口。
这种调整方法的优势在于,可以集中对一批数据文件进行统一调整,避免了数据库Open状态下调整方法中对多个表空间分别完成脱机的步骤,提高了调整效率。
Good luck.
secooler
11.04.12
-- The End --
注意:在完成调整操作之前请对数据库做好有效备份,防止出现故障给数据库的使用带来不便。
1.创建测试用表空间TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;
Tablespace created.
2.获取表空间与数据文件之间的对应关系
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
3.关闭数据库实例
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
4.在操作系统中调整数据文件位置和名称
在Linux/UNIX操作系统中可以使用操作系统命令mv完成这一步的调整。
ora10g@secdb /home/oracle$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf
确认文件位置及名称调整完毕。
ora10g@secdb /home/oracle$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /home/oracle$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 12 21:24 /home/oracle/tbs_secooler_d.dbf
5.启动数据库实例到Mount状态
ora10g@secdb /home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 12 21:26:08 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
NotConnected@> startup mount;
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 125830860 bytes
Database Buffers 134217728 bytes
Redo Buffers 7168000 bytes
Database mounted.
6.在数据库中调整数据文件位置及名称
SQL> alter database rename file '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';
Database altered.
注意此处的调整方法与数据库Open状态下的调整方法的不同之处:此处使用的是“alter database”命令,而非“alter tablespace”命令,在Mount状态下是无法使用“alter tablespace”命令,否则会收到如下报错信息。
SQL> alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf';
alter tablespace TBS_SECOOLER_D rename datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' to '/home/oracle/tbs_secooler_d.dbf'
*
ERROR at line 1:
ORA-01109: database not open
7.调整数据库实例至Open状态
SQL> alter database open;
Database altered.
到此,调整的任务便顺利完成。
8.最后的确认
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D /home/oracle/tbs_secooler_d.dbf
OK,已达到了调整表空间数据文件位置及名称的目的。
9.小结
本文给出的在Mount状态下调整数据文件名称及位置的方法的局限性在于,需要停启数据库实例。对于生产系统及对数据库实例有效性要求极高的环境中很难找到这样的维护窗口。
这种调整方法的优势在于,可以集中对一批数据文件进行统一调整,避免了数据库Open状态下调整方法中对多个表空间分别完成脱机的步骤,提高了调整效率。
Good luck.
secooler
11.04.12
-- The End --
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-692362/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/519536/viewspace-692362/