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. Lua 学习笔记(八)错误(error)

    Lua所遇到的任何未预期条件都会引发一个错误.因此在发生错误时不能简单的崩溃或着退出,而是结束当前程序块并返回应用程序.当错误引发时进行恰当的处理是最合适的,然而这个阶段伴随着错误的捕获.错误的处理. ...

  2. Yii2的深入学习--事件Event

    我们先来看下事件在 Yii2 中的使用,如下内容摘自 Yii2中文文档 事件可以将自定义代码“注入”到现有代码中的特定执行点.附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行.例如, ...

  3. C# 在Word文档中生成条形码

    C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称.制造商.类别.价格等.目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书 ...

  4. 用jekyll制作高大上的网站(二)——实际应用

    最近公司要制作个文档库,直接就可以将jekyll应用到实际中. 模版使用了Jekyll Clean,这么模版相对内部简单一点,学习成本不会很大,而复杂的Minimal Mistakes就当作参考. 模 ...

  5. Hammer.js分析(一)——基础结构

    从github上面将源码下载下来,会发现有个src文件夹.当前版本是2.0.6. 总的结构如下: 一.常量 这里将常量全部列在一起是可以在对比源码的时候,更方便的查看相应内容. var VENDOR_ ...

  6. 《图解Spark:核心技术与案例实战》介绍及书附资源

    本书中所使用到的测试数据.代码和安装包放在百度盘提供 下载 ,地址为https://pan.baidu.com/s/1o8ydtKA 密码:imaa 另外在百度盘提供本书附录  下载 ,地址为http ...

  7. php插入式排序的两种写法。

    百度了下插入式排序,百度百科中php版本的插入式排序如下: function insert_sort($arr) { // 将$arr升序排列 $count = count($arr); for ($ ...

  8. react入门(4)

    首先还是来回顾一下前三篇讲的内容 react入门(1): jsx,组件,css写法 react入门(2):事件,this.props.children,props,...other react入门(3 ...

  9. Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】

    原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...

  10. JAVA字符串格式化-String.format()的使用

    String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. form ...