背景:
      最近因为一次设备故障,导致一台运行windows环境下的机器无法启动,里面有一个正在使用的财务数据库,该数据库也只是每月使用一次,需要把物理数据迁移出来,于是拔出了故障机器的硬盘,通过一个专门的硬盘接口器读取了数据的数据库数据来做物理迁移。

把物理数据库拷入新机器,以下所有操作都在新机器上进行。

1.拷入spfile和数据文件到对应的目录

把spfile拷入$ORACLE_HOME/dbs下
   把数据库物理文件拷入$ORACLE_BASE/oradata下
   在$ORACLE_BASE/admin/下创建adump bdump cdump udump文件下

2.登录sqlpus 报ora-12560错误

C:\Windows\system32>set ORACLE_SID=ZDJS

C:\Windows\system32>echo %ORACLE_SID%
ZDJS C:\Windows\system32>sqlplus /nolog SQL*Plus: Release 10.2.0.1. - Production on 星期四 4月 :: Copyright (c) , , Oracle. All rights reserved. SQL> conn /as sysdba
ERROR:
ORA-: TNS: 协议适配器错误

这一点和liunx下是不同的,windows下不会自动地创建实例,我们需要手动创建实例。

3.使用oradim工具创建对应数据库实例

C:\Windows\system32>oradim -new -sid ZDJS -startmode auto -spfile
实例已创建。 C:\Windows\system32>set ORACLE_SID=ZDJS C:\Windows\system32>echo %ORACLE_SID%
ZDJS C:\Windows\system32>sqlplus /nolog SQL*Plus: Release 10.2.0.1. - Production on 星期四 4月 :: Copyright (c) , , Oracle. All rights reserved. SQL> conn /as sysdba
已连接到空闲例程。
SQL>

注意:使用oradim工具创建创建新实力后,可以在系统服务里自动生成对应的服务OracleServiceZDJS   OracleJobSchedulerZDJS

windows上删除服务:

C:\Windows\system32>sc delete OracleServiceZDJS
[SC] DeleteService 成功 C:\Windows\system32>sc delete OracleJobSchedulerZDJS
[SC] DeleteService 成功 C:\Windows\system32>sc delete OracleDBConsolezdjs
[SC] DeleteService 成功

创建实例后我们就可以连接到一个空闲例程里。

4.利用spfile生产pfile

SQL> create pfile='C:\oracle\product\10.2.0\db_1\dbs\INITZDJS.ORA' from spfile='C:\oracle\product\10.2.0\db_1\dbs\SPFILEZDJS.ORA';

文件已创建。

5.手动修改pfile中的路径dump文件及控制文件路径

*.audit_file_dest='D:\oracle\product\10.2.0/admin/ZDJS/adump'
*.background_dump_dest='D:\oracle\product\10.2.0/admin/ZDJS/bdump'
*.control_files='D:\oracle\product\10.2.0/oradata/ZDJS/\control01.ctl','D:\oracle\product\10.2.0/oradata/ZDJS/\control02.ctl','D:\oracle\product\10.2.0/oradata/ZDJS/\control03.ctl'
*.core_dump_dest='D:\oracle\product\10.2.0/admin/ZDJS/cdump'
*.user_dump_dest='D:\oracle\product\10.2.0/admin/ZDJS/udump'

修改为:

*.audit_file_dest='C:\oracle\product\10.2.0\admin\ZDJS\adump'
*.background_dump_dest='C:\oracle\product\10.2.0\admin\ZDJS\bdump'
*.control_files='C:\oracle\product\10.2.0\oradata\ZDJS\control01.ctl','C:\oracle\product\10.2.0\oradata\ZDJS\control02.ctl','C:\oracle\product\10.2.0\oradata\ZDJS\control03.ctl'
*.core_dump_dest='C:\oracle\product\10.2.0\admin\ZDJS\cdump'
*.user_dump_dest='C:\oracle\product\10.2.0\admin\ZDJS\udump'

6.利用pfile生成spfile,把原spfile删除

SQL> create spfile='C:\oracle\product\10.2.0\db_1\dbs\SPFILEZDJS.ORA' from pfile='C:\oracle\product\10.2.0\db_1\dbs\INITZDJS.ORA';

文件已创建。

7.使用spfile把数据库启动到mount状态

SQL> startup mount
ORA-: failure in processing system parameters
LRM-: ???????????????? 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITZDJS.ORA'

注意到提示的路径下查看文件C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITZDJS.ORA

查看该路径下文件是否存在,如果不存在创建该文件,如果存在则修改为:

SPFILE='C:\oracle\product\10.2.0\db_1\dbs\SPFILEZDJS.ORA'

注意后面没有';'

重新启动数据库到mount状态:

SQL> startup mount
ORACLE 例程已经启动。 Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
数据库装载完毕。

7.修改文件对应的路径

--数据文件

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\USERS01.DBF
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEST01.DBF
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEST02.DBF 已选择6行。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\SYSTEM01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\SYSTEM01.DBF'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\UNDOTBS01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\UNDOTBS01.DBF'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\SYSAUX01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\SYSAUX01.DBF'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\USERS01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\USERS01.DBF'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\TEST01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\TEST01.DBF'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\TEST02.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\TEST02.DBF'; 数据库已更改。 SQL> select name from v$datafile; NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\SYSTEM01.DBF
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\UNDOTBS01.DBF
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\SYSAUX01.DBF
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\USERS01.DBF
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEST01.DBF
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEST02.DBF 已选择6行。

--日志文件

SQL> select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO03.LOG
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO02.LOG
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO01.LOG SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\REDO01.LOG' to 'C:\oracle\product\10.2.0\oradata\ZDJS\REDO01.LOG'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\REDO02.LOG' to 'C:\oracle\product\10.2.0\oradata\ZDJS\REDO02.LOG'; 数据库已更改。 SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\REDO03.LOG' to 'C:\oracle\product\10.2.0\oradata\ZDJS\REDO03.LOG'; 数据库已更改。 SQL> select group#,member from v$logfile; GROUP# MEMBER
---------- --------------------------------------------------
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO03.LOG
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO02.LOG
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\REDO01.LOG

--临时文件

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEMP01.DBF SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZDJS\TEMP01.DBF' to 'C:\oracle\product\10.2.0\oradata\ZDJS\TEMP01.DBF'; 数据库已更改。 SQL> select name from v$tempfile; NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.\ORADATA\ZDJS\TEMP01.DBF

8.打开数据库

SQL> alter database open;

数据库已更改。

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE SQL> select status from v$instance; STATUS
------------------------
OPEN

至此数据库在新机器中打开,迁移完成。

9.验证数据库是否自动注册到监听里

C:\Windows\system32>lsnrctl status

LSNRCTL for -bit Windows: Version 10.2.0.1. - Production on -4月 - ::

Copyright (c) , , Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=RLSC-SERVER)(PORT=)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for -bit Windows: Version 10.2.0.1. - Production
启动日期 -4月 - ::
正常运行时间 天 小时 分 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 C:\oracle\product\10.2.\db_1\network\admin\listener.ora
监听程序日志文件 C:\oracle\product\10.2.\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RLSC-SERVER)(PORT=)))
服务摘要..
服务 "PLSExtProc" 包含 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 个处理程序...
服务 "PSDB0XDB" 包含 个例程。
例程 "psdb0", 状态 READY, 包含此服务的 个处理程序...
服务 "PSDB0_XPT" 包含 个例程。
例程 "psdb0", 状态 READY, 包含此服务的 个处理程序...
服务 "ZDJSXDB" 包含 个例程。
例程 "zdjs", 状态 READY, 包含此服务的 个处理程序...
服务 "ZDJS_XPT" 包含 个例程。
例程 "zdjs", 状态 READY, 包含此服务的 个处理程序...
服务 "psdb0" 包含 个例程。
例程 "psdb0", 状态 READY, 包含此服务的 个处理程序...
服务 "zdjs" 包含 个例程。
例程 "zdjs", 状态 READY, 包含此服务的 个处理程序...
命令执行成功

10.最后可以验证一下数据库在windows环境下是否能够自动开机启动

经验证数据库在新机器是能够正常开机启动的。

记一次windows下物理迁移数据库的过程的更多相关文章

  1. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  2. Windows下更改MySQL数据库的存储位置

    在MySQL安装完成后,要修改数据库存储的位置,比如从安装目录下的C:\Program Files\MySQL\MySQL Server 5.0\Data文件夹转移到D:\mySQLData文件夹. ...

  3. < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

    < python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分 ...

  4. Windows下安装Redis数据库并实现C#访问

    1.Redis在Windows下的安装 目前Redis官方并不支持Redis的Windows版本,需要去GitHub下载. GitHub上的Redis分两种,一种是以命令行形式安装的,一种是以Wind ...

  5. windows下安装DB2数据库以及使用Aqua Data Studio链接数据库

    本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之 ...

  6. windows 下创建 sqlite 数据库

    说明:windows 下执行创建 sqlite 数据库命令后数据库文件不会马上生成,需要创建表以后才会生成. 1.将 sqlite3.exe 文件放在任何位置(如放在 d:\tools )2.在 CM ...

  7. python在windows下连接mysql数据库

    一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.M ...

  8. Windows下安装Python数据库模块--MySQLdb

    ## 1.下载MySQLdb [去官网](http://pypi.python.org/pypi/MySQL-python/) 下载对应的编译好的版本(现在官网最新版本为1.2.5): MySQL-p ...

  9. windows下oracle 11g r2 安装过程与卸载详细图解

    Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...

随机推荐

  1. R语言:规划求解优化ROI

    今天看到一篇文章介绍如何用excel建模对ROI 进行规划求解. 蓝鲸的网站分析笔记 成本 Cost 每次点击费用 CPC 点击量 \[clickRate = \frac{cost}{CPC}\] 转 ...

  2. Alpha版本十天冲刺——Day 1

    站立式会议 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 α版本接口文档初步编写,任务统筹 绘制燃尽图出错 学习http资源访问,服务器请求接口demo测试 作为PM,之前对团队具体要做 ...

  3. 值得推荐的android开源框架

    1.volley 项目地址https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) ...

  4. poj 1695

    用动态规划,dp[a][b][c]表示从位置最大的车在a(注意不是第一辆车),第二的车在b,第三的车在c开始最少需要的时间. 方程:dp[a][b][c]=max{dp[a+1][b][c],     ...

  5. ubuntu16.04下安装cuda8.0

    一.首先安装NVIDIA显卡驱动 通过NVIDIA-Linux-x86_64-367.44.run文件安装. 1. 添加 PPA. sudo add-apt-repository ppa:graphi ...

  6. android 获取Datepicker日期

    1.使用的Android5.0系统,实现上面效果使用了alertdialog 2.布局文件: layout_dataselect <?xml version="1.0" en ...

  7. 前端开发必备!Emmet语法

    使用方法 emmet的使用方法也非常简单,以sublime text为例,直接在编辑器中输入HTML或CSS的代码的缩写,然后按tab键就可以拓展为完整的代码片段.(如果与已有的快捷键有冲突的话,可以 ...

  8. assign more memory to Gradle

    Please assign more memory to Gradle in the project's gradle.properties file.For example, the followi ...

  9. ASP.NET 保存txt文件

    public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.Buffer ...

  10. CSS初始化样式

    为什么要初始化CSS? CSS初始化是指重设浏览器的样式.不同的浏览器默认的样式可能不尽相同,所以开发时的第一件事可能就是如何把它们统一.如果没对CSS初始化往往会出现浏览器之间的页面差异.每次新开发 ...