服务器 频道

Oracle 9i 数据库移动过程

  【IT168 服务器学院】数据库移动,在项目实施过程中,经常会发生,对于有经验的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'',''oradataocpcontro
l03.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文件就可以了。

  五、测试数据库

  进行重启动ORACLE数据
  $ sqlplus “/as sysdba”
  ? startup;
  ? show sga;
  ?

   
  

0
相关文章