Oracle迁移:Linux->Windows
源环境:RHEL6.4 + Oracle 11.2.0.4
目的环境:Windows 2003
需求:研发测试环境的Oracle数据库从Linux迁移到Windows,可以停机。
- 1.Windows安装同版本数据库软件
- 2.Windows使用oradim创建实例
- 3.Windows创建密码文件
- 4.Linux创建pfile,正常关闭数据库
- 5.Linux拷贝所有文件到Windows
- 6.Windows修改pfile,指定控制文件路径
- 7.Windows备份控制文件,重建控制文件(noresetlog)
- 8.Windows后续配置
1.Windows安装同版本数据库软件
首先在MOS上确定Oracle Database 11.2.0.4.0 已在 Microsoft Windows x64 (64-bit) 2003 上通过认证。
然后在MOS上下载11.2.0.4的安装介质
```
p13390677_112040_MSWIN-x86-64_1of7.zip
p13390677_112040_MSWIN-x86-64_2of7.zip
```
注意:
本次安装时选择 "仅安装数据库软件" -> "单实例数据库安装"
2.Windows使用oradim创建实例
在Windows系统上,Oracle连接到实例需要此步骤,
本案例创建实例vas,sqlplus登录到vas实例的具体过程:
```
C:\Documents and Settings\Administrator>oradim -NEW -SID vas
实例已创建。
C:\Documents and Settings\Administrator>set ORACLE_SID=vas
C:\Documents and Settings\Administrator>echo %ORACLE_SID%
vas
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期日 2月 14 12:38:48 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
已连接到空闲例程。
SQL>
关于oradim命令,具体参考官档:Database Administrator's Guide -> 2 Creating and Configuring an Oracle Database -> Creating a Database with the CREATE DATABASE Statement部分的步骤5:
> Step 5: (Windows Only) Create an Instance
> On the Windows platform, before you can connect to an instance, you must manually create it if it does not already exist. The ORADIM command creates an Oracle instance by creating a new Windows service.
>
> To create an instance:
>
> Enter the following command at a Windows command prompt:
>
> oradim -NEW -SID sid -STARTMODE MANUAL -PFILE pfile
> where sid is the desired SID (for example mynewdb) and pfile is the full path to the text initialization parameter file. This command creates the instance but does not start it.
步骤14,修改为自动启动
> Step 14: (Optional) Enable Automatic Instance Startup
> You might want to configure the Oracle instance to start automatically when its host computer restarts. See your operating system documentation for instructions. For example, on Windows, use the following command to configure the database service to start the instance upon computer restart:
>
> ORADIM -EDIT -SID sid -STARTMODE AUTO -SRVCSTART SYSTEM [-SPFILE]
> You must use the -SPFILE argument if you want the instance to read an SPFILE upon automatic restart.
我们还可以直接通过oradim -h看到oradim命令的说明帮助:
C:\Documents and Settings\Administrator>oradim -h
DIM-00002: 指定的命令无效。
输入以下命令之一:
通过指定以下选项创建实例:
-NEW -SID sid | -SRVC srvc | -ASMSID sid | -ASMSRVC srvc [-SYSPWD pass]
[-STARTMODE auto|manual] [-SRVCSTART system|demand] [-PFILE file | -SPFILE]
[-SHUTMODE normal|immediate|abort] [-TIMEOUT secs] [-RUNAS osusr/ospass]
通过指定以下选项编辑实例:
-EDIT -SID sid | -ASMSID sid [-SYSPWD pass]
[-STARTMODE auto|manual] [-SRVCSTART system|demand] [-PFILE file | -SPFILE]
[-SHUTMODE normal|immediate|abort] [-SHUTTYPE srvc|inst] [-RUNAS osusr/ospass]
通过指定以下选项删除实例:
-DELETE -SID sid | -ASMSID sid | -SRVC srvc | -ASMSRVC srvc
通过指定以下选项启动服务和实例:
-STARTUP -SID sid | -ASMSID sid [-SYSPWD pass]
[-STARTTYPE srvc|inst|srvc,inst] [-PFILE filename | -SPFILE]
通过指定以下选项关闭服务和实例:
-SHUTDOWN -SID sid | -ASMSID sid [-SYSPWD pass]
[-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE normal|immediate|abort]
通过指定以下参数查询帮助: -? | -h | -help
oradim命令几个常用的参数:
--创建实例vas
oradim -NEW -SID vas
--删除实例vas
oradim -DELETE -SID vas
--编辑实例vas
oradim -EDIT -SID vas -STARTMODE auto -SRVCSTART system
<h1 id="3">3.Windows创建密码文件</h1>
Windows上Oracle的密码文件和Linux上Oracle的密码文件,默认规范路径有点区别。
Windows平台,Oracle密码文件在%ORACLE_HOME%/database/下;名称是PWD<sid>.ora;
Unix/Linux平台,Oracle密码文件在$ORACLE_HOME/dbs/下;名称一般是orapw<sid>;
类似的,Oracle参数文件的默认路径也是这种区别。
--创建密码文件
orapwd file=F:\app\Administrator\product\11.2.0\dbhome_1\database\PWDvas.ora password=oracle
<h1 id="4">4.Linux创建pfile,正常关闭数据库</h1>
--Linux创建pfile
SQL> create pfile='/tmp/pfile20160214.ora' from spfile;
File created.
--正常关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
<h1 id="5">5.Linux拷贝所有文件到Windows</h1>
使用FileZilla 工具拷贝:
二进制模式传输 所有控制文件、数据文件、重做日志文件、临时文件(可选)到Windows规划目录下。
ASCII模式传输pfile参数文件。
查询数据库所有控制文件、数据文件、重做日志文件、临时文件(可选)信息:
select name from v$controlfile union all
select name from v$datafile union all
select member from v$logfile union all
select name from v$tempfile;
<h1 id="6">6.Windows修改pfile,指定控制文件路径</h1>
Windows修改pfile,修改参数文件中的值,比如adump的路径等,尤其注意指定控制文件的路径。
修改的pfile文件全路径是:`%ORACLE_HOME%\database\pfilevas.ora`
然后,
--启动数据库到nomount状态
startup nomount pfile='%ORACLE_HOME%\database\pfilevas.ora'
--更改数据库到mount状态
alter database mount;
--根据pfile文件,创建spfile文件
create spfile='spfilevas.ora' from pfile='%ORACLE_HOME%\database\pfilevas.ora';
<h1 id="7">7.Windows备份控制文件,重建控制文件(noresetlog)</h1>
## 7.1 Windows备份控制文件 ##
SQL> alter database backup controlfile to trace;
--生成的跟踪文件默认路径为user_dump_dest参数指向的目录下。
## 7.2 选取noresetlog部分重建控制文件 ##
--选取noresetlog部分重建控制文件
-- Set #1. NORESETLOGS case
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by Recovery Manager will be lost.
-- Additional logs may be required for media recovery of offline
-- Use this only if the current versions of all online logs are
-- available.
-- After mounting the created controlfile, the following SQL
-- statement will place the database in the appropriate
-- protection mode:
-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "VAS" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/oradata/VAS/onlinelog/o1_mf_1_c1cm3pwr_.log',
'/opt/app/oracle11/fast_recovery_area/VAS/onlinelog/o1_mf_1_c1cm3rn6_.log'
) SIZE 1024M BLOCKSIZE 512,
GROUP 2 (
'/oradata/VAS/onlinelog/o1_mf_2_c1cm5nfs_.log',
'/opt/app/oracle11/fast_recovery_area/VAS/onlinelog/o1_mf_2_c1cm5p2b_.log'
) SIZE 1024M BLOCKSIZE 512,
GROUP 3 (
'/oradata/VAS/onlinelog/o1_mf_3_c1cm7l3v_.log',
'/opt/app/oracle11/fast_recovery_area/VAS/onlinelog/o1_mf_3_c1cm7mnh_.log'
) SIZE 1024M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oradata/VAS/datafile/o1_mf_system_c1cm0o2x_.dbf',
'/oradata/VAS/datafile/o1_mf_sysaux_c1cm0o5j_.dbf',
'/oradata/VAS/datafile/o1_mf_undotbs1_c1cm0o7x_.dbf',
'/oradata/VAS/datafile/o1_mf_users_c1cm0obx_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_dcdl_c1cndg32_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_cr_c1cnhxj3_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_icdl_c1cnj30n_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_cd_c1cnj8dk_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_cr_c1cnjg2t_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_ne_c1cnjmdh_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_pe_c1cnjrjv_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_rn_c1cnjy27_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_wo_c1cnk3lg_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_cd_c1cnk999_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_cr_c1cnkhct_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_ne_c1cnknpc_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_pe_c1cnksy1_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_rn_c1cnkz2m_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_i_wo_c1cnl4ny_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_cssp_c5qdmmgl_.dbf',
'/oradata/VAS/datafile/o1_mf_dbs_d_ba_c5qdmtcz_.dbf'
CHARACTER SET ZHS16GBK
;
-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE 'F:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\VAS\ARCHIVELOG\2016_02_14\O1_MF_1_1_%U_.ARC';
-- ALTER DATABASE REGISTER LOGFILE 'F:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\VAS\ARCHIVELOG\2016_02_14\O1_MF_1_1_%U_.ARC';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE
-- Database can now be opened normally.
ALTER DATABASE OPEN;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/VAS/datafile/o1_mf_temp_c1cm9jph_.tmp' REUSE;
-- End of tempfile additions.
## 7.3 正常关闭数据库 ##
SQL> shutdown immediate;
## 7.4 重建控制文件 ##
把7.2部分中的内容根据实际情况修改如下:
--选取noresetlog部分重建控制文件(修改过)
-- Set #1. NORESETLOGS case
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by Recovery Manager will be lost.
-- Additional logs may be required for media recovery of offline
-- Use this only if the current versions of all online logs are
-- available.
-- After mounting the created controlfile, the following SQL
-- statement will place the database in the appropriate
-- protection mode:
-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "VAS" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'F:\oradata\VAS\onlinelog\o1_mf_1_c1cm3pwr_.log'
) SIZE 1024M BLOCKSIZE 512,
GROUP 2 (
'F:\oradata\VAS\onlinelog\o1_mf_2_c1cm5nfs_.log'
) SIZE 1024M BLOCKSIZE 512,
GROUP 3 (
'F:\oradata\VAS\onlinelog\o1_mf_3_c1cm7l3v_.log'
) SIZE 1024M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'F:\oradata\VAS\datafile\o1_mf_system_c1cm0o2x_.dbf',
'F:\oradata\VAS\datafile\o1_mf_sysaux_c1cm0o5j_.dbf',
'F:\oradata\VAS\datafile\o1_mf_undotbs1_c1cm0o7x_.dbf',
'F:\oradata\VAS\datafile\o1_mf_users_c1cm0obx_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_dcdl_c1cndg32_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_cr_c1cnhxj3_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_icdl_c1cnj30n_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_cd_c1cnj8dk_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_cr_c1cnjg2t_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_ne_c1cnjmdh_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_pe_c1cnjrjv_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_rn_c1cnjy27_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_wo_c1cnk3lg_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_cd_c1cnk999_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_cr_c1cnkhct_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_ne_c1cnknpc_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_pe_c1cnksy1_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_rn_c1cnkz2m_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_i_wo_c1cnl4ny_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_cssp_c5qdmmgl_.dbf',
'F:\oradata\VAS\datafile\o1_mf_dbs_d_ba_c5qdmtcz_.dbf'
CHARACTER SET ZHS16GBK
;
-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE 'F:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\VAS\ARCHIVELOG\2016_02_14\O1_MF_1_1_%U_.ARC';
-- ALTER DATABASE REGISTER LOGFILE 'F:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\VAS\ARCHIVELOG\2016_02_14\O1_MF_1_1_%U_.ARC';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE
-- Database can now be opened normally.
ALTER DATABASE OPEN;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'F:\oradata\VAS\datafile\o1_mf_temp_c1cm9jph_.tmp' REUSE;
-- End of tempfile additions.
至此已经在Windows上成功打开数据库。
<h1 id="8">8.Windows后续配置</h1>
## 8.1 监听配置 ##
在%ORACLE_HOME%/NETWORK\ADMIN\listener.ora加上以下内容
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:F:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = vas)
(ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = vas)
)
)
然后启动监听
lsnrctl start
## 8.2 环境变量 ##
ORACLE_SID=vas
## 8.3 Oracle服务自动启动 ##
oradim -EDIT -SID vas -STARTMODE auto -SRVCSTART system
## 8.4 数据文件关闭自动扩展(选做) ##
根据空间具体情况而定。
至此,此次oracle数据库从linux平台迁移到windows平台的迁移需求就全部完成了。
Oracle迁移:Linux->Windows的更多相关文章
- Oracle数据库迁移--->从Windows到Linux
I did a practice to migrate the oracle database from windows to linux operation system. The followin ...
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- paip.java win程序迁移linux的最佳实践
paip.java win程序迁移linux的最佳实践 1.class load路径的问题... windows哈第一的从calsses目录加载,,而linux优先从jar加载.. 特别的是修理了ja ...
- 将 Java Spring Framework 应用程序迁移到 Windows Azure
我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序( ...
- [Oracle]UNIX与Windows 2000上Oracle的差异(I)
作者:Ian Adam & David Stien, SAIC Ltd 日期:19-Dec-2003 出处:http://www.dbanotes.net翻译:Fenng ---------- ...
- Oracle Enterprise Linux 64-bit 下Oracle11g的监听配置修改及测试步骤
测试环境:Oracle Enterprise Linux 64-bit (5.8版本) + Oracle 11g 64位 相关说明: Oracle11g64位软件的安装位置为/u01/app/orac ...
- 从Oracle迁移到MySQL的各种坑及自救方案
当企业内部使用的数据库种类繁杂时,或者有需求更换数据库种类时,都可能会做很多数据迁移的工作.有些迁移很简单,有些迁移可能就会很复杂,大家有没有考虑过为了顺利完成复杂的数据库迁移任务,都需要考虑并解决哪 ...
- Oracle Enterprise Linux 64-bit 下Oracle11g的监听配置改动及測试步骤
測试环境:Oracle Enterprise Linux 64-bit (5.8版本号) + Oracle 11g 64位 相关说明: Oracle11g64位软件的安装位置为/u01/app/ora ...
- Linux 与 Linux Windows 文件共享 小知识
Linux 与 Linux Windows 文件共享 前提说明:windows主机信息:192.168.1.100 帐号:abc 密码:123 共享文件夹:sharelinux主机信息:192.1 ...
随机推荐
- 【.net 深呼吸】细说CodeDom(2):表达式、语句
在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- PHP-生成缩略图和添加水印图-学习笔记
1.开始 在网站上传图片过程,经常用到缩略图功能.这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图. 2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率. 这里,我根据 ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- App你真的需要么
随着智能手机.移动路联网的普及,APP火的一塌糊涂,APP应用可谓五花八门,街上经常看到各种推广:扫码安装送东西,送优惠券.仿佛一夜之间一个企业没有自己的APP就跟不上时代了. 有时我在想:APP,你 ...
- HTML骨架结构
前面的话 一个完整的HTML文档必须包含3个部分:文档声明.文档头部和文档主体.而正是它们构成了HTML的骨架结构.前面已经分别介绍过文档声明和文档头部,本文将详细介绍构成HTML骨架结构的基础元 ...
- OpenCV模板匹配算法详解
1 理论介绍 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标.OpenCV ...
- CRL快速开发框架系列教程九(导入/导出数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- JavaScript基础知识总结(一)
当我们接触一种新语言时,首先要先了解它,对它有一定的理论认识. 那么,什么是JavaScript呢? JavaScript是一种脚本语言,由web浏览器进行解释和执行.它包括ECMAScript.DO ...
- ASP.NET中画图形验证码
context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...