我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle通过rman从linux迁移至windows的过程是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

oracle通过rman从linux迁移至windows的过程是什么

这篇文章主要介绍“oracle通过rman从linux迁移至windows的过程是什么”,在日常操作中,相信很多人在oracle通过rman从linux迁移至windows的过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle通过rman从linux迁移至windows的过程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.备份整库

 在linux环境下通过rman备份整库,并将备份集拷贝至windows环境下,此步骤省略。

其中有两个备份集:

o1_mf_s_1042364904_hfoxqb24_.bkp    ----参数文件和控制文件

441724361_0cv22ehf_1_1                       ----数据集

2.windows环境配置

(1)首先配置windows环境,这里需要先安装数据库软件和配置监听,不需要建库。

(2)手动添加数据库实例,本次实验实例名为dbmon:

C:\Users\zace>oradim -NEW -SID dbmon -startmode auto

(3)手动配置一个pfile,路径:C:\app\zace\product\11.2.0\dbhome_2\database\initdbmon.ora,内容如下:

db_name=dbmon

db_unique_name=dbmon

(4)启动数据库至nomount状态;

(5)restore spfile:

RMAN> restore spfile from 'C:\o1_mf_s_1042364904_hfoxqb24_.bkp';

(6)根据spfile重建pfile:

SQL> create pfile from spfile;

编辑pfile,将里面的路径修改为windows环境下的路径,修改完大致如下:

*.audit_file_dest='C:\app\zace\admin\dbmon\adump'

*.compatible='11.2.0.4.0'

*.control_files='C:\app\zace\oradata\dbmon\control01.ora','C:\app\zace\flash_recovery_area\dbmon\control02.ora'

*.db_block_size=8192

*.db_domain=''

*.db_name='dbmon'

*.db_recovery_file_dest='C:\app\zace\flash_recovery_area'

*.db_recovery_file_dest_size=10737418240

*.diagnostic_dest='C:\app\zace'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbmonXDB)'

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sec_case_sensitive_logon=FALSE

*.undo_tablespace='UNDOTBS1'

(7)再根据pfile来重建spfile:

SQL>shutdown immediate;

SQL>create spfile from pfile;

(8)restore controlfile:

将数据库启动至nomount状态:

SQL> startup nomount;

RMAN target /

RMAN> restore controlfile from 'C:\o1_mf_s_1042364904_hfoxqb24_.bkp';

(9)将数据库启动至mount状态,然后执行:

run{

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/tps_audit01.dbf' to 'C:\app\zace\oradata\dbmon\tps_audit01.dbf';

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/newmon01.dbf' to 'C:\app\zace\oradata\dbmon\newmon01.dbf';

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/dbmon01.dbf' to 'C:\app\zace\oradata\dbmon\dbmon01.dbf';

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/undotbs01.dbf' to 'C:\app\zace\oradata\dbmon\undotbs01.dbf';

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/tools01.dbf' to 'C:\app\zace\oradata\dbmon\tools01.dbf';

set newname for datafile '/data/u01/app/oracle/oradata/dbmon/users01.dbf' to 'C:\app\zace\oradata\dbmon\users01.dbf';

set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/temp01.dbf' to 'C:\app\zace\oradata\dbmon\temp01.dbf';

set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/dbmon_temp01.dbf' to 'C:\app\zace\oradata\dbmon\dbmon_temp01.dbf';

set newname for tempfile '/data/u01/app/oracle/oradata/dbmon/dbmon_temp02.dbf' to 'C:\app\zace\oradata\dbmon\dbmon_temp02.dbf';

restore database;

}

需要注意的是,此地方有报错,信息如下:

通道 ORA_DISK_1: 正在读取备份片段 C:\441724361_0CV22EHF_1_1

通道 ORA_DISK_1: ORA-19870: 还原备份片段 C:\441724361_0CV22EHF_1_1 时出错

ORA-19504: 无法创建文件"C:\DATA\U01\APP\ORACLE\ORADATA\DBMON\SYSAUX01.DBF"

ORA-27040: 文件创建错误, 无法创建文件

OSD-04002: 无法打开文件

O/S-Error: (OS 3) 系统找不到指定的路径。

故障转移到上一个备份

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: restore 命令 (在 06/06/2020 13:29:56 上) 失败

RMAN-06026: 有些目标没有找到 - 终止还原

RMAN-06023: 没有找到数据文件4的副本来还原

RMAN-06023: 没有找到数据文件2的副本来还原

RMAN-06023: 没有找到数据文件1的副本来还原

看着报错信息有点奇怪,明明我指定的路径是‘C:\app\zace\oradata\dbmon\’,这里却变成了‘C:\DATA\U01\APP\ORACLE\ORADATA\DBMON\’,仔细查找官网和网友的博客之后,发现了问题,此处只能用如下的方式才能成功:

run{

set newname for datafile 1 to 'C:\app\zace\oradata\dbmon\system01.dbf';

set newname for datafile 2 to 'C:\app\zace\oradata\dbmon\sysaux01.dbf';

set newname for datafile 3 to 'C:\app\zace\oradata\dbmon\undotbs01.dbf';

set newname for datafile 4 to 'C:\app\zace\oradata\dbmon\users01.dbf';

set newname for datafile 5 to 'C:\app\zace\oradata\dbmon\dbmon01.dbf';

set newname for datafile 6 to 'C:\app\zace\oradata\dbmon\tools01.dbf';

set newname for datafile 7 to 'C:\app\zace\oradata\dbmon\newmon01.dbf';

set newname for datafile 8 to 'C:\app\zace\oradata\dbmon\tps_audit01.dbf';

set newname for tempfile 1 to 'C:\app\zace\oradata\dbmon\temp01.dbf';

set newname for tempfile 2 to 'C:\app\zace\oradata\dbmon\dbmon_temp01.dbf';

set newname for tempfile 3 to 'C:\app\zace\oradata\dbmon\dbmon_temp02.dbf';

restore database;

}

执行结果如下:

通道 ORA_DISK_1: 正在读取备份片段 C:\441724361_0CV22EHF_1_1

通道 ORA_DISK_1: 段句柄 = C:\441724361_0CV22EHF_1_1 标记 = TAG20200606T094935

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:45

完成 restore 于 06-6月 -20

自此,介质的restore过程完成。

(10)执行switch操作(修改一下控制文件的记录信息)

RMAN> switch database to copy;

使用目标数据库控制文件替代恢复目录

数据文件 1 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\SYSTEM01.DBF"

数据文件 2 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\SYSAUX01.DBF"

数据文件 3 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\UNDOTBS01.DBF"

数据文件 4 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\USERS01.DBF"

数据文件 5 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\DBMON01.DBF"

数据文件 6 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\TOOLS01.DBF"

数据文件 7 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\NEWMON01.DBF"

数据文件 8 已切换成数据文件副本 "C:\APP\ZACE\ORADATA\DBMON\TPS_AUDIT01.DBF"

(11)修改redo文件:

经过尝试,redo日志最终通过重建控制文件解决:

CREATE CONTROLFILE reuse

   SET DATABASE dbmon

   LOGFILE GROUP 1 ('C:\app\zace\oradata\dbmon\redo01.log') size 200M ,

           GROUP 2 ('C:\app\zace\oradata\dbmon\redo02.log') size 200M,

           GROUP 3 ('C:\app\zace\oradata\dbmon\redo03.log') size 200M

   RESETLOGS

   DATAFILE 'C:\app\zace\oradata\dbmon\system01.dbf',

            'C:\app\zace\oradata\dbmon\sysaux01.dbf' ,

            'C:\app\zace\oradata\dbmon\undotbs01.dbf' ,

            'C:\app\zace\oradata\dbmon\users01.dbf' ,

            'C:\app\zace\oradata\dbmon\dbmon01.dbf' ,

            'C:\app\zace\oradata\dbmon\tools01.dbf',

'C:\app\zace\oradata\dbmon\newmon01.dbf',

'C:\app\zace\oradata\dbmon\tps_audit01.dbf'

   MAXLOGFILES 50

   MAXLOGMEMBERS 3

   MAXLOGHISTORY 400

   MAXDATAFILES 200

   MAXINSTANCES 6

   NOARCHIVELOG;

创建完成后,open数据库:

SQL> alter database open resetlogs;

(12)重建temp文件:

create temporary tablespace TEMP2

TEMPFILE 'C:\app\zace\oradata\dbmon\temp02.dbf'

SIZE 500M

AUTOEXTEND ON

NEXT 1M MAXSIZE 32000M

EXTENT MANAGEMENT LOCAL;

修改默认temp表空间:

alter database default temporary tablespace temp2;

alter user DBMON temporary tablespace temp2;

自此,数据库恢复完成。

到此,关于“oracle通过rman从linux迁移至windows的过程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle通过rman从linux迁移至windows的过程是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HBase的数据迁移的过程是什么

HBase的数据迁移过程通常包括以下几个步骤:准备目标环境:首先需要准备好目标HBase集群,包括配置好HBase服务、准备好目标表的结构等。数据导出:将源HBase集群中的数据导出到一个中间数据存储中,通常可以选择使用Hadoop的Map
HBase的数据迁移的过程是什么
2024-03-11

MongoDB数据块的迁移过程是什么

MongoDB的数据块迁移是指在数据分片集合中,当数据块需要在不同的分片之间迁移时的过程。数据块迁移通常发生在数据分片的rebalance过程中,以确保数据在各个分片之间分布均匀,避免热点数据集中在某个分片上导致负载不均衡的情况。数据块迁
MongoDB数据块的迁移过程是什么
2024-04-19

数据库要从 Oracle 换成 MySQL,以前报表都是存储过程写的,怎么迁移呢?

存储过程没法移植,差不多都要重新了。既然重写,还不如从根本上解决移植问题。 原来存储过程是“不得不用”,因为前端的报表工具不具备复杂计算能力,而为报表准备数据的逻辑又很复杂,用存储过程方便些。 但存储过程的缺点实在太多,除了不好调试,没法扩展,无法移植,还容易
数据库要从 Oracle 换成 MySQL,以前报表都是存储过程写的,怎么迁移呢?
2014-05-14

pip在Linux、Mac和Windows系统上的安装过程是什么

这篇文章主要讲解了“ pip在Linux、Mac和Windows系统上的安装过程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ pip在Linux、Mac和Windows系统上的安装过
2023-06-02

Linux命令通过SSH在远程运行的方法是什么

本篇文章为大家展示了Linux命令通过SSH在远程运行的方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们有时可能需要在远程机器上运行一些命令。如果只是偶尔进行的操作,要实现这个目的,可以
2023-06-28

编程热搜

目录