一、
select * from dba_data_files 使用该条语句可以查看当前库中有多少表空间并且DBF文件的存储位置
二、
找到对应的dbf文件,将该文件复制到你需要移动的位置
三、
开始 - 运行 - 输入cmd 进入命令提示符
输入 sqlplus /nolog
//原来位置:C:\APP\Oracle\oradata\orcl\test.DBF //移动后位置E:\测试\test.DBF 1、 sql> conn / as sysdba; 2、 sql> shutdown immediate; 3、 sql> startup mount; 4、 sql> alter database rename file 'C:\APP\Oracle\oradata\orcl\test.DBF' to 'E:\测试\test.DBF '; 5、 sql> alter database open;
执行成功后,plsql登陆数据库 select * from dba_data_files 使用该语句查看dbf位置是否已更改了,确认更改后,可以删除原来位置的dbf文件了,
注意: 执行5、 sql> alter database open; 完毕以后可能会出现
第 1 行出现错误:ORA-01113: 文件 1 需要介质恢复ORA-01110: 数据文件 1: 'E:\测试\test.DBF '
解决方法:
6、 sql> recover datafile 'E:\测试\test.DBF '; 7、 sql> alter database open;
问题解决
但是 有时执行6、 sql> recover datafile 'E:\测试\test.DBF ';可能会提示
ORA-00279: 更改 670303 (在 04/11/2011 17:02:48 生成) 对于线程 1 是必需的ORA-00289: 建议:E:\ORACLE11\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\TD_BBS\ARCHIVELOG\2011_04_12\O1_MF_1_50_%U_.ARCORA-00280: 更改 670303 (用于线程 1) 在序列 #50 中指定日志: {=suggested | filename | AUTO | CANCEL}|(光标闪烁处)
解决方案
界面上的空白处是让输入日志文件,随便输入,让控制台出现sql>就行,然后输入
8、 sql> alter database datafile 1 offline drop; 9、 sql>alter database open;
解决 注意红色阿拉伯数字1 表示的是
当然有的小伙伴在出现需要输入日志文件这一步时也可以关闭控制台,从新按照1、开始执行,当遇到提示需要恢复介质这个问题时不执行6、7两步,直接执行8、9即可
补充: 如果是多个dbf迁移,可以多次执行 4、sql> alter database rename file 'C:\APP\Oracle\oradata\orcl\test.DBF' to 'E:\测试\test.DBF '; ,注意每次alter的dbf的名称哦,然后再执行5、sql> alter database open;
参考文章: