二、迁移过程
原数据库数据文件位置:C:oracleoradatatest
目标数据库数据文件位置:D:Softwareoradatatest
原来数据文件位置
'C:ORACLEORADATATESTSYSTEM01.DBF',
'C:ORACLEORADATATESTUNDOTBS01.DBF',
'C:ORACLEORADATATESTCWMLITE01.DBF',
'C:ORACLEORADATATESTDRSYS01.DBF',
'C:ORACLEORADATATESTEXAMPLE01.DBF',
'C:ORACLEORADATATESTINDX01.DBF',
'C:ORACLEORADATATESTODM01.DBF',
'C:ORACLEORADATATESTTOOLS01.DBF',
'C:ORACLEORADATATESTUSERS01.DBF',
'C:ORACLEORADATATESTXDB01.DBF'
因为需要移动所有的数据文件,所以采用alter database方法
1、首先shutdown数据库
SQL> shutdown
immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
2、使用系统命令复制粘贴到指定目录
copy
C:oracleoradatatest* D:Softwareoradatatest*
3、启动数据库到mount状态,更改数据文件的位置
SQL> startup mount
ORACLE例程已经启动。
Total System Global
Area135338868 bytes
Fixed Size453492 bytes
Variable Size109051904 bytes
Database Buffers25165824 bytes
Redo Buffers667648 bytes
数据库装载完毕。
SQL>
alter database rename file
'C:ORACLEORADATATESTSYSTEM01.DBF',
'C:ORACLEORADATATESTUNDOTBS01.DBF',
'C:ORACLEORADATATESTCWMLITE01.DBF',
'C:ORACLEORADATATESTDRSYS01.DBF',
'C:ORACLEORADATATESTEXAMPLE01.DBF',
'C:ORACLEORADATATESTINDX01.DBF',
'C:ORACLEORADATATESTODM01.DBF',
'C:ORACLEORADATATESTTOOLS01.DBF',
'C:ORACLEORADATATESTUSERS01.DBF',
'C:ORACLEORADATATESTXDB01.DBF' to
'D:SoftwareoradatatestSYSTEM01.DBF',
'D:SoftwareoradatatestUNDOTBS01.DBF',
'D:SoftwareoradatatestCWMLITE01.DBF',
'D:SoftwareoradatatestDRSYS01.DBF',
'D:SoftwareoradatatestEXAMPLE01.DBF',
'D:SoftwareoradatatestINDX01.DBF',
'D:SoftwareoradatatestODM01.DBF',
'D:SoftwareoradatatestTOOLS01.DBF',
'D:SoftwareoradatatestUSERS01.DBF',
'D:SoftwareoradatatestXDB01.DBF'
然
后打开数据库
SQL>
alter database open;
数据库已更改。
SQL> select name from v$datafile;
NAME
-----------------------------------------------
D:SOFTWAREORADATATESTSYSTEM01.DBF
D:SOFTWAREORADATATESTUNDOTBS01.DBF
D:SOFTWAREORADATATESTCWMLITE01.DBF
D:SOFTWAREORADATATESTDRSYS01.DBF
D:SOFTWAREORADATATESTEXAMPLE01.DBF
D:SOFTWAREORADATATESTINDX01.DBF
D:SOFTWAREORADATATESTODM01.DBF
D:SOFTWAREORADATATESTTOOLS01.DBF
D:SOFTWAREORADATATESTUSERS01.DBF
D:SOFTWAREORADATATESTXDB01.DBF
已选择10行。
4、更改联机日志文件
关闭数据库:shutdown immediate
alter
alter database rename file 'C:ORACLEORADATATESTREDO01.LOG',
'C:ORACLEORADATATESTREDO02.LOG',
'C:ORACLEORADATATESTREDO03.LOG' to
'D:SoftwareoradatatestREDO01.LOG',
'D:SoftwareoradatatestREDO02.LOG',
'D:SoftwareoradatatestREDO03.LOG'
数据库已更改。
5、修改inittest.ora里面的控制文件路径,inittest.ora文件是用create pfile from spfile创建的,目录在%ORACLE_HOME%database下:
l先关闭数据库:shutdown immediate
lcopy控制文件到新目录中
l启动到nomount状态,因为这时候没有打开控制文件,不会造成控制文件不一致情况:startup nomount
l创建pfile:create
pfile from spfile
l修改文件里面的控制文件信息
control_files='D:SoftwareoradatatestCONTROL01.CTL','D:Softwareoradatatest
CONTROL02.CTL',' D:Softwareoradatatest CONTROL03.CTL'
l修改后使用create spfile from pfile使修改后的文件生效
alter database mount看看能否打开控制文件
alter database open;打开数据库
6、临时文件的移动
由于控制文件不记录临时文件的信息,所以不能使用alter database rename file命令完成,只能删除掉原来的再建立一个
SQL> create temporary
tablespace temp02 tempfile 'd:softwareoradatatesttemp0
2.dbf' size 40M
autoextend on extent management local uniform size 1M
SQL> alter database default
temporary tablespace temp02;
SQL> drop tablespace temp
including contents and datafiles;
表空间已丢弃。