Chinaunix

标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。 [打印本页]

作者: starmoon2003    时间: 2004-02-17 12:19
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
Oracle 9i 数据库移动过程



数据库移动,在项目实施过程中,经常会发生,对于有经验的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 ‘\oracle\oradata\ocp\system01.dbf’   to  ‘\oradata\ocp\system01.dbf”
Ø        alter  database rename file ‘\oracle\oradata\ocp\indx01.dbf’   to ‘\oradata\ocp\indx01.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 ‘\oracle\oradata\oralog1.ora’   to  ‘\oradata\ocp\oralog1.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 ‘\oracle\oradata\ocp\oralog01.ora’

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

在移动数据表空间时,TEMP文件是不能被移动的,这里要求可以进行重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。然后再册除原来的TEMP表空间,达到移动表空间的过程。
>; create  temporary tablespace  “temp02”   tempfile ‘\oradata\ocp\temp02.dbf’ size 500m extent management local uniform size 10m;
然后再删除原来的TEMP文件就可以了。

五、测试数据库
进行重启动ORACLE数据
   $ sqlplus  “/as sysdba”
Ø        startup;
Ø        show sga;
Ø
作者: cww2    时间: 2004-02-17 12:49
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
非常实用!!!
作者: yanbing    时间: 2004-02-17 20:11
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
谢谢兄弟!非常感谢!
作者: Fenng    时间: 2004-02-18 12:15
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
整个过程居然没有看到备份,看来对操作还是很有信心 阿
作者: starmoon2003    时间: 2004-02-18 14:54
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
只要按着这样一步步地走,绝对不会出问题
作者: sitech    时间: 2004-02-20 11:43
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
数据库建在裸设备上怎么办呢?
作者: starmoon2003    时间: 2004-02-20 21:47
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
楼上的兄弟,说得对,如果建在裸设备上,那就谈不上文件的移动了。

    这是有一个条件限制的啊,
作者: lionfly    时间: 2004-03-22 21:30
标题: (原创) Oracle 9i 数据库移动过程 在AIX平台上。。。
不知ORACLE DB的CLONE的过程是否与上述的一致?
是否可以采取MIRROR的方法移植到其他的机器呢?
作者: followmezhangxu    时间: 2006-08-17 16:40
佩服楼主的技术实力
作者: feidang    时间: 2006-08-18 12:34
没这么麻烦吧?
只要把数据文件都拷过去,再把 mount点该过来,不就行了?
作者: zlc158    时间: 2006-08-18 13:19
做的不错。。辛苦了LZ 。。。
作者: dee11080    时间: 2006-08-18 23:59
裸设备的用clone的方式恢复就可以了,前提是要有备份,一样的环境
测试成功
作者: wgj    时间: 2006-08-19 02:48
原帖由 feidang 于 2006-8-18 12:34 发表
没这么麻烦吧?
只要把数据文件都拷过去,再把 mount点该过来,不就行了?

这样迁移经常会出现一些莫明其妙的问题~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2