在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自己配。
分享到:
相关推荐
尽管这种迁移方法在生产环境中可能不常见,但对于学习和理解Oracle数据库的内部工作原理非常有价值。了解如何在不同操作系统之间移动数据库有助于提升数据库管理员的技能,并且在特定情况下,如实验室环境或测试...
【双机镜像环境下Oracle数据库向Linux系统迁移】 在医疗信息化领域,医院信息系统(HIS)的稳定性和安全性至关重要。随着技术的发展,许多医疗机构选择将数据库从传统的Windows环境迁移到更稳定、开源的Linux操作...
采用rman备份的oracle数据库从Windows操作系统的恢复到Linux操作系统方法
记录一次Oracle11g R2数据库的迁移(同windows系统迁移)使用RMAN 环境:windows 2008 R2 & windows 2008 R2 Oracle版本:11.2.0.1.0
在进行数据库迁移升级之前,需要先安装操作系统和环境配置。包括: * 操作系统安装:安装操作系统,例如Linux或Windows。 * 环境配置:配置环境变量、网络设置、存储设置等。 GI 集群软件安装 GI(Grid ...
综上所述,在Windows环境下实现Oracle数据库迁移,尤其是当db_name和instance_name不同时,需要仔细规划每一步操作,并充分考虑各种配置差异带来的影响。通过以上步骤,可以有效确保迁移的成功率和数据的完整性。
基于Linux和虚拟化平台的Oracle数据库迁移是指将Oracle数据库从Windows操作系统迁移到基于Linux和虚拟化平台的操作系统,以提高系统的性能、可靠性、稳定性和安全性。这种迁移方案可以满足医院业务系统对性能、可靠...
IBM Portal 7.0 支持多种 Oracle 数据库版本及操作系统,确保在迁移过程中选择正确的版本至关重要。兼容性列表如下: - **Oracle Database 10g Enterprise Edition Release 1 (10.1.0.5)** - **Oracle Database 10g...
Oracle 19c是Oracle数据库的一个重要版本,尤其在Windows平台上,它提供了全面的功能和优化,使得数据库管理和开发更为高效。以下将详细讲解Oracle 19c Windows客户端的关键知识点: 1. **Oracle Client**: Oracle...
oracle 冷备份是指在 Windows 平台上对 Oracle 数据库实例进行备份的操作。冷备份需要将企业的 Oracle 数据库实例shutdown下来,并将所有的数据文件、控制文件、参数文件等拷贝回来,然后恢复。为确保备份的完整性...
Oracle 是一款非常优秀的 DBMS 软件。它可以运行在多种操作系统平台上,如: ...Oracle 数据库的迁移有很多种方法,但是,在这里我想用一个实验来向大家演示一下如 何利用 RMAN 进行 Oracle 数据库的跨平台全库迁移
在此案例中,需求包括对“xx中间库”的迁移,该库位于PC服务器上,操作系统为Windows 2003,数据库为Oracle *.*.*.*。数据存放于内置硬盘,当前数据量为70GB,预计增长至200GB。业务设备使用的是基于JAVA语言开发的...
Oracle GoldenGate支持跨平台的数据同步,常用于异构数据库环境,如从Windows到UNIX平台,或者从Oracle数据库到其他数据库系统的数据复制和同步。它提供了实时数据捕获、转换和加载功能,适合于数据库管理员(DBA)...
瀚高数据库是一款国内自主研发的高性能、高可用的数据库管理系统,其Windows版数据库迁移工具——HG-Sabre-Migration,主要用于帮助用户在不同数据库系统间进行数据迁移,确保业务连续性和数据完整性。本版本为4.0.3...
通过这两种工具,可以实现Oracle数据库的表空间移植,从而减少系统迁移期间的停机时间。 然而,海量数据的迁移是一项复杂任务,尤其是在不停机的情况下进行。传统的exp/imp工具可能无法满足这种大规模迁移的需求,...
Oracle数据库的跨操作系统迁移是一项复杂的过程,涉及到将现有的Oracle数据库从一种操作系统平台迁移到另一种,例如从Windows迁移到Solaris。这种迁移不包括数据库的二进制文件,而是专注于数据的移动。迁移可以在...
### Oracle数据库数据迁移...通过对备份系统的精心配置和对Oracle数据库的准确备份与恢复,确保了数据迁移过程中的数据安全性和业务连续性。此外,通过对数据库和应用的全面验证,确保了迁移后系统的稳定性和可靠性。
在数据迁移过程中,Oracle是一种广泛使用的大型关系型数据库管理系统,它支持复杂的数据类型和高级的数据库管理功能。SQL Server则是微软公司开发的一款同样强大的数据库系统,它提供了丰富的数据管理和分析工具,...
在案例中,有两个数据库DB1(Oracle 9i,Windows XP)和DB2(Oracle 6.5,Solaris 8)。DB1的管理系统包括manager wz和human,各自对应不同的表空间。而DB2的system用户和human用户的表空间配置与DB1类似。迁移时,...