通过RMAN备份恢复数据库到其他服务器!!!

1、记录一下源数据库的DBID

SQL> select DBID from v$database;

      DBID
----------
1292118315
[oracle@linux flash_recovery_area]$ rman target /

恢复管理器: Release 10.2.0.4.0 - Production on 星期三 10月 12 14:28:10 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到目标数据库: ORCL (DBID=1292118315)


2、在源数据库端执行一次备份(包含数据文件、控制文件、归档日志文件)

RMAN> backup database include current controlfile plus archivelog;


启动 backup 于 12-10月-11
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=143 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =2 记录 ID=1 时间戳=764337959
输入存档日志线程 =1 序列 =3 记录 ID=2 时间戳=764338050
输入存档日志线程 =1 序列 =4 记录 ID=3 时间戳=764338051
输入存档日志线程 =1 序列 =5 记录 ID=4 时间戳=764338057
输入存档日志线程 =1 序列 =6 记录 ID=5 时间戳=764338066
输入存档日志线程 =1 序列 =7 记录 ID=6 时间戳=764346610
通道 ORA_DISK_1: 正在启动段 1 于 12-10月-11
通道 ORA_DISK_1: 已完成段 1 于 12-10月-11
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_annnn_TAG20111012T143011_79bdzo31_.bkp 标记=TAG20111012T143011 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 12-10月-11

启动 backup 于 12-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/tb1.dbf
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 12-10月-11
通道 ORA_DISK_1: 已完成段 1 于 12-10月-11
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_nnndf_TAG20111012T143014_79bdzph0_.bkp 标记=TAG20111012T143014 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 12-10月-11
通道 ORA_DISK_1: 已完成段 1 于 12-10月-11
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_ncsnf_TAG20111012T143014_79bf0v75_.bkp 标记=TAG20111012T143014 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 12-10月-11

启动 backup 于 12-10月-11
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =8 记录 ID=7 时间戳=764346652
通道 ORA_DISK_1: 正在启动段 1 于 12-10月-11
通道 ORA_DISK_1: 已完成段 1 于 12-10月-11
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_annnn_TAG20111012T143052_79bf0xqr_.bkp 标记=TAG20111012T143052 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 12-10月-11


3、在目标端配置初始化参数文件,可以根据源数据库的参数文件来修改。

这里由于环境限制,我就在一台机器上面做实验了,在实际环境中要求源数据库和目标数据库版本一样。我这里当然满足要求了。

为后面的实验能够继续,在这里我删除了源数据库相关的所有文件,参数文件除外。在实际环境中还要copy备份集到目标数据库对应的目录下面(这里就是flash_recovery_area下面的东东)。

SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> ! rm -rf /u01/app/oracle/oradata/orcl


4、还原控制文件(这里需要创建相应的控制文件目录)

[oracle@linux oracle]$ rman target /

恢复管理器: Release 10.2.0.4.0 - Production on 星期三 10月 12 14:51:43 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> set DBID=1292118315;

正在执行命令: SET DBID

RMAN> startup nomount;

Oracle 实例已启动

系统全局区域总计     167772160 字节

Fixed Size                     1266392 字节
Variable Size                 71306536 字节
Database Buffers              92274688 字节
Redo Buffers                   2924544 字节

RMAN> restore controlfile from autobackup;

启动 restore 于 12-10月-11
使用通道 ORA_DISK_1

恢复区目标: /u01/app/oracle/flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_10_12/o1_mf_s_764347410_79bfrlqs_.bkp
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
输出文件名=/u01/app/oracle/oradata/orcl/control01.ctl
输出文件名=/u01/app/oracle/oradata/orcl/control02.ctl
输出文件名=/u01/app/oracle/oradata/orcl/control03.ctl
完成 restore 于 12-10月-11


5、还原数据文件(这里需要创建相应的数据文件目录)

RMAN> alter database mount;

数据库已装载
释放的通道: ORA_DISK_1

RMAN> restore database;

启动 restore 于 12-10月-11
启动 implicit crosscheck backup 于 12-10月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 4 对象
完成 implicit crosscheck backup 于 12-10月-11

启动 implicit crosscheck copy 于 12-10月-11
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 12-10月-11

搜索恢复区中的所有文件
正在编制文件目录...
目录编制完毕

已列入目录的文件的列表
=======================
文件名: /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_10_12/o1_mf_s_764347410_79bfrlqs_.bkp

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00001还原到/u01/app/oracle/oradata/orcl/system01.dbf
正将数据文件00002还原到/u01/app/oracle/oradata/orcl/undotbs01.dbf
正将数据文件00003还原到/u01/app/oracle/oradata/orcl/sysaux01.dbf
正将数据文件00004还原到/u01/app/oracle/oradata/orcl/users01.dbf
正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf
通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_nnndf_TAG20111012T144251_79bfqccl_.bkp
通道 ORA_DISK_1: 已还原备份片段 1
段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_12/o1_mf_nnndf_TAG20111012T144251_79bfqccl_.bkp 标记 = TAG20111012T144251
通道 ORA_DISK_1: 还原完成, 用时: 00:00:25
完成 restore 于 12-10月-11


6、不完全恢复数据库(因为online redo logfile是没有的。)

SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 474700 (在 10/12/2011 14:43:28 生成) 对于线程 1 是必需的
ORA-00289: 建议: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_12/o1_mf_1_11_%u_.arc
ORA-00280: 更改 474700 (用于线程 1) 在序列 #11 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。


7、打开数据库

SQL> alter database open resetlogs;

数据库已更改。

SQL> select status from v$instance;

STATUS
------------
OPEN

你可能感兴趣的:(oracle,数据库,服务器,database,数据库相关,disk)