1:环境准备

在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件、控制文件目录、联机重做日志文件所在目录都要注意)。如果不一致相当麻烦,需要修改spfile。

2:RMAN做冷备份

使用cold_backup.sh将数据库备份到/u04/migration目录下面

mkdir -p /u04/migration
mkdir -p /u04/migration/log

cat /u04/migration/cold_backup.sh

export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

export ORACLE_SID=SCM2

export CATALOG=NOCATALOG

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

rman target / log=/u04/migration/log/rman_coldbackup_db_EELSCM2_20150510.log <<EOF

sql 'alter system checkpoint';

shutdown immediate;

startup mount;

sql  "create pfile=''/u04/migration/pfile`date +%d%m%Y`.ora'' from spfile";

RUN {

ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/u04/migration/%U';

ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/u04/migration/%U';

ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/u04/migration/%U';

BACKUP AS COMPRESSED BACKUPSET DATABASE;

BACKUP CURRENT CONTROLFILE FORMAT '/u04/migration/cntrl_%s_%p_%t';

RELEASE CHANNEL disk1;

RELEASE CHANNEL disk2;

RELEASE CHANNEL disk3;

}

 

3:RMAN做还原操作

 

1:首先将备份文件拷贝到目标服务器上,如下所示

 

[oracle@DB-Server migration]$ ls -lrt

total 25205332

-rw-r----- 1 oracle oinstall 1378779136 May 10 18:56 4eq6j632_1_1

-rw-r----- 1 oracle oinstall 1971355648 May 10 19:33 4fq6j6dr_1_1

-rw-r----- 1 oracle oinstall  993918976 May 10 19:52 4jq6j6v2_1_1

-rw-r----- 1 oracle oinstall    9338880 May 10 19:53 4mq6j79h_1_1

-rw-r----- 1 oracle oinstall 2445590528 May 10 20:39 4bq6j5gu_1_1

-rw-r----- 1 oracle oinstall 1682866176 May 10 21:12 4hq6j6rj_1_1

-rw-r----- 1 oracle oinstall 2082570240 May 10 21:53 4gq6j6ea_1_1

-rw-r----- 1 oracle oinstall 1440210944 May 10 22:22 4dq6j629_1_1

-rw-r----- 1 oracle oinstall   21495808 May 10 22:22 cntrl_16535_1_879337140

drwxr-xr-x 2 oracle oinstall       4096 May 11 00:20 log

-rw-r----- 1 oracle oinstall 6072287232 May 11 00:20 4aq6j5gu_1_1

-rwxr-xr-x 1 oracle oinstall        814 May 11 01:10 cold_backup.sh

-rw-r----- 1 oracle oinstall 2605039616 May 11 01:10 4cq6j5gu_1_1

-rw-r----- 1 oracle oinstall 1613660160 May 11 01:41 4kq6j771_1_1

-rw-r----- 1 oracle oinstall 1230159872 May 11 02:05 4iq6j6tb_1_1

-rw-r----- 1 oracle oinstall 2237693952 May 11 02:48 4lq6j784_1_1

-rw-r--r-- 1 oracle oinstall       1542 May 11 10:03 pfile20150510.ora

-rw-r--r-- 1 oracle oinstall        195 May 11 11:28 restore.sh

[oracle@getlnx14 migration]$ 

 

2:给oracle账号对应目录授予相关权限。

2.1 由于一些数据文件位于/u02、 /u03、 /u04目录下面. 在root目录下面创建这几个目录,并授权给ORACLE用户。

mkdir /u02

mkdir /u03

mkdir /u04

chown -R oracle:oinstall /u02 /u03 /u04

2.2 由于安装时选择了“仅安装数据库软件”,所以需要按照源服务器的目录设置下面路径

[oracle@DB-Server oracle]$ ls

oraInventory  product

[oracle@DB-Server oracle]$ mkdir admin

[oracle@DB-Server oracle]$ cd admin/

[oracle@DB-Server admin]$ mkdir SCM2

[oracle@DB-Server admin]$ cd SCM2/

[oracle@DB-Server SCM2]$ ls

[oracle@DB-Server SCM2]$ mkdir udump

[oracle@DB-Server SCM2]$ mkdir adump

[oracle@DB-Server SCM2]$ mkdir cdump

[oracle@DB-Server SCM2]$ mkdir dpdump

[oracle@DB-Server SCM2]$ mkdir pfile

[oracle@DB-Server SCM2]$ mkdir bdump

 

案例遇到的错误1:

RMAN> @restore.sh

 

RMAN> run

2> {

3> startup pfile='/u04/migration/pfile20150510.ora' nomount;

4> restore controlfile from 'cntrl_16535_1_879337140';

5> alter database mount;

6> restore database;

7> alter database open resetlogs;

8> }

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

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

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

RMAN-03002: failure of startup command at 05/12/2015 15:48:00

RMAN-04014: startup failed: ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated

ORA-07286: sksagdi: cannot obtain device information.

Linux-x86_64 Error: 2: No such file or directory

 

RMAN> 

RMAN> **end-of-file**

在源数据库查看参数LOG_ARCHIVE_DEST_1,发现联机重做日志的归档日志位于/u04/backup/archive 。而目标服务器没有/u04/backup/archive这个目录,需要创建对应的目录。

SQL> show parameter LOG_ARCHIVE_DEST_1

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_1                   string      LOCATION=/u04/backup/archive

log_archive_dest_10                  string

SQL> 

 

案例遇到的错误2:

出现上面错误是因为安装时选择了“仅安装数据库软件”,对应的background_dump_dest、audit_file_dest目录都没有,查看pfile文件,创建对应的目录问题解决

[oracle@DB-Server oracle]$ ls

oraInventory  product

[oracle@DB-Server oracle]$ mkdir admin

[oracle@DB-Server oracle]$ cd admin/

[oracle@DB-Server admin]$ mkdir SCM2

[oracle@DB-Server admin]$ cd SCM2/

[oracle@DB-Server SCM2]$ ls

[oracle@DB-Server SCM2]$ mkdir udump

[oracle@DB-Server SCM2]$ mkdir adump

[oracle@DB-Server SCM2]$ mkdir cdump

[oracle@DB-Server SCM2]$ mkdir dpdump

[oracle@DB-Server SCM2]$ mkdir pfile

[oracle@DB-Server SCM2]$ mkdir bdump

案例遇到的错误3:

RMAN> @restore.sh

 

RMAN> run

2> {

3> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile20150510.ora' nomount;

4> restore controlfile from 'cntrl_16535_1_879337140';

5> alter database mount;

6> restore database;

7> alter database open resetlogs;

8> }

Oracle instance started

 

Total System Global Area   12884901888 bytes

 

Fixed Size                     2105920 bytes

Variable Size               9328135616 bytes

Database Buffers            3506438144 bytes

Redo Buffers                  48222208 bytes

 

Starting restore at 12-MAY-15

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=987 devtype=DISK

 

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

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

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

RMAN-03002: failure of restore command at 05/12/2015 15:59:27

RMAN-06172: no autobackup found or specified handle is not a valid copy or piece

 

RMAN> 

RMAN> **end-of-file**

 

RMAN> 

出现这个错误是因为控制文件路径由于编辑时,不小心将路径给忽略了,实际应该为:restore controlfile from '/u04/migration/cntrl_16535_1_879337140';

run

{

startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile20150510.ora' nomount;

restore controlfile from '/u04/migration/cntrl_16535_1_879337140';

alter database mount;

restore database;

alter database open resetlogs;

}

还原过后,对数据库参数进行设置,例如从pfile文件创建spfile。另外,视服务器配置等,调整SGA的一些参数!

参考资料:

http://blog.itpub.net/11411056/viewspace-733456/

http://blog.csdn.net/edwzhang/article/details/8933372

RMAN冷备份异机还原的更多相关文章

  1. 利用rman进行异机还原(目录相同)

    利用rman进行异机还原(目录相同) 源始库:192.168.201.2 目标库:192.168.201.3 --192.168.201.2 --rman [oracle@db01 ~]$ rman ...

  2. 基于RMAN的异机数据库克隆(rman duplicate)

    对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman d ...

  3. 使用rman备份异机恢复数据库

    一.RMAN备份源库注意点: 最好保留rman备份日志 $rman target / log=backup.log RMAN>run { allocate channel t1 type dis ...

  4. RMAN数据库异机迁移步骤

    --RMAN数据库异机迁移步骤----------------------------2013/09/28 测试环境:AIX+ora11g   一. source数据库准备.   1.获取数据文件编号 ...

  5. Oracle备份恢复之冷备份恢复与异机还原

    (同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...

  6. Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复

    本文记录在Windows Server 2012 R2上安装Oracle Enterprise Linux 6.4以及使用RMAN进行进行异机恢复的过程. Windows服务器增加Hyper-V功能 ...

  7. RMAN - 备份异机恢复

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  8. RMAN 备份异机恢复 并创建新DBID

    测试平台信息: Oracle:11gR2 操作系统:Redhat 5.5 Target DB:dave   几点说明: (1)RMAN 异机恢复的时候,db_name必须相同. 如果说要想改成其他的实 ...

  9. Oracle之使用rman进行异机恢复测试记录

    本次测试目的是从生产数据库导出rman备份然后在测试数据库恢复 1,拷贝备份至相应目录 2,进入rman rman target \ 3,关闭数据库 shutdown 4,以nomount模式启动数据 ...

随机推荐

  1. MVC, MVP, MVVM比较以及区别(上)

    MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式.以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一下 ...

  2. geotrellis使用(十一)实现空间数据库栅格化以及根据属性字段进行赋值

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 安装空间数据库 空间数据库栅格化 根据属性字段进行赋 ...

  3. 【JUC】JDK1.8源码分析之ArrayBlockingQueue(三)

    一.前言 在完成Map下的并发集合后,现在来分析ArrayBlockingQueue,ArrayBlockingQueue可以用作一个阻塞型队列,支持多任务并发操作,有了之前看源码的积累,再看Arra ...

  4. Sql Server函数全解(四)日期和时间函数

      日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...

  5. ActiveX(五)更好的“ActiveX”?

    前文中四篇随笔.已经可以实现 ActiveX 与 Js 无缝交互. 也就是说借用ActiveX实现更加强大的功能已经完全不是问题.但是.ActiveX 本身还有一个局限性——浏览器兼容问题.如此强大的 ...

  6. Web 上传图片加水印

    上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...

  7. 使用nuget打包类库并发布

    前言 NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库.今天的目的就是记录一下如何打包一个类库,并发布到官网.在开始之前需要在www.nuget. ...

  8. 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...

  9. PHP中return 和 exit 、break和contiue 区别与用法

    先说一下exit函数的用法. 作用: 输出一则消息并且终止当前脚本. 如果一段文本中包括多个以 结束的脚本,则exit退出当前所在脚本. 比如一篇php文本包括一下代码,则输出为world. < ...

  10. 14、ASP.NET MVC入门到精通——Ajax

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Unobtrusive Ajax使用方式(非入侵式) 非入侵式,通俗来讲:就是将嵌入在Html中的JavaScript全部取出来,放在单独的 ...