记一次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.下图后,选择创建和配置数 ...
随机推荐
- [Network] HTML、XML和JSON学习汇总
写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个 ...
- 如何设置phpMyAdmin自动登录和取消自动登录
如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直 ...
- BZOJ 3261: 最大异或和
Description 一个序列,支持两个操作. 1.在序列尾加入一个数. 2.询问 [l,r] 中与 x 异或值最大的数. \(n\leqslant 3*10^5\) Sol 可持久化 Trie 树 ...
- poj 2503(字符串)
http://poj.org/problem?id=2503 题意:就是翻译,给你一个字典,然后再查找单词,找得到的就输出单词,找不到的输出eh,用Map水题一个,但这个题有点意思的就是输入的问题 # ...
- java17
1:登录注册案例(理解) 2:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法: ...
- C++库(Google Breakpad)
Google Breakpad是什么? 一个开源的多平台崩溃报告系统. Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,它支持Windows,Linux和Mac和Solari ...
- .NET LINQ Set 运算
Set 运算 LINQ 中的 Set 操作是指根据相同或不同集合(或集)中是否存在等效元素来生成结果集的查询操作. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表 ...
- node05-fs
目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...
- AutoMapper搬运工之自定义映射
回顾 上节说到了AutoMapper的简单使用,对于复杂的Mapping需要强大的自定义,这节我们来看下AutoMapper的自定义Mapping(Projection) 搬运自Git:https:/ ...
- 大部分人都会做错的经典JS闭包面试题
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) ...