-
方法一: 在sqlplus中操作 (需要手工拷贝)
-
首先要在数据库open状态下操作,将需要变动的表空间数据文件offline;操作系统层面拷贝;rename
-
SQL> select file_name,file_id,tablespace_name from dba_data_files;
-
-
FILE_NAME FILE_ID TABLESPACE
-
-------------------------------------------------- ---------- ----------
-
/u01/app/oracle/oradata/PROD1/users01.dbf 4 USERS
-
/u01/app/oracle/oradata/PROD1/undotbs01.dbf 3 UNDOTBS1
-
/u01/app/oracle/oradata/PROD1/sysaux01.dbf 2 SYSAUX
-
/u01/app/oracle/oradata/PROD1/system01.dbf 1 SYSTEM
-
/u01/app/oracle/oradata/PROD1/example01.dbf 5 EXAMPLE
-
/home/oracle/test01.dbf 6 TEST01
-
/u01/app/oracle/oradata/PROD1/test02.dbf 7 TEST02
-
-
7 rows selected.
-
-
SQL> alter database datafile 6 offline;
-
-
Database altered.
-
-
SQL> !cp /home/oracle/test01.dbf /u01/app/oracle/oradata/PROD1/test01.dbf
-
SQL> alter tablespace test01 rename datafile '/home/oracle/test01.dbf' to '/u01/app/oracle/oradata/PROD1/test01.dbf';
-
-
Tablespace altered.
-
-
SQL> select file_name,file_id,tablespace_name from dba_data_files;
-
-
FILE_NAME FILE_ID TABLESPACE
-
-------------------------------------------------- ---------- ----------
-
/u01/app/oracle/oradata/PROD1/users01.dbf 4 USERS
-
/u01/app/oracle/oradata/PROD1/undotbs01.dbf 3 UNDOTBS1
-
/u01/app/oracle/oradata/PROD1/sysaux01.dbf 2 SYSAUX
-
/u01/app/oracle/oradata/PROD1/system01.dbf 1 SYSTEM
-
/u01/app/oracle/oradata/PROD1/example01.dbf 5 EXAMPLE
-
/u01/app/oracle/oradata/PROD1/test01.dbf 6 TEST01
-
/u01/app/oracle/oradata/PROD1/test02.dbf 7 TEST02
-
-
7 rows selected.
-
SQL> alter database datafile 6 online;
或者数据库在mount状态下
-
SQL> startup mount;
-
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
-
ORACLE instance started.
-
-
Total System Global Area 217157632 bytes
-
Fixed Size 2251816 bytes
-
Variable Size 159384536 bytes
-
Database Buffers 50331648 bytes
-
Redo Buffers 5189632 bytes
-
Database mounted.
-
SQL> !cp /u01/app/oracle/oradata/PROD1/test01.dbf /home/oracle/test01.dbf
-
-
SQL> alter database rename file '/u01/app/oracle/oradata/PROD1/test01.dbf' to '/home/oracle/test01.dbf';
-
-
Database altered.
-
-
SQL> alter database open;
-
-
Database altered.
-
-
SQL> select file_id,file_name, status from dba_data_files;
-
-
FILE_ID FILE_NAME STATUS
-
---------- -------------------------------------------------- ---------
-
4 /u01/app/oracle/oradata/PROD1/users01.dbf AVAILABLE
-
3 /u01/app/oracle/oradata/PROD1/undotbs01.dbf AVAILABLE
-
2 /u01/app/oracle/oradata/PROD1/sysaux01.dbf AVAILABLE
-
1 /u01/app/oracle/oradata/PROD1/system01.dbf AVAILABLE
-
5 /u01/app/oracle/oradata/PROD1/example01.dbf AVAILABLE
-
6 /home/oracle/test01.dbf AVAILABLE
-
7 /u01/app/oracle/oradata/PROD1/test02.dbf AVAILABLE
-
-
7 rows selected.
-
方法二:rman自动拷贝
-
RMAN> run{
-
2> allocate channel c1 device type disk;
-
3> sql "alter tablespace test01 offline immediate";
-
4> set newname for datafile '/home/oracle/test01.dbf' to '/u01/app/oracle/oradata/PROD1/test01.dbf';
-
5> restore tablespace test01;
-
6> recover tablespace test01;
-
7> sql "alter tablespace test01 online";
-
8> }
-
-
using target database control file instead of recovery catalog
-
allocated channel: c1
-
channel c1: SID=33 device type=DISK
-
-
sql statement: alter tablespace test01 offline immediate
-
-
executing command: SET NEWNAME
-
-
Starting restore at 06-APR-17
-
-
channel c1: starting datafile backup set restore
-
channel c1: specifying datafile(s) to restore from backup set
-
channel c1: restoring datafile 00006 to /u01/app/oracle/oradata/PROD1/test01.dbf
-
channel c1: reading from backup piece /u01/app/oracle/product/11.2.0/dbhome_1/dbs/02s10ale_1_1
-
channel c1: piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/02s10ale_1_1 tag=TAG20170406T091318
-
channel c1: restored backup piece 1
-
channel c1: restore complete, elapsed time: 00:00:01
-
Finished restore at 06-APR-17
-
-
Starting recover at 06-APR-17
-
-
starting media recovery
-
media recovery complete, elapsed time: 00:00:00
-
-
Finished recover at 06-APR-17
-
-
sql statement: alter tablespace test01 online
-
released channel: c1
-
验证
-
SQL> select file_id,file_name,status from dba_data_files;
-
-
FILE_ID FILE_NAME STATUS
-
---------- -------------------------------------------------- ---------
-
4 /u01/app/oracle/oradata/PROD1/users01.dbf AVAILABLE
-
3 /u01/app/oracle/oradata/PROD1/undotbs01.dbf AVAILABLE
-
2 /u01/app/oracle/oradata/PROD1/sysaux01.dbf AVAILABLE
-
1 /u01/app/oracle/oradata/PROD1/system01.dbf AVAILABLE
-
5 /u01/app/oracle/oradata/PROD1/example01.dbf AVAILABLE
-
6 /home/oracle/test01.dbf AVAILABLE
-
7 /u01/app/oracle/oradata/PROD1/test02.dbf AVAILABLE
-
-
7 rows selected.
-
-
-
SQL> create table t3 (x) tablespace test01 as select rownum from dual connect by rownum<= 10;
-
-
Table created
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31405405/viewspace-2136742/
,如需转载,请注明出处,否则将追究法律责任。