电脑技术学习

循序渐进讲解Oracle 9i数据库的迁移过程

dn001

需求:把原系统Oracle 9205数据库迁移到一台新的服务器和阵列上,原系统有250GB的数据量,需要停止原来系统的业务,做冷备份和恢复。

解决方法如下:

◆1.在新的服务器和阵列上装好一个oracle 9206数据库;


◆2.停止原系统oracle 9205;


◆3.把原系统的数据冷拷贝到新的服务器上,然后按照以下步骤来进行恢复:


(1)、获取数据库相关信息

首先要查看一下数据库的文件内容:

select * from v$datafile;

select * from v$controlfile

select * from v$logfile;

数据文件:

G:ORADATAWEBOASYSTEM01.DBF

G:ORADATAWEBOAUNDOTBS01.DBF

G:ORADATAWEBOACWMLITE01.DBF

G:ORADATAWEBOADRSYS01.DBF

G:ORADATAWEBOAEXAMPLE01.DBF

G:ORADATAWEBOAINDX01.DBF

G:ORADATAWEBOAODM01.DBF

G:ORADATAWEBOATOOLS01.DBF

G:ORADATAWEBOAUSERS01.DBF

G:ORADATAWEBOAXDB01.DBF


控制文件:

G:ORADATAWEBOACONTROL01.CTL

G:ORADATAWEBOACONTROL02.CTL

G:ORADATAWEBOACONTROL03.CTL


重做日志文件:

G:ORADATAWEBOAREDO03.LOG

G:ORADATAWEBOAREDO02.LOG

G:ORADATAWEBOAREDO01.LOG

(2)、移动应用数据文件

shutdown immediate关闭数据库,拷贝数据文件到另外一个目录下。需要copy 的文件有:

system01.dbf

indx01.dbf

temp01.dbf

users01.dbf

应用数据文件

(3)、修改数据库文件的位置

启动MOUNT模式

startup mount;

alter database rename file 'g:oradataweboaSYSTEM01.DBF' to 'd:oradataweboaSYSTEM01.DBF';

注意只能进行更改移动的数据库文件,不包括控制文件与日志文件,TEMP文件。

移动控制文件

(1)备份SPFILE中的内容:

再重新启动数据库:

startup;

create pfile=’c:init.ora’ from spfile;

(2)修改init.ora文件中的内容:

*.control_files='oradataocpcontrol01.ctl','oradataocpcontrol02.ctl','oradataocpcontrol03.ctl'

进行更改已经复制的目录位置。

Shutdown 数据库

(3)将控制文件复制过去

将三个控制文件移动到上面所修改的的目录下。

(4)倒入参数文件

以init.ora参数方式启动:

startup pfile=’oracleinit.ora’;

create spfile from pfile=’oracleinit.ora’;

shutdown immediate;

startup; 从spfile中进行启动。

这样控制文件移动工作就结束了。

重建或重定位LOG文件

解决日志文件的移动方式有两种,一种是移动(RENAME方式)另一种是重新创建。

(1)移动LOG文件

重新移动数据库文件与移动系统数据库文件是一样的方法,只是要求数据库必须是“startup mount”方式进行。

startup mount

alter database rename file 'g:oradataweboaREDO01.LOG' to 'd:oradataweboaREDO01.LOG';

alter database rename file 'g:oradataweboaREDO02.LOG' to 'd:oradataweboaREDO02.LOG';

alter database rename file 'g:oradataweboaREDO03.LOG' to 'd:oradataweboaREDO03.LOG';


四、重建系统监时(temp)文件系统


在移动数据表空间时,TEMP文件是不能被移动的,这里要求可以进行重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。

然后再册除原来的TEMP表空间,达到移动表空间的过程。

迁移临时表空间

◆1.startup --启动数据库


◆2. create temporary tablespace "temp02" tempfile 'd:oradataweboatemp02.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文件就可以了。