记一次windows下物理迁移数据库的过程
背景:
最近因为一次设备故障,导致一台运行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下物理迁移数据库的过程的更多相关文章
- 在linux和windows下自动备份数据库
摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...
- Windows下更改MySQL数据库的存储位置
在MySQL安装完成后,要修改数据库存储的位置,比如从安装目录下的C:\Program Files\MySQL\MySQL Server 5.0\Data文件夹转移到D:\mySQLData文件夹. ...
- < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >
< python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分 ...
- Windows下安装Redis数据库并实现C#访问
1.Redis在Windows下的安装 目前Redis官方并不支持Redis的Windows版本,需要去GitHub下载. GitHub上的Redis分两种,一种是以命令行形式安装的,一种是以Wind ...
- windows下安装DB2数据库以及使用Aqua Data Studio链接数据库
本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之 ...
- windows 下创建 sqlite 数据库
说明:windows 下执行创建 sqlite 数据库命令后数据库文件不会马上生成,需要创建表以后才会生成. 1.将 sqlite3.exe 文件放在任何位置(如放在 d:\tools )2.在 CM ...
- python在windows下连接mysql数据库
一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.M ...
- Windows下安装Python数据库模块--MySQLdb
## 1.下载MySQLdb [去官网](http://pypi.python.org/pypi/MySQL-python/) 下载对应的编译好的版本(现在官网最新版本为1.2.5): MySQL-p ...
- windows下oracle 11g r2 安装过程与卸载详细图解
Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...
随机推荐
- tomcat乱码原因--基本的编码问题
tomcat乱码原因:在学习servlet时候,经常会遇到中文乱码的问题,网上查只知道如何设置不乱码,其中的原理不是很明白.我认为明白其中的原理,乱码问题就很容易解决 tomcat乱码解决方法: po ...
- python练手基础
Python相关文档0.1. Python标准文档0.2. Python实用大全0.3. 迷人的Python0.4. 深入理解Python0.5. Python扩展库网址 http://pypi.py ...
- 一个asp采集程序
<% if request.QueryString="" then url="http://www.hbcz.gov.cn:7001/XZQHQueryWAR/xx ...
- (原)android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因
摘要:alertdialog中加入edittext但是不弹出软键盘等问题网上有很多不管用的解决方案, 本文意在给出更有效的解决办法,并初步探究其原因 正文 在对话框中插入文本框是十分常见的需求 通常我 ...
- ecshop常用二次开发修改
修改ecshop支付宝的支付按钮 http://www.68ecshop.com/article-1081.html 去掉ecshop收货人信息页面的电子邮件必填和电话.手机选填一个 http:/ ...
- 调整 ANTD 组件菜单的字体大小。
调整 ANTD 组件菜单的字体大小:经过多次试验,原有字体太小,只有12px,通过下列CSS 强制加大. 1.分组子菜单(标题) .ant-menu-inline > .ant-menu-sub ...
- 一个简单的servlet的demo
javaweb 的应用我们需要参考javaee api 查找servlet接口 javax.servletInterface Servlet All Known Subinterfaces: Ht ...
- SystemErrorCodes
有人把SystemErrorCodes整理成了类,并定义了方法,用于返回消息,他大概不知道FormatMessage的用法,放在这里做参考吧 C# code snipppet class System ...
- .NET LINQ 元素操作
元素操作 元素操作从一个序列返回单个特定元素. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 ElementAt 返回集合中指定索引处的元素. ...
- html+css做的丝带标签
先上效果: HTML: <div class="tag"> <div class="tag-box"> <div class=&q ...