`
mikixiyou
  • 浏览: 1086608 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:349494
社区版块
存档分类
最新评论

Oracle在不同windows系统中的迁移

阅读更多

在Windows操作系统环境下运行的Oracle系统。很不幸的是,格式化C盘Windows系统重装了,Oracle不能用了。这时你会怎么做。最笨最保险的方法,重装oracle系统。因为我们都知道如果是在linux下很容易实现了,拷贝拷贝oracle系统文件,配置配置环境变量即可,但在windows下就不那么简单了。Oracle数据库系统,不仅仅是一些oracle系统文件,还有一些和注册表及windows服务密切相互的配置信息。更有甚者,如果Windows系统不是重装,而是升级了,例如从Windows2003升级到Windows2008,我们又该怎么办?

 

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1766889 )

虽然Windows升级了,只要Oracle系统还能在新系统上正常运行,我们就能在不重装ORACLE的前提下将Oracle运行起来。
刚好有这样一个案例,运行在Windows2003上的oracle 10.2.0.4,需要迁移到一个新采购服务器上。新服务器,你知道的,一般都说只能安装最新的系统,这里就选择安装了Windows2008。
如果是你,你会怎么处理这个需求?我开始想到的是在windows2008上安装oracle 10.2.0.1,再升级到10.2.0.4。因为对windows真的不熟悉,也没能力去学好它,所以采用这种最笨但是最保险的方法。但是,oracle 10.2.0.1不能在windows2008上安装,执行setup.exe直接给我中止,报什么未知错误。oracle以前倒是提供了一个10.2.0.3 for vista的版本,据说可以在windows2008上安装。但是在oracle网站上现在也下载不到了。这个windows 2008又是R2版的,右键点setup.exe 选属性,选兼容模式,也没有windows2003可兼容。
没有其他办法了,手工来配置吧。注意,我从oracle文档中证实了Windows2008上是能运行oracle 10.2.0.4的,所以才想手工配置方法。如果不能跑oracle 10.2.0.4,那么只好老老实实升级oracle到11g了。

我一开始就想,参照着linux下迁移方法,就配置配置环境变量,拷贝拷贝oracle系统文件,看看Oracle系统文件中的数据库实例能不能启动起来。

set PATH=D:\oracle\product\10.2.0\db_1\bin;%PATH%
set ORACLE_HOME=D:\oracle\product\10.2.0\db_1
set ORACLE_SID=mikidb

 
在cmd中设置了这三个环境变量值,使用sqlplus / as sysdba连接,

D:\oracle\product\10.2.0\db_1\database>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jan 9 11:18:23 2013

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

ERROR:
ORA-12560: TNS:protocol adapter error

 
结果是直接给我报了"ORA-12560: TNS:protocol adapter error"错误。

这个错误可能会是操作系统用户不属于ora_dba组,监听没启动,windows服务没配置或没启动,参数配置不正确等等因素导致的。

在这台windows2008上,系统用户因为安装过11g,所以它已经属于ora_dba组了。监听和windows服务那是没有的,还没有配置呢。

我又测试了dbca建库操作,在建库进度条2%处,出错,报ORA-12560。搜了metalink,说这是一个bug。在windows 2008上oracle 10.2.0.4会发生,只好下载补丁包去apply。这里又因为没有oinventory,我又opatch apply了半天。

Symptoms
 
Install Oracle 10.2.0.3 (Vista/2008 version) on Windows 2008 Active Directory Controller.
When trying to create the database, around 2% completion, the error ORA-12560 will occur.


This Problem can occur on both 32bit and 64bit.

This Problem does NOT reproduce on a Member server. Only the Active Directory Controller.


Cause
 
 BUG 7263061.
 
Solution
 
For Oracle 10.2.0.4:
This issue has been resolved in the Oracle 10.2.0.4 Patch 14 patch.
Patch number 7677780 (MS Windows 32bit), or Patch number 7677781 (MS Windows 64bit (x64)).
NOTE: You will need to be at the 10.2.0.4 version, before applying this patch. 

 

在opatch apply这个补丁包时,我又伪造了oinventory的信息。将windows2003的c盘的program file的oracle目录也拷贝了一份过来。使opatch apply操作成功。


我再回到windows服务上来,手工新建windows服务。但如何新建呢,没经验啦,google一下。

oradim -new -sid mikidb -startmode auto -pfile d:\oracle\product\10.2.0\db_1\database\INITmikidb.ORA

服务导致一下子就创建成功,但在windows服务中死活也起不来,说系统找不到文件,要找啥文件呢?

想想还有注册表中的oracle信息可以添加。参照windows 2003上关于oracle软件的注册表信息,照猫画虎,将记录都添加上。完事后,我导出了一份。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
@=""
"inst_loc"="C:\\Program Files\\Oracle\\Inventory"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
"ORACLE_BASE"="d:\\oracle\\product\\10.2.0"
"ORACLE_BUNDLE_NAME"="Enterprise"
"ORACLE_GROUP_NAME"="Oracle - OraDb10g_home1"
"ORACLE_HOME"="d:\\oracle\\product\\10.2.0\\db_1"
"ORACLE_HOME_KEY"="SOFTWARE\\ORACLE\\KEY_OraDb10g_home1"
"ORACLE_HOME_NAME"="OraDb10g_home1"
"ORACLE_SID"="mikidb"
"ORA_mikidb_AUTOSTART"=hex(2):54,00,52,00,55,00,45,00,00,00
"ORA_mikidb_SHUTDOWN"=hex(2):54,00,52,00,55,00,45,00,00,00
"ORA_mikidb_SHUTDOWNTYPE"=hex(2):69,00,6d,00,6d,00,65,00,64,00,69,00,61,00,\
  74,00,65,00,00,00
"ORA_mikidb_SHUTDOWN_TIMEOUT"=hex(2):39,00,30,00,00,00
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

 
然后再使用oradim将服务删除掉重建。

D:\oracle\product\10.2.0\db_1\database>sc delete OracleServicemikidb
[SC] DeleteService 成功

D:\oracle\product\10.2.0\db_1\database>oradim -new -sid mikidb -startmode auto
 -pfile d:\oracle\product\10.2.0\db_1\database\INITmikidb.ORA
Instance created.

 
最终给了我一个instance created的反馈。到windows服务中,能手工重启这个服务。在cmd中,配置好环境变量后,使用sqlplus / as sysdba也能连接到这个实例。

到此,oracle 10.2.0.4的实例已经能跑在windows 2008上,任务完成。

回想一下,如果不打那个补丁,行不行呢。我又将d盘的oracle目录恢复成没打补丁之前,发现也行,没出现ORA-12560错误,实例也正常。再使用dbca新建一个库,也成功了。应该是这个ORA-12560问题和这个bug没有关系,根本原因还是我在开始配置不正确。

总结一下,在windows操作系统迁移中,主要配置有三项。1、操作系统用户所属组是否有ora_dba;2、注册表是否配置了oracle项;3、windows服务是否新建了数据库实例服务。这三项都正确了,一般都能成功的。其他如监听器的配置,可用netca自己配。

 

分享到:
评论

相关推荐

    Oracle11g R2数据库的迁移(同windows系统迁移)使用RMAN

    记录一次Oracle11g R2数据库的迁移(同windows系统迁移)使用RMAN 环境:windows 2008 R2 & windows 2008 R2 Oracle版本:11.2.0.1.0

    双机镜像环境下Oracle数据库向Linux系统迁移.pdf

    双机镜像环境下Oracle数据库向Linux系统迁移.pdf

    Windows系统与Linux系统间oracle数据库rman备份恢复方法

    采用rman备份的oracle数据库从Windows操作系统的恢复到Linux操作系统方法

    Oracle数据迁移之跨平台全库迁移

    Oracle 是一款非常优秀的 DBMS 软件。它可以运行在多种操作系统平台上,如: ...Oracle 数据库的迁移有很多种方法,但是,在这里我想用一个实验来向大家演示一下如 何利用 RMAN 进行 Oracle 数据库的跨平台全库迁移

    Oracle 11g RMAN备份异机恢复 迁移数据 案例.

    Rman的异机恢复的作用很多,比如数据库迁移,数据库恢复,基于数据库架构调整的还原恢复(比如从RAC-->>单实例,ASM-->>文件系统),有时候搭建测试环境也会用到,不过,这种情况下相信选择数据库复制方式比较方便。...

    DB2安装及Windows迁移至Linux

    DB2数据库安装,DB2从windows系统下迁移至linux系统上,DB2的备份还原,db2数据库调优,db2的Oracle兼容模式开启

    window下Oracle 11g导出的EXPDP数据导入到linux

    window下Oracle 11g导出的EXPDP数据导入到linux

    oracle9i oracle11g oracle10g 性能调优 基础学习 视频地址

    如何在windows上安装VBOX软件 5 第一讲创建VBOX虚拟主机并安装Oracle Ente 6 第二讲配置并clone Vbox虚拟主机 创建共享存储磁盘 6 第三讲安装11gR2 11.2.0.3 Grid Infrastructure Clusterware GI集群软件 6 第四讲...

    Oracle数据库备份与恢复.pdf

    同时,它支持多种操作系统和硬件平台,如Windows、Linux、UNIX等,这使得Oracle数据库能够适应不同的环境和需求。 在备份与恢复方面,Oracle数据库提供了全面的解决方案。它支持数据复制和备份功能,可以在多个地点...

    数据库迁移工具.rar

    自己做的一个数据库迁移工具,可以在 SQL Server、MySQL、Oracle 三种数据库之间互相迁移,迁移包括表、主键、索引、备注、数据。不会创建外键约束。在做迁移前,需建立一个空的目标数据库。运行环境需要是安装有 ...

    Oracle数据库学习指南

    38. 如何在Windows 2000下将Oracle完全卸载 39. 如何正确建立TYPE、partition(分区) 40. 如何正确利用Rownum来限制查询所返回的行数 41. 什么是ROWID,为什么需要它 42. 手工安装数据库时需要安装那些系统包 ...

    %BD-数据库软件升级及数据库迁移方案.doc

    数据库软件升级及数据库迁移方案 根据本次项目需求,此次项目实施除硬件设备安装调试外,还包括对已有管理系统所用 Oracle数据库的升级和管理系统数据的迁移工作,实施方案如下: 一、数据库软件升级 1.1操作系统AIX...

    [手工整理]208个Oracle安装文档,包含各个平台各个版本的单实例RAC以及DataGuard(1).xlsx

    97 Oracle 迁移至 PostgreSQL 在华为 ARM 上的解决方案 98 Oracle 数据库隐含参数设置 99 Oracle 隐含参数 100 Oracle 诊断事件及深入解析10053事件 101 OS deploying-odg-with-oda-1615029 102 OS IBM AIX ...

    Oracle数据库管理员技术指南

    2.2.3 在不同表空间之间移动索引 2.2.4 怎样查找最高点 2.2.5 怎样释放未用空间 2.3 DBMS_SPACE 程序包 2.3.1 使用 DBMS_SPACE.UNUSED _SPACE 2.3.2 使用 DBMS_SPACE.FREE _BLOCK 2.4 管理锁争用 2.4.1 ...

    服务器虚拟化项目P2V实施迁移方案.docx

    以下是需要迁移的业务系统列表(服务器类型全部为普通服务器,表中应用分类按照重要性分为ABCD四类,A为最高等级): 厂家 型号 主机名 IP 应用重要性分类级别 CPU总内核数 操作系统版本 DELL 2850 SIPO-MRQW-1 ...

    Oracle11gR2 部署手册

    Oracle11gR2作业指导手册,一文章搞定线上数据库部署,适用于Linux和Windows系统; 1、Oracle 运行环境(CentOS) 2、安装Oracle 3、配置数据库 4、配置用户数据(表空间、用户、授权、数据迁移) 5、常用命令(语句...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    sqldeveloper-21.4.3.x64+jdk1.8

    该工具可以连接任何 Oracle 9.2.0.1 或者以上版本的 Oracle 数据库,支持 Windows、Linux 和 Mac OS X 系统。 Oracle SQL Developer是针对Oracle数据库的交互式开发环境(IDE)。 Oracle SQL Developer简化了Oracle...

    oracle数据库dba管理手册

    5.3.4 Oracle8i中引入的开发环境特性 102 5.3.5 确定数据库对象的大小 107 5.3.6 迭代开发 125 5.3.7 迭代列定义 126 5.4 管理技术 126 5.4.1 CASE工具 127 5.4.2 共享目录 127 5.4.3 项目管理数据库 127 5.4.4 讨论...

Global site tag (gtag.js) - Google Analytics