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. 在IE11下设置SharePoint Server 2013却遇到“需要 Internet Explorer 才能使用此功能。”的解决办法

    就在昨天顺利升级到Windows 8.1 随之IE也升级到了IE11,但是当打开IE11设置SharePoint Server 2013的时候遇到了一些小情况: Figure 1使用Windows 8 ...

  2. Oracle 数据库重放(Database Replay)功能演示

    我们可以捕获生产环境的工作量,在测试环境上重放,从而在不影响生产环境的前提下做一些改动测试. 捕获:需要Oracle版本为10.2.0.4或更高. 重放:需要Oracle版本为11g Release ...

  3. virtual 修饰符与继承对析构函数的影响(C++)

    以前,知道了虚函数表的低效性之后,一直尽量避免使用之.所以,在最近的工程中,所有的析构函数都不是虚函数.今天趁着还书的机会到图书馆,还书之后在 TP 分类下闲逛,偶然读到一本游戏编程书,里面说建议将存 ...

  4. 【JUC】JUC线程池框架综述

    一.前言 在分析完了JUC的锁和集合框架后,下面进入JUC线程池框架的分析,下面给出JUC线程池的总体框架,之后再逐一进行分析. 二.JUC线程池框架图 说明:从上图可知,JUC线程池框架中的其他接口 ...

  5. 【Java基础】并发

    Num1:同步访问共享的可变数据 关键字Synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块.. 同步不仅仅理解为互斥的方式,如果没有同步,一个线程的变化就不能 ...

  6. 关于C#静态变量初始化问题

    关于这个静态变量,平时自己没有太认真的去认识.最近调项目的bug,让我重新认识了静态变量的特点. 其实,我们一直都在说:静态变量只在类第一次初始化的时候进行初始化,以后都不初始化. 很简单的一句话,但 ...

  7. [Java IO]03_字符流

    Java程序中,一个字符等于两个字节. Reader 和 Writer 两个就是专门用于操作字符流的类. Writer Writer是一个字符流的抽象类.  它的定义如下: public abstra ...

  8. 【原创】kafka server源代码分析(二)

    十四.AbstractFetcherManager.scala 该scala定义了两个case类和一个抽象类.两个case类很简单: 1. BrokerAndFectherId:封装了一个broker ...

  9. ActiveX(二)Js 监听 ActiveX中的事件

    在上一篇随笔:ActiveX(一)第一个简单的Demo 中,已经可以实现 js 单向调用 ActiveX 中的方法,在很多情况下ActiveX中的方法的执行时相对耗时.耗性能的.在这样的情况下.Act ...

  10. Windows Server 2008 R2 安装 media Service 部分更新没有安装 KB963697

    1.下载安装包 Windows6.1-KB963697-x64.msu 2.安装过程失败,提示未安装更新 我是阿里云的服务器,一直出现下面提示 经过反复研究,确定系统问题,重新恢复了初始系统,再进行安 ...