Oracle数据库整机移植技术

转载 2005年05月16日 14:36:00

本文源自一次做Oracle9i DataGuard测试而产生的思路。前些时间有网友提出因为OS损坏,在硬盘没有损坏的情况下可否将数据库恢复至另一台机器上。现在不管从理论上讲,还是通过实践,都可以从本文中找到答案。

l         本文测试环境:

硬件环境:两台PC电脑,一台机器名为A机,另一台机器名为B机;

操作系统(OS):均为Window2000 advance server

          Oracle RDBMS:均为Oracle 9.2.0.1

    数据库sid:要求A机与B机均为testdb

l         测试目的:

A机现有数据库系统快速移植到B机。

l         测试要求:

硬件配置最好一致,如果A机与B机硬件配置不一致,最需要修改的地方是内存配置,其原则是数据库的总内存配置要小于物理内存;除此之外,对于CPU数量不一样的情况,在只要求可恢复性的前提条件下,可以不做其它修改。

操作系统配置(OS):版本要求一致;对于B机上的硬盘逻辑分区至少要求物理文件存放置与A机对应的同一个盘区,如://A/D:/oracle/oradata/testdb///B/D:/oracle/oradata/testdb/

Oracle软件的安装位置($ORACLE_HOME)可以不一致,如//A/G:/oracle/ora92///B/D:/oracle/ora92/

Oracle RDBMS配置:要求版本必须一致,否则在B机上如果出现版本不兼容的问题将很难解决,例如查看A机上现在数据库的版本为v9.2.0.1

SQL>conn sys@myoracle as sysdba;

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

PL/SQL Release 9.2.0.1.0 - Production

CORE       9.2.0.1.0       Production

 

TNS for 32-bit Windows: Version 9.2.0.1.0 - Production

NLSRTL Version 9.2.0.1.0 – Production

所以要求B机上也要安装Oracle v9.2.0.1版本的数据库软件。

l         测试步骤:

1、  B机上作如下操作(为了尽量减少操作时间,最好在B机上将所有的准备工作都做好)

(1)    安装Oracle软件,但可以不用创建数据库;

(2)    创建与A机上物理文件所在目录相同的文件夹,通俗点讲就是文件克隆(Clone file),例如:c:/>mkdir d:/oracle/oradata/testdb

(3)    配置监听服务,需要关心的文件主要有两个,分别是$ORACLE/network/admin/下的listener.oratnsnames.oraOracle连接时需要读这两个文件和sqlnet.ora文件。配置时最好采用“开始—>程序(P)> Oracle - OraHome92> Configuration and

Migration Tools> Net Manager”在图形界面下进行配置,这同时可以生成上述的listener.oratnsnames.ora两个文件,而且可以保证配置的准确性;另外一种方法是直接从A机上的$ORACLE/network/admin/目录直接copy这两个文件至B机上的$ORACLE/network/admin/目录,需要修改这两个文件如下标示:

A、 对于listener.ora文件:

               # LISTENER.ORA Network Configuration File:

               # F:/oracle/ora92/NETWORK/ADMIN/listener.ora

               # Generated by Oracle configuration tools.

 

               LISTENER =

                 (DESCRIPTION =

                   (ADDRESS = (PROTOCOL = TCP)(HOST = B)(PORT = 1521))

                 )

 

               SID_LIST_LISTENER =

                 (SID_LIST =

                   (SID_DESC =

                     (GLOBAL_DBNAME = testdb.B)

                     (SID_NAME = testdb)

                   )

               )

B、 对于tnsnames.ora文件:

               # TNSNAMES.ORA Network Configuration File:

               # F:/oracle/ora92/NETWORK/ADMIN/tnsnames.ora

               # Generated by Oracle configuration tools.

 

               MYORACLE =

                 (DESCRIPTION =

                   (ADDRESS_LIST =

                     (ADDRESS = (PROTOCOL = TCP)(HOST = B)(PORT = 1521))

                   )

                   (CONNECT_DATA =

                     (SERVER = DEDICATED)

                     (SERVICE_NAME = testdb.B)

                   )

                 )

以上红色标记的地方表示需要改动,其实只将文件里的A主机名改成B主机名或者将A主机IP改成B主机IP就可以了。

(4)    创建实例服务,由于前面只安装了数据库软件,所以这时实例服务名还不存在,现在创建它(对于LinuxUnix系统,就没有此步骤了)

c:/>oradim –NEW –SID testdb

这里直接将实例服务名创建成与A机上sid同名,为了保证下面的过程顺利进行,推荐按前述方法创建。

 

2、  复制A机上的数据库物理文件。

关闭A机数据库,对于已崩溃的系统,当然就没有关闭数据库这一步骤了:

SQL>conn sys@myoracle as sysdba

SQL>shutdown immediate

SQL>create pfile from spfile;

通过网络或移动存储设备将A机上的物理文件:包括所有数据文件,重做日志文件,归档日

志文件,控制文件,密码文件和刚才创建的初始化参数文件inittestdb.ORAcopyB机上相对应的与A机同名的目录。例如:

copy  A/D:/oracle/oradata/testdb/*.*  B/D:/oracle/oradata/testdb/

copy  A/ F:/oracle/admin/*.*  B/E:/oracle/admin/  --这是日志文件目录

copy  A/ F:/oracle/ora92/network/admin/*.ORA  B/ E:/oracle/ora92/network/admin/   (面已经配置好了监听,此步略过)

copy  A/ F:/oracle/ora92/database/*.ORA  B/ E:/oracle/ora92/database/

这里只是举例示范,实意是为了便于理解,但必须要经过上面的copy步骤。注意上面

制的文件包括警报日志文件目录,也可以直接在B机上手工创建文件目录,当启动Oracle时,Oracle根据初始化参数里指定的目录自动创建警报日志文件。

修改从A机上copy过来的D:/oracle/ora92/database/inittestdb.ORA文件,将*.db_domain='A'修改为*.db_domain='B'就可以了。如果物理文件的位置在B机上发生了改变,则需要修改这个文件里相应的参数,但建议不要作任何改动,以减少操作失败的可能性。

3、  启动B机上的数据库。

   经过上面的操作,现在B机上实际上已经有了一个完整的数据库了。现在我们来启动B机上的数据库。看看是否能成功运行:

(1)    启动监听服务:

c:/>lsnrctl start

(2)    启动实例服务:

c:/>oradim -startup -sid testdb

(3)    启动数据库:

c:/>sqlplus /nolog

SQL>conn sys@myoracle as sysdba  --这里sys的密码与A机上sys账户密码相同

                             --因为都是使用的同一个密码文件。

SQL>startup   --现在可以打开数据库使用了,如果正常的情况下,上面连接时就

           --可以启动数据库了。

       至此,一个数据库的克隆(Clone DB)成功完成。对于上面的操作,下面作个总结,以便对Oracle的物理文件与Oracle系统之间的关系有一定程度的理解或认识:

1、  Oracle数据库物理文件与Oracle软件(这里的软件概念仅限于相关的命令或应用程序操作,如sqlpluslsnrctl等命令)相对独立存在,两者之间只存在软件命令或应用程序对物理文件进行操作的关系;

2、  Oracle软件命令或应用程序如果要对数据库物理文件进行读取,通常需要在Oracle默认安装的文件位置去查找,最主要的是密码文件与初始化参数文件,当然这两个文件所在目录也可以改变,但使用默认位置就可以了,因为对于我们的需求也仅限于默认位置就可以了;

3、  对于是否有数据丢失,那要看A机上数据是否完整?因为现在B机上的数据库是A机数据库的完整克隆(Clone),所以最后A机数据库与B机数据库完全一样,当然前提是所有物理文件没有受到损坏;强烈推荐将A机上的数据库置于归档模式,这样Oracle可以最大程度保证数据不被丢失;

4、  以上测试可以作为数据库倒腾到不同机器上的一个可选方案,同时对原来机器上的数据库不会有损坏的可能,因为上面步骤对原数据库没有修改操作;除非从A机复制物理文件至B机上时,采用的是cut命令而丢失了物理文件;

5、  整个持续过程需要花费的时间较短:shutdown immediate时间,加上copy物理文件的时间,修改初始化参数的时间,与startup B机数据库的时间。

Oracle数据库整机移植技术

Oracle数据库整机移植技术  本文源自一次做Oracle9i DataGuard测试而产生的思路。前些时间有网友提出因为OS损坏,在硬盘没有损坏的情况下可否将数据库恢复至另一台机器上。现在不管从理...
  • songkexin
  • songkexin
  • 2006年12月21日 06:37
  • 758

Oracle数据库整机移植技术(原创)

Oracle数据库整机移植技术 本文源自一次做Oracle9i DataGuard测试而产生的思路。前些时间有网友提出因为OS损坏,在硬盘没有损坏的情况下可否将数据库恢复至另一台机器上。现在不管从理论...
  • zgh2003
  • zgh2003
  • 2005年05月12日 19:31
  • 2222

Oracle数据库移植全步骤

   Oracle数据库移植全步骤  为了方便更多的人,写了这个! 首先要备份。对于不同版本的Oracle之间导入的原则:低版本exp,高版本imp比如,我的数据库服务器是9i,我电脑上客户端是9i,...
  • defonds
  • defonds
  • 2009年06月11日 21:52
  • 12381

智能机工厂模式测试及整机测试网址

智能机工厂模式测试及整机测试网址 1.智能机工厂模式测试规范(6575)    http://wenku.baidu.com/link?url=MzLl2E1qrO61UcbUZSN7y0pBHMw...
  • adazone
  • adazone
  • 2015年04月21日 15:49
  • 787

Oracle数据库LONG类型移植

LONG类型字段很原始使用时限制也很多,与LONG类型相对应的类型有CLOB,LONG类型虽然已经不建议使用但还是可以发现在Oracle数据字典相关的视图中还是有LONG类型的身影。 LONG类型的...
  • ybygjy
  • ybygjy
  • 2011年10月13日 22:17
  • 1578

ORACLE数据库移植

ORACLE数据库移植
  • godpreserve
  • godpreserve
  • 2011年02月10日 09:43
  • 433

ORACLE数据库恢复技术

 一、恢复的意义当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据...
  • HITTOWN
  • HITTOWN
  • 2009年11月30日 13:55
  • 1752

折合人民币四万三 全球最豪华电脑整机图赏【实用】

对于Allienware这个品牌,广大的发烧友朋友应该都十分熟悉了,这是个以高端游戏主机的整机商,他们的产品向来以超豪华的配置而著称。今天我们就来看看他们最新的Aurora 7500整机Aurora ...
  • kof820
  • kof820
  • 2006年03月31日 14:50
  • 1005

Oracle10g迁移备份、搬迁数据库到另外一台服务器

1、在一台新服务器上安装Oracle 10g,安装的时候会设置一个密码,请记住,安装快好的时候,会有相关账号锁住的提示,请注意system账号不要被锁住。2、安装好后,用system和设置的密码登陆(...
  • cctvcqupt
  • cctvcqupt
  • 2017年10月19日 01:13
  • 362

Oracle数据库DBA必备基本技能

【Oracle数据库DBA必备基本技能】     1)首先知道控制文件,数据文件,以及日志文件的所在目录以及表空间相关使用情况,会优化Top级别SQL语句     se...
  • zhihui1017
  • zhihui1017
  • 2016年03月14日 14:10
  • 1079
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle数据库整机移植技术
举报原因:
原因补充:

(最多只允许输入30个字)