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. SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

    sql2012我重启了下sql服务,然后自增列Id居然一下子跳了1000,怎么回事啊?   如果第一条数据是1,我重启服务,再添加就是1001,如果继续添加不重启服务的话就是1002,如果再次重启的话 ...

  2. DOM 节点的克隆与删除

    无奈的开头 关于DOM节点操作,如果仅仅是根据标准API来操作,那是最简单不过的了.但是现实中却哪有这么容易的问题让我们解决,其实不仅仅是节点的克隆与删除,节点的添加也是如此,而且添加节点需要考虑的情 ...

  3. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...

  4. Spring学习笔记--环境搭建和初步理解IOC

    Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hiberna ...

  5. 简析Geoserver中获取图层列表以及各图层描述信息的三种方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层 ...

  6. Android Toast cancel和show 不踩中不会知道的坑

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

  7. Web App 向上滑动动态加载数据 2015-06-11 09:36 20人阅读 评论(0) 收藏

    好久没有写博客了 - - ,个人原因 个人原因..  宣传一下...自己的.NET群:252713569 欢迎各位大神加入 嗯..最近在公司开发微信平台的东西..需要做一个WebAPP(PS:其实就是 ...

  8. Delphi TListView刷新闪烁问题

    应用场景 TListView可以动态选择列并显示而且列宽度也要保存,加载数据ListView会出现N次闪烁 步骤一: 选择要显示列: 点击"确定"按钮,显示下图 步骤二: 界面会出 ...

  9. nodejs学习笔记一——nodejs安装

    a.nodejs安装 nodejs的安装没有什么说的默认安装即可.安装包官网下载即可:nodejs官网 本人用的是window的安装包node-v4.2.6-x64.msi 安装完成后打开命令行查看使 ...

  10. Java进击C#——语法之知识点的改进

    本章简言 上一章我们讲到关于面向对象思想上C#和JAVA之差别.笔者分别从面向对象的三大特性入手.而本章主要讲一些C#改进的知识点.在.NET Framework 2.0之后出现很多新的知识点.这些知 ...