Oracle数据库整机移植技术

本文源自一次做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

CORE9.2.0.1.0Production

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.ora、tnsnames.ora,Oracle连接时需要读这两个文件和sqlnet.ora文件。配置时最好采用“开始—>程序(P)—> Oracle - OraHome92—> Configuration and

Migration Tools—> Net Manager”在图形界面下进行配置,这同时可以生成上述的listener.ora、tnsnames.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)创建实例服务,由于前面只安装了数据库软件,所以这时实例服务名还不存在,现在创建它(对于Linux或Unix系统,就没有此步骤了):

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.ORA,copy至B机上相对应的与A机同名的目录。例如:

copyA/D:/oracle/oradata/testdb/*.*B/D:/oracle/oradata/testdb/

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

copyA/ F:/oracle/ora92/network/admin/*.ORAB/ E:/oracle/ora92/network/admin/(如果前面已经配置好了监听,此步略过)

copyA/ F:/oracle/ora92/database/*.ORAB/ 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软件(这里的软件概念仅限于相关的命令或应用程序操作,如sqlplus,lsnrctl等命令)相对独立存在,两者之间只存在软件命令或应用程序对物理文件进行操作的关系;

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

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

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

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

oracle整库的移植,Oracle数据库整机移植技术(原创)相关推荐

  1. oracle 迁库 教程,Oracle整库文件迁移步骤详解教程

    oracle双机发生切换,客户端也连接不上,原因未知,从主机上看是虚拟内存不够,整机都是在跑oracle,看情形应该从oracle上找原因. 远程连接过去之后,从alter.log发现由于磁盘空间不足 ...

  2. oracle建库sid大写,oracle解除账号锁定ORA-01078错误举例:SID的大小写错误

    案例重演: dbca建库,SID:metro –手工建库时实例名小写的metro -- [oracle@org54 ~]$ export ORACLE_SID=METRO –由于未设置环境变量,手工注 ...

  3. oracle跨库插入数据,Oracle跨数据库查询并插入实现原理及代码

    工作中需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,数据库服务器都是远程的!我的实现方法是在本地使用PL/SQL操 ...

  4. oracle 整库同步报错

    报错1 ORA-39083: Object type TABLESPACE failed to create with error: ORA-02236: invalid file name Fail ...

  5. oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限

    用法: 有两个用户:user1和user2,都是在库TEST上,分别有表user1.table1,user2.table2 但是用user1登录的时候,user2上表就不能用,此时就可以使用grant ...

  6. Oracle ASMLib库资源收藏--Oracle官方下载链接

    想要使用Oracle ASM管理数据库的存储,需要安装三个oracleasm相关的包,分别是oracleasm-support(平台架构相关),oracleasmlib(平台架构相关)和oraclea ...

  7. oracle数据库读取工具,用Oracle导入导出工具实现Oracle数据库移植

    用Oracle导入导出工具实现Oracle数据库移植.很不错的方法,建议使用![@more@] 用Oracle导入导出工具实现Oracle数据库移植 Oracle数据库作为目前市场的主流数据库之一,许 ...

  8. oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料

    众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询 ...

  9. oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...

    标签: 简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1.实现逻辑备份和逻辑恢复 2.数据库用户之间移动对象 ...

最新文章

  1. html5--6-59 其他常用CSS属性
  2. oracle使用sqlplus创建表空间
  3. discuz mysql_搭建Discuz! (mysql+apache+Discuz! )
  4. 摘自《Java工程师成神之路》2018修订版,自我勉励
  5. python nums函数获取结果记录集有多少行记录_PHP mysqli_num_rows():获取查询结果的行数...
  6. mysql降级导入_mysql 升级和降级
  7. JVM——深入分析对象的内存布局
  8. Ubuntu Linux镜像下载
  9. 关于百度富文本编辑器UEditor中ctrl+enter键发送消息的解决方案
  10. TeamViewer 远程连接一直显示正在初始化显示参数的解决方案
  11. 7、Cannot broadcast operands together.
  12. 计算机培训日志范文30篇,班主任工作日志20篇.docx
  13. 数学与应用数学考研计算机方向,数学专业考研方向解析:应用数学
  14. 怎么查看自己电脑的iP地址,3个方法推荐
  15. c语言编程高斯白噪声信号,关于产生高斯白噪声
  16. 基于HBase的大数据存储在京东的应用场景
  17. 群晖Docker 安装Jellyfin提示“操作超时解决方法
  18. linux用命令下载图片,Linux命令行中采集指定页面的图片地址及图片下载
  19. poi 替换word里的\n 变成 换行
  20. 三人表决电路——Verilog HDL语言

热门文章

  1. 怎样对平面中的点进行顺时针或者逆时针排序
  2. 昆仑天工AIGC——基于Stable Diffusion的多语言AI作画大模型测评
  3. 奥巴马获胜的秘密武器--“长尾效应”
  4. 提取视频音乐的简单方法
  5. OA厂商的硬实力—技术水平
  6. CentOS 6.2 LNMP搭建
  7. 计算机专业英语课程标准,502057《计算机专业英语》课程标准
  8. Meth | phpstorm invalid descendent file name
  9. 认真对待每一道算法题 之 找明星问题 - 淘宇瀚
  10. 【文本检测与识别白皮书-3.1】第三节:算法模型