蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 数 据 库


    

蓝森林 http://www.lslnet.com 2006年8月26日 15:18


(转) Oracle 9i 数据库移动过程

Oracle 9i 数据库移动过程

                starmoon2003 于创智软件园

数据库移动,在项目实施过程中,经常会发生,对于有经验的DBA来说,数据库移动是十分容易。但对于一些只了解系统,对数据库不是十分懂的人员来说,oracle的移动就不是那么容量了。
例如当系统安装完成以后,存储空间扩容了,需要对原对ORACLE进行移动,需要进行数据移动。以前在ORACLE8I FOR WINDOWS 2000中是可以进行移动的。现在ORACLE9I FOR WINDOWS 2000 的移动如何做呢???
一、复制移动数据文件
   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 ‘c:\oracle\oradata\ocp\system01.dbf’   to  ‘d:\oradata\ocp\system01.dbf”
Ø        alter  database rename file ‘c:\oracle\oradata\ocp\indx01.dbf’   to ‘d:\oradata\ocp\indx01.dbf’;
注意只能进行更改移动的数据库文件,不包括控制文件与日志文件,TEMP文件。
二. 移动控制文件

(1)备份SPFILE中的内容:
  再重新启动数据库:
Ø        startup;
Ø         create   pfile=’c:\init.ora’   from spfile;
(2)修改init.ora文件中的内容:
*.control_files='d:\oradata\ocp\control01.ctl','d:\oradata\ocp\control02.ctl','d:\oradata\ocp\control03.ctl'
进行更改已经复制的目录位置。
    Shutdown 数据库
(3)将控制文件复制过去,
将三个控制文件移动到上面所修改的的目录下。
(4)        倒入参数文件
以init.ora参数方式启动:
Ø        startup  pfile=’c:\init.ora’;
Ø        create  spfile  from   pfile=’c:\init.ora’;
Ø        shutdown immediate;
Ø        startup; 从spfile中进行启动。
这样控制文件移动工作就结束了。
三、 重建或重定位LOG文件
   解决日志文件的移动方式有两种,一种是移动(RENAME方式)另一种是重新创建。
(1)移动LOG文件
重新移动数据库文件与移动系统数据库文件是一样的方法,只是要求数据库必须是“startup mount”方式进行。
Ø        startup mount
Ø        alter database rename file ‘c:\oracle\oradata\oralog1.ora’   to  ‘d:\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 ‘c:\oracle\oradata\ocp\oralog01.ora’

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

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

五、测试数据库
进行重启动ORACLE数据
   $ sqlplus  “/as sysdba”
Ø        startup;
Ø        show sga;
Ø       

六、意义:
    这是一个小小的测试,对于大型系统,需要升级改造时,就得考虑这种方式进行移动数据库文件。也是对系统规划时,一个小小的调整。 :

(转) Oracle 9i 数据库移动过程

顶,对我有用

(转) Oracle 9i 数据库移动过程

谢谢支持,

(转) Oracle 9i 数据库移动过程

好!!

(转) Oracle 9i 数据库移动过程

就这个方法,请教一个问题,请老大指正!
大型数据库的移植升迁我经常会遇到,以前在8I NOLOG模式下,
我采用的是关闭数据后,拷贝数据文件和重做日志文件、参数文件到
一个新目录,修改参数文件,然后以startup nomount方式启动,
以新的目录重建控制文件(RESETLOGS),alter database
open resetlogs。这个方法是可行的。但在9I中就不行了(NOLOG)。
DB提示需要RECOVER, 真正RECOVER DATABASE USING BACKUP
CONTROLFILE UNTIL CANCEL时, DB又提示system01.dbf不一
致!
  通过阅读大作,我觉得前面部份是不是与使用重建控制文件方式一样
是达到同一个目的,即修改控制文件中数据表空间和重做日志文件的位置,
我在9I中最后也重新建了一个新的TEMP表空间。
  为什么会这样呢?我与METALINK上的ORACLE SUPPORT交流也未得
到正确的解答。还请老大指正!!!

(转) Oracle 9i 数据库移动过程

兄弟,说对了一半,如果是基于文件系统的移动,当然是不需要重建控制文件。
注意:在移动过程中,应是有一个顺序的,先移数据文件,然后再移控制文件。
  如果是归档方式,可以先改成非归档方式,再移。

(转) Oracle 9i 数据库移动过程

谢谢先!

我其实是要以原DB完整复制出另一个DB来,在8I上用我的方法是成功了,
9I上却行不通了。我敢肯定,如果采用你所讲的方法是可行的。
但在9I上采用重建控制的方法来CLONE数据库就行不通了吗?
我回头就把我所用的方法列出来,请指正!

(转) Oracle 9i 数据库移动过程

假设DB在NOARCHIVELOG模式下
A。在TRACE文件中得到控制文件创建SQL脚本
sqlplus /nolog
conn / as sysdba;
alter database backup controlfile to trace;
shutdown immediate;
exit;

B。复制数据文件、重做日志文件、参数文件到新的目录

C。修改建立控制文件的SQL脚本,更改数据库名、REUSE为SET,更改为RESETLOGS

D。修改脚本中重做日志文件、数据文件目录名称。删除除建立控制文件外的其他SQL命令。

E。修改新参数文件中控制文件目录名称。
F。设置新DB的环境变量。并启用新的环境,让DB可以找到参数文件等。

G。sqlplus /nolog
conn / as sysdba;
startup nomount;
@建立控制文件脚本.sql
alter database open resetlogs;
这一句出错。要求RECOVER
recover database using backup controlfile until cancel
这一句也有问题,要求提供归档文件。NOARCHIVE模式下,没有归档文件啊!

如果上面不出错,下面就该添上临时表空间了

我琢磨是不是用这种办法时,如果创建控制文件时使用RESETLOGS参数,
就不能使用原来的REDO文件,必须重建一组新的REDO文件?
反之如果使用NORESETLOGS参数,就可以用原来的REDO文件?

请指点一下!!

(转) Oracle 9i 数据库移动过程

这个方法不能用于不同version间吧?否则migration不就太容易了。

Migration paths for the older releases to Oracle9i:
A. For Version 6 and Version 7 (7.3.3 and lower):
1. Upgrade to version 7.3.4
2. Upgrade to Oracle9i
B. For Releases 8.0.1 to 8.0.5, upgrade to 8.0.6 or later
C. For Version 8.0.6 or 8i and later, upgrade using
- Oracel Data Upgrade Assistant
- Manual upgrade

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96530/toc.htm

(转) Oracle 9i 数据库移动过程

我想问下,如果想要移动到另一台机器又如何做好呢?



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com