Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103604802
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-02 14:28:38

来源:赛迪网技术社区    作者:361313

在项目实施的过程中,“数据库移动”会经常会发生,对于一些有经验的DBA来说,数据库移动是比较容易的。但对于一些只了解系统,对数据库并不是十分专业的人员来说,oracle的移动就不是那么容易的了。

比如当系统安装完成以后,存储空间扩容了,需要对原对ORACLE进行移动,需要进行数据移动。以前在ORACLE8I FOR WINDOWS 2000中是可以进行移动的。现在ORACLE9I FOR AIX 5L 的移动如何做呢?其实经对各种不同的平台,操作过程完全一样。

一、复制移动数据文件

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

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

sqlplus “ / as sysdba” 
select * from v$datafile; 
select * from v$controlfile 
select * from v$logfile;

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

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

system01.dbf 
indx01.dbf 
temp01.dbf 
users01.dbf

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

启动MOUNT模式:

startup mount; 
 alter database rename file 
‘oracleoradataocpsystem01.dbf' 
to ‘oradataocpsystem01.dbf” 
 alter database rename file 
‘oracleoradataocpindx01.dbf' to 
‘oradataocpindx01.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 
‘oracleoradataoralog1.ora' to ‘oradataocporalog1.dbf'

2)重建LOG文件

先重建一个组GROUP ,并添加一个LOG文件作为交换文件。

ALTER DATABASE ADD LOGFILE GROUP 4 ('$HOME/ORADATA/u01/log4.rdo','
$HOME/ORADATA/u02/log4.rdo') SIZE 1M;

然后再删除其它的LOG组,要求必须保持有两个LOG文件组在系统中。

Alter database drop logfile member ‘oracleoradataocporalog01.ora'

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

在移动数据表空间时,TEMP文件是不能被移动的,这里要求可以进行重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。然后再册除原来的TEMP表空间,达到移动表空间的过程。

> create temporary tablespace “temp02” tempfile 
‘oradataocptemp02.dbf' size 500m extent management local uniform size 10m;

最后再删除原来的TEMP文件就可以了。

阅读(590) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~