Oracle数据库整机移植技术

2024-01-21 14:58

本文主要是介绍Oracle数据库整机移植技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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
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.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机同名的目录。例如:
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软件(这里的软件概念仅限于相关的命令或应用程序操作,如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数据库整机移植技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629907

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.