下面是一个测试过程 1。首先创建裸设备: root@ultra66 # cd /opt/app/oradata/test root@ultra66 # ls control01.ctl control03.ctl redo04.log system01.dbf tools01.dbf users01.dbf control02.ctl indx01.dbf redo05.log temp01.dbf undotbs01.dbf root@ultra66 # ln -s /dev/rdsk/c0t0d0s3 hts.dbf root@ultra66 # ls -l total 747634 -rw-r----- 1 oracle oinstall 1613824 May 26 08:46 control01.ctl -rw-r----- 1 oracle oinstall 1613824 May 26 08:46 control02.ctl -rw-r----- 1 oracle oinstall 1613824 May 26 08:46 control03.ctl lrwxrwxrwx 1 root other 18 May 26 08:46 hts.dbf -> /dev/rdsk/c0t0d0s3 -rw-r----- 1 oracle oinstall 15736832 May 26 07:05 indx01.dbf -rw-r----- 1 oracle oinstall 10486272 May 26 07:05 redo04.log -rw-r----- 1 oracle oinstall 10486272 May 26 08:45 redo05.log -rw-r----- 1 oracle oinstall 199237632 May 26 08:14 system01.dbf -rw-r----- 1 oracle oinstall 10493952 May 26 06:50 temp01.dbf -rw-r----- 1 oracle oinstall 10493952 May 26 07:05 tools01.dbf -rw-r----- 1 oracle oinstall 104865792 May 26 08:44 undotbs01.dbf -rw-r----- 1 oracle oinstall 26222592 May 26 07:05 users01.dbf 2。创建一个表空间作为实验文件 root@ultra66 # su - oracle Sun Microsystems Inc. SunOS 5.8 Generic Patch February 2004 You have new mail. ultra66% sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 5月 26 08:47:18 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn /as sysdba Connected. SQL> create tablespace test datafile '/opt/app/oradata/test/ht1.dbf' size 6M; Tablespace created. 3。使用alter database create datafile ... as ...来迁移,首先要把datafile offline SQL> alter database create datafile '/opt/app/oradata/test/ht1.dbf' as '/opt/app/oradata/test/hts.dbf'; alter database create datafile '/opt/app/oradata/test/ht1.dbf' as '/opt/app/oradata/test/hts.dbf' * ERROR at line 1: ORA-01182: cannot create database file 6 - file is in use or recovery ORA-01110: data file 6: '/opt/app/oradata/test/ht1.dbf' SQL> alter database datafile '/opt/app/oradata/test/ht1.dbf' offline; alter database datafile '/opt/app/oradata/test/ht1.dbf' offline * ERROR at line 1: ORA-01145: offline immediate disallowed unless media recovery enabled
SQL> alter tablespace test offline; Tablespace altered. SQL> alter database create datafile '/opt/app/oradata/test/ht1.dbf' as '/opt/app/oradata/test/hts.dbf'; Database altered. 4。检查一下 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /opt/app/oradata/test/system01.dbf /opt/app/oradata/test/undotbs01.dbf /opt/app/oradata/test/indx01.dbf /opt/app/oradata/test/tools01.dbf /opt/app/oradata/test/users01.dbf /opt/app/oradata/test/hts.dbf 6 rows selected. 5。把表空间online,需要首先recover SQL> alter tablespace test online; alter tablespace test online * ERROR at line 1: ORA-01113: file 6 needs media recovery ORA-01110: data file 6: '/opt/app/oradata/test/hts.dbf' SQL> alter database recover datafile 6; Database altered. SQL> alter tablespace test online; Tablespace altered. SQL> 6。ok,完成 |