修改同一个表空间的数据文件的名称和位置,一般在表空间级别进行,因为这样对系统的影响比较小,具体步骤为:
- 将数据文件所属表空间设置为脱机状态
- 在操作系统中改变数据文件的名称或者位置
- 执行ALTER TABLESPACE ...RENAME DATAFILE...TO语句,修改数据字典和控制文件中与该数据文件相关的信息
- 将数据文件所述表空间设置为联机状态
- 备份整个数据库
例如:将orcl数据库表空间的数据文件USERS01.DBF、USERS11.DBF文件移动到F:\oradata目录中去。
- SQL> select file_name,bytes from dba_data_files
2 where tablespace_name='USERS';
FILE_NAME BYTES
-------------------------------------------------- ----------
G:\APP\BEI\ORADATA\ORCL\USERS01.DBF 5242880
G:\APP\BEI\ORADATA\ORCL\USER11.DBF
--将表USERS表空间设置为脱机状态
SQL> alter tablespace users datafile offline;
表空间已更改。
--在操作系统中更改数据文件的名称和位置
SQL> host copy G:\APP\BEI\ORADATA\ORCL\USERS01.DBF F:\ORADATA\USERS01.DBF;
已复制 1 个文件。
SQL> host copy G:\APP\BEI\ORADATA\ORCL\USER11.DBF F:\ORADATA\USER11.DBF;
已复制 1 个文件。
--使用ALTER TABLESPACE...RENAME DATAFILE...TO语句,修改数据字典和控制文件
SQL> alter tablespace users rename datafile
2 'G:\APP\BEI\ORADATA\ORCL\USERS01.DBF',
3 'G:\APP\BEI\ORADATA\ORCL\USER11.DBF' to
4 'F:\ORADATA\USERS01.DBF','F:\ORADATA\USER11.DBF'
5 /
表空间已更改。
----将USERS表空间设置为联机状态。
SQL> alter tablespace users online;
alter tablespace users online
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'F:\ORADATA\USERS01.DBF' (这一点也不知道为什么呀)
SQL> recover datafile 4;
完成介质恢复。
SQL> alter tablespace USERS online;
--备份数据库
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28811724/viewspace-758682/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28811724/viewspace-758682/