我是靠谱客的博主 甜美白昼,最近开发中收集的这篇文章主要介绍使用RMAN进行数据库全库备份 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.在rman下备份数据库的相关操作:

1.可以在rman下执行对DB的关闭、开启、执行从非归档到归档的转换以及数据库的打开
RMAN> shutdown immediate;
RMAN> startup mount;
RMAN> run(sql 'alter database noarchivelog';}
RMAN> run{sql 'alter database open';}

二.当数据库在非归档模式下的备份与恢复如下:

1.RMAN> backup database format 'e:rmanbackup%U.bak';执行对DB的全备
启动 backup 于 04-12月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=E:ORACLEORADATAOICSYSTEM01.DBF
输入数据文件 fno=00002 name=E:ORACLEORADATAOICUNDOTBS01.DBF
输入数据文件 fno=00005 name=E:ORACLEORADATAOICEXAMPLE01.DBF
输入数据文件 fno=00010 name=E:ORACLEORADATAOICXDB01.DBF
输入数据文件 fno=00006 name=E:ORACLEORADATAOICINDX01.DBF
输入数据文件 fno=00009 name=E:ORACLEORADATAOICUSERS01.DBF
输入数据文件 fno=00003 name=E:ORACLEORADATAOICCWMLITE01.DBF
输入数据文件 fno=00004 name=E:ORACLEORADATAOICDRSYS01.DBF
输入数据文件 fno=00007 name=E:ORACLEORADATAOICODM01.DBF
输入数据文件 fno=00008 name=E:ORACLEORADATAOICTOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 04-12月-07
通道 ORA_DISK_1: 已完成段 1 于 04-12月-07
段 handle=E:RMANBACKUP1J2P2D8_1_1.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:17
完成 backup 于 04-12月-07

2.然后删除掉INDX01.DBF文件,启动数据库这时会提示错误,信息如下:

RMAN> startup执行完成后DB已处于mount状态下
Oracle 例程已启动
数据库已加载
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 12/04/2007 15:56:43
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:ORACLEORADATAOICINDX01.DBF'

3.执行restore database命令

RMAN> restore database;执行该语句是对整个数据库进行修复
启动 restore 于 04-12月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
正在略过数据文件 1; 已恢复到文件 E:ORACLEORADATAOICSYSTEM01.DBF
正在略过数据文件 2; 已恢复到文件 E:ORACLEORADATAOICUNDOTBS01.DBF
正在略过数据文件 3; 已恢复到文件 E:ORACLEORADATAOICCWMLITE01.DBF
正在略过数据文件 4; 已恢复到文件 E:ORACLEORADATAOICDRSYS01.DBF
正在略过数据文件 5; 已恢复到文件 E:ORACLEORADATAOICEXAMPLE01.DBF
正在略过数据文件 7; 已恢复到文件 E:ORACLEORADATAOICODM01.DBF
正在略过数据文件 8; 已恢复到文件 E:ORACLEORADATAOICTOOLS01.DBF
正在略过数据文件 9; 已恢复到文件 E:ORACLEORADATAOICUSERS01.DBF
正在略过数据文件 10; 已恢复到文件 E:ORACLEORADATAOICXDB01.DBF
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00006恢复到E:ORACLEORADATAOICINDX01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=E:RMANBACKUP1J2P2D8_1_1.BAK tag=TAG20071204T153712 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 04-12月-07

4.执行recover database命令

RMAN> recover database;
启动 recover 于 04-12月-07
使用通道 ORA_DISK_1
正在开始介质的恢复
完成介质的恢复
完成 recover 于 04-12月-07

5.启动DB
RMAN> run {sql 'alter database open';}


三.在非归档模式下要注意的几点:

1.DB应该是在mount状态下,否则会出现如下的错误信息

RMAN> backup database format 'e:';
启动 backup 于 04-12月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/04/2007 15:11:32
ORA-19602: 无法按 NOARCHIVELOG 模式备份或复制活动文件


四.在归档模式下的整个数据库的备份与恢复

1.RMAN> backup database format 'e:rmanbackup%u.bak';在执行时DB为mount状态
启动 backup 于 04-12月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=E:ORACLEORADATAOICSYSTEM01.DBF
输入数据文件 fno=00002 name=E:ORACLEORADATAOICUNDOTBS01.DBF
输入数据文件 fno=00005 name=E:ORACLEORADATAOICEXAMPLE01.DBF
输入数据文件 fno=00010 name=E:ORACLEORADATAOICXDB01.DBF
输入数据文件 fno=00006 name=E:ORACLEORADATAOICINDX01.DBF
输入数据文件 fno=00009 name=E:ORACLEORADATAOICUSERS01.DBF
输入数据文件 fno=00003 name=E:ORACLEORADATAOICCWMLITE01.DBF
输入数据文件 fno=00004 name=E:ORACLEORADATAOICDRSYS01.DBF
输入数据文件 fno=00007 name=E:ORACLEORADATAOICODM01.DBF
输入数据文件 fno=00008 name=E:ORACLEORADATAOICTOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 04-12月-07
通道 ORA_DISK_1: 已完成段 1 于 04-12月-07
段 handle=E:RMANBACKUP2J2P7EN.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:57
完成 backup 于 04-12月-07

2.删除所有的数据文件

3.启动DB到mount状态

RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
系统全局区域总计     135338868 字节
Fixed Size                      453492 字节
Variable Size                109051904 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节

4.执行restore database;执行完成后可以看到删除的数据文件又生成了

RMAN> restore database;
启动 restore 于 04-12月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEORADATAOICSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEORADATAOICUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEORADATAOICCWMLITE01.DBF
正将数据文件00004恢复到E:ORACLEORADATAOICDRSYS01.DBF
正将数据文件00005恢复到E:ORACLEORADATAOICEXAMPLE01.DBF
正将数据文件00006恢复到E:ORACLEORADATAOICINDX01.DBF
正将数据文件00007恢复到E:ORACLEORADATAOICODM01.DBF
正将数据文件00008恢复到E:ORACLEORADATAOICTOOLS01.DBF
正将数据文件00009恢复到E:ORACLEORADATAOICUSERS01.DBF
正将数据文件00010恢复到E:ORACLEORADATAOICXDB01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=E:RMANBACKUP2J2P7EN.BAK tag=TAG20071204T170319 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 04-12月-07

5.recover database

RMAN> recover database;
启动 recover 于 04-12月-07
使用通道 ORA_DISK_1
正在开始介质的恢复
完成介质的恢复
完成 recover 于 04-12月-07

6.打开DB

RMAN> run{sql 'alter database open';}
sql 语句: alter database open


五.在归档模式下对表空间一级的恢复(在做恢复前已对整个数据库进行了全备)

1.关闭DB,删除user01数据文件

2.执行表空间的恢复,执行完毕后可以在E:oracleoradata下看到恢复的数据文件

RMAN> run{
2> allocate channel d1 type disk;
3> set newname for datafile 'E:oracleoradataOICUSERS01.DBF' to 'E:oracleoradataUSERS01.DBF';
4> restore tablespace users;
5> switch datafile 9;
6> recover tablespace users;
7> alter database open;
8> release channel d1;
}
分配的通道: d1
通道 d1: sid=13 devtype=DISK
正在执行命令: SET NEWNAME
启动 restore 于 04-12月-07
通道 d1: 正在开始恢复数据文件备份集
通道 d1: 正在指定从备份集恢复的数据文件
正将数据文件00009恢复到E:ORACLEORADATAUSERS01.DBF
通道 d1: 已恢复备份段 1
段 handle=E:RMANBACKUP2J2P7EN.BAK tag=TAG20071204T170319 params=NULL
通道 d1: 恢复完成
完成 restore 于 04-12月-07
数据文件 9 已转换成数据文件副本
输入数据文件副本 recid=33 stamp=640459891 文件名=E:ORACLEORADATAUSERS01.DBF
启动 recover 于 04-12月-07
正在开始介质的恢复
完成介质的恢复
完成 recover 于 04-12月-07
数据库已打开
释放的通道: d1

最后

以上就是甜美白昼为你收集整理的使用RMAN进行数据库全库备份 的全部内容,希望文章能够帮你解决使用RMAN进行数据库全库备份 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部