- alter database方法可以移动任何表空间的数据文件,但其要求数据库必须处于mount状态,故此种方法更适合做整体数据库的迁移。
- alter tablespace方法需要数据库处于open状态,表空间在offline的状态下才可更改。但其不能移动system表空间,undo表空间和temp表空间的数据文件,故此种方法更适合于做用户数据文件的迁移。
两者操作皆在登陆上sql命令行里操作的
alter tablespace按表空间来
1、关闭相应的表空间
alter tablespace dsj offline;
2、复制表dbf文件到指定路径
3、更改数据库种表文件存放路径
alter tablespace dsj rename datafile 'D:\APP\ORADATA\DSJ\DSJ.DBF' TO 'D:\APP\ORADATA\DSJ.DBF';
4、挂载表
alter tablespace dsj online;
alter database按数据文件来
1、sqlplus登录oracle,
sqlplus system/password@orcl as sysdba
或
sqlplus /nolog
conn / as sysdba
2、关闭数据库,关闭之前不知道dbf路径的记得先查询
SQL> shutdown immediate;
3、找到需要移植的dbf文件路径,然后移动dbf文件
//例如:C:\app\XD\oradata\orcl\cmis\CMIS_TS_WF.DBF
select tablespace_name, file_id,file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
或
select file#,ts#,status,name from v$datafile;
4、以mount形式加载数据库
SQL> startup mount;
5、rename修改路径
alter database rename file 'C:\app\DZWL.DBF' to 'D:\app\oradata\dzwl\DZWL.DBF';
注:此处路径根据实际情况进行更改,并且需要提前将C:\app\XD\oradata\orcl\cmis\CMIS_TS_WF.DBF文件复制到G:\app\XD\oradata\orcl\cmis
6、改变并打开数据库
SQL> alter database open;
6.1. 报错ORA-01113和ORA-01110解决办法
//重新关闭数据库-mount挂载-recover介质恢复-打开数据库-继续 如果当前在mount挂载下直接recover恢复就行了
shutdown immediate;
startup mount;
recover datafile 'C:\app\DZWL.DBF';
alter database open;
7、重启数据库验证
SQL> shutdown immediate;
SQL> startup;