Oracle在不同windows系统中的迁移(一)

2014-11-24 09:16:55 · 作者: · 浏览: 2
Oracle在不同windows系统中的迁移
在Windows操作系统环境下运行的Oracle系统。很不幸的是,格式化C盘Windows系统重装了,Oracle不能用了。这时你会怎么做。最笨最保险的方法,重装oracle系统。因为我们都知道如果是在linux下很容易实现了,拷贝拷贝oracle系统文件,配置配置环境变量即可,但在windows下就不那么简单了。Oracle数据库系统,不仅仅是一些oracle系统文件,还有一些和注册表及windows服务密切相互的配置信息。更有甚者,如果Windows系统不是重装,而是升级了,例如从Windows2003升级到Windows2008,我们又该怎么办?
www.2cto.com
虽然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系统文件中的 数据库实例能不能启动起来。
Script代码
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连接,
Trc代码
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了半天。
Txt代码
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软件的注册表信息,照猫画虎,将记录都添加上。完事后,我导出了一份。
Txt代码
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
@=""
"inst_loc"="C:\\Program Files\\Oracle\\Inventory"
[HKEY_LOCAL_MACHINE\S