需求:把原系统Oracle 9205数据库迁移到一台新的服务器和阵列上,原系统有250GB的数据量,需要停止原来系统的业务,做冷备份和恢复。
解决方法如下:
◆1.在新的服务器和阵列上装好一个oracle 9206数据库;
◆2.停止原系统oracle 9205;
◆3.把原系统的数据冷拷贝到新的服务器上,然后按照以下步骤来进行恢复:
(1)、获取数据库相关信息
首先要查看一下数据库的文件内容:
select * from v$datafile;
select * from v$controlfile
select * from v$logfile;
数据文件:
G:\ORADATA\WEBOA\SYSTEM01.DBF
G:\ORADATA\WEBOA\UNDOTBS01.DBF
G:\ORADATA\WEBOA\CWMLITE01.DBF
G:\ORADATA\WEBOA\DRSYS01.DBF
G:\ORADATA\WEBOA\EXAMPLE01.DBF
G:\ORADATA\WEBOA\INDX01.DBF
G:\ORADATA\WEBOA\ODM01.DBF
G:\ORADATA\WEBOA\TOOLS01.DBF
G:\ORADATA\WEBOA\USERS01.DBF
G:\ORADATA\WEBOA\XDB01.DBF
控制文件:
G:\ORADATA\WEBOA\CONTROL01.CTL
G:\ORADATA\WEBOA\CONTROL02.CTL
G:\ORADATA\WEBOA\CONTROL03.CTL
重做日志文件:
G:\ORADATA\WEBOA\REDO03.LOG
G:\ORADATA\WEBOA\REDO02.LOG
G:\ORADATA\WEBOA\REDO01.LOG
(2)、移动应用数据文件
shutdown immediate关闭数据库,拷贝数据文件到另外一个目录下。需要copy 的文件有:
system01.dbf
indx01.dbf
temp01.dbf
users01.dbf
应用数据文件
(3)、修改数据库文件的位置
启动MOUNT模式
startup mount;
alter database rename file 'g:\oradata\weboa\SYSTEM01.DBF' to 'd:\oradata\weboa\SYSTEM01.DBF';
注意只能进行更改移动的数据库文件,不包括控制文件与日志文件,TEMP文件。
移动控制文件
(1)备份SPFILE中的内容:
再重新启动数据库:
startup;
create pfile=’c:\init.ora’ from spfile;
(2)修改init.ora文件中的内容:
*.control_files='\oradata\ocp\control01.ctl','\oradata\ocp\control02.ctl','\oradata\ocp\control03.ctl'
进行更改已经复制的目录位置。
Shutdown 数据库
(3)将控制文件复制过去
将三个控制文件移动到上面所修改的的目录下。
(4)倒入参数文件
以init.ora参数方式启动:
startup pfile=’\oracle\init.ora’;
create spfile from pfile=’\oracle\init.ora’;
shutdown immediate;
startup; 从spfile中进行启动。
这样控制文件移动工作就结束了。
重建或重定位LOG文件
解决日志文件的移动方式有两种,一种是移动(RENAME方式)另一种是重新创建。
(1)移动LOG文件
重新移动数据库文件与移动系统数据库文件是一样的方法,只是要求数据库必须是“startup mount”方式进行。
startup mount
alter database rename file 'g:\oradata\weboa\REDO01.LOG' to 'd:\oradata\weboa\REDO01.LOG';
alter database rename file 'g:\oradata\weboa\REDO02.LOG' to 'd:\oradata\weboa\REDO02.LOG';
alter database rename file 'g:\oradata\weboa\REDO03.LOG' to 'd:\oradata\weboa\REDO03.LOG';
四、重建系统监时(temp)文件系统
在移动数据表空间时,TEMP文件是不能被移动的,这里要求可以进行重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。
然后再册除原来的TEMP表空间,达到移动表空间的过程。
迁移临时表空间
◆1.startup --启动数据库
◆2. create temporary tablespace "temp02" tempfile 'd:\oradata\weboa\temp02.dbf' size 500m extent management local uniform size 10m; --创建中转临时表空间
◆3.alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2
◆4.drop tablespace temp including contents and datafiles;--删除原来临时表空间
◆5 然后再删除原来的TEMP文件就可以了。