一.RMAN完全恢复的相关概念

1.在RMAN完全恢复中主要使用两个命令,一个是restore,另一个是recover。

2.可以在三个级别恢复,数据库,表空间,数据文件。

3.RMAN中应对于各种情况,可以使用用户管理恢复命令在帮助解决问题。

二.RMAN完全恢复实验

(一)用RMAN做数据文件app1_01.dbf的三个备份,一个是完整备份,一个是0级备份,一个是1级备份。

1.进行数据文件的完整备份,命令如下,

RMAN> backup datafile  '/u01/oradata/wilson/app1_01.dbf' format '/u01/backup/app1_%U';

2.进行0级备份,命令如下,

RMAN> backup incremental level 0  datafile '/u01/oradata/wilson/app1_01.dbf'  format '/u01/backup/all_0_%U';

3.进行1级备份,命令如下,

RMAN> backup incremental level 1  datafile '/u01/oradata/wilson/app1_01.dbf'  format '/u01/backup/all_1_%U';

4.关闭数据库,再删除数据文件app1_01.dbf,

[oracle@oracle11g wilson]$ rm   -f    app1_01.dbf

5.将数据库置于mount状态,RMAN连接上,还原和恢复数据文件,打开数据库,

RMAN> restore   datafile  ‘/u01/oradata/wilson/app1_01.dbf’;

Starting restore at 01-SEP-13

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00012 to /u01/oradata/wilson/app1_01.dbf

channel ORA_DISK_1: reading from backup piece /u01/backup/all_0_04oiptg4_1_1

channel ORA_DISK_1: piece handle=/u01/backup/all_0_04oiptg4_1_1 tag=TAG20130901T230228

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:08

Finished restore at 01-SEP-13

通过restore命令可以看到数据库在还原时是优先使用0级备份的。

RMAN> recover   datafile   ‘/u01/oradata/wilson/app1_01.dbf’;

RMAN> alter database open;

database opened

(二)在(一)中的实验中,还原恢复的数据文件最后还是在原来的目录中,如果是磁盘损坏,不能再放到原来的目录中了,怎么办?

1.关闭数据库,删除一个数据文件,然后把它还原恢复到另一个目录下,

[oracle@oracle11g wilson]$ rm -f  app1_01.dbf (删除app1_01.dbf数据文件)

2.打开数据库进入mount状态,通过查看视图v$recover_file和v$datafile可以确定是哪个文件出了问题,

SQL> select * from v$recover_file;

FILE# ONLINE  ONLINE_ ERROR                 CHANGE# TIME

---------- ------- ------- ------------------ ---------- ---------

12 ONLINE  ONLINE  FILE NOT FOUND              0

SQL> select file#,name from v$datafile;

FILE# NAME

---------- -----------------------------------

1 /u01/oradata/wilson/system01.dbf

2 /u01/oradata/wilson/sysaux01.dbf

3 /u01/oradata/wilson/undotbs01.dbf

4 /u01/oradata/wilson/users01.dbf

5 /u01/oradata/wilson/example01.dbf

6 /u01/oradata/wilson/app2_01.dbf

7 /u01/oradata/wilson/app3_01.dbf

8 /u01/oradata/wilson/smallundo1.dbf

12 /u01/oradata/wilson/app1_01.dbf

9 rows selected.

可以看到是12号文件。

3.RMAN连接上,还原恢复数据文件,

RMAN> run{

2> set newname for datafile 12 to '/u01/oradata/app1_01.dbf';(把12号文件恢复到另一个目录)

3> restore datafile 12;

4> switch datafile 12;(使用这个命令会更新控制文件)

5> recover datafile 12;

6> alter database open;}

所以可以在/u01/oradata中看到这个文件,

[oracle@oracle11g oradata]$ ll

total 102540

-rw-r----- 1 oracle oinstall 104865792 Sep  1 23:51 app1_01.dbf

把数据文件还原恢复到了另一个目录中。

(三)恢复表空间

1.在数据库打开的状态下,删除app1_01.dbf文件,

[oracle@oracle11g wilson]$ rm   -f     app1_01.dbf

来查看表Dave.t,

SQL> select * from Dave.t;

select * from Dave.t

*

ERROR at line 1:

ORA-01116: error in opening database file 12

ORA-01110: data file 12: '/u01/oradata/wilson/app1_01.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

因为数据文件不存在了,故查不到了。

在这个时候查看视图v$recover_file会没有任何记录,必须shutdown abort关闭数据库后再打开数据进入mount状态,再查看视图v$recover_file才能看到,

SQL> select * from  v$recover_file;

FILE# ONLINE  ONLINE_ ERROR                 CHANGE# TIME

---------- ------- ------- ------------------ ---------- ---------

12 ONLINE  ONLINE  FILE NOT FOUND              0

可以看到是12号文件。

2.连接上RMAN,恢复数据文件,

RMAN> run{

2> sql 'alter database datafile 12  offline';

3> restore tablespace app1;

4> recover tablespace app1;

5> sql 'alter  database  datafile 12  online';}

恢复成功后,再来查看表Dave.t,

SQL> select *  from Dave.t;

ID NAME

---------- -----------------------------------

3 wound

4 mm

0 Dave.Sun

1 sunshine

2 sunny

可以看到了,恢复表空间成功。

上例中还原恢复的表空间最后还是在原来的目录中,如果是磁盘损坏,不能再放到原来的目录中了,怎么办?和(二)中提供的方法是一样的,只要把数据文件改为表空间即可。

Oracle—RMAN完全恢复的更多相关文章

  1. oracle之三rman 完全恢复

    rman 完全恢复 8.1 recover 恢复: 1)归档 : 完全恢复和不完全恢复 2)非归档:只能恢复到最后一次备份状态(还原) 8.2 完全恢复: ----先对数据库做一个备份(如果是arch ...

  2. ORACLE RMAN备份及还原(转)

    RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...

  3. Oracle RMAN 学习:恢复

    Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...

  4. Oracle RMAN 备份一例

    Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...

  5. Oracle—RMAN备份(三)

    一.增量备份的相关概念 1. 在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块:增量备份只备份自上次备份以来更改过的块. 2.即使RMAN的默认操作是在增量备份时扫 ...

  6. Oracle—RMAN备份(一)

    一.RMAN备份相关概念 1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件. 2.备份 ...

  7. Oracle—RMAN备份(二)

    在Oracle  RMAN备份(一)中,对各种文件在RMAN中备份进行了说明, 一.备份集的复制 在RMAN 备份中,可以备份其自己的备份,即备份一个文件放在多个目录下,oralce支持最多备份四个. ...

  8. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  9. ORACLE RMAN介绍

    本地连接: $ rman target /  or $ rman target / nocatalog 远程连接: $ rman target sys/sys@sky RMAN命令执行方式: 1.单条 ...

随机推荐

  1. Oracle11g 基础 --即将发布

    由于整理发布于博客园较为麻烦,所以这可能需要一点时间. 敬请期待.

  2. CSUOJ 1560 图书管理员的表白方式

    Description 小V是中南大学图书馆的图书管理员,每天要整理很多同学们还回来的书.久而久之,他认识了很多常来图书馆的同学,比如说小L.简而言之吧,就是小V喜欢上了小L,并且想在下一次她来还书的 ...

  3. 切换 NPM 镜像源

    转载:快速切换NPM源 我们介绍过cnpmjs.org和淘宝 npm 两个 NPM 镜像.除此之外,还有一些国外的 NPM 镜像.不同地区访问不同的镜像速度可能有差异,因此有时候需要切换 NPM 镜像 ...

  4. 1035 Password (20)(20 point(s))

    problem To prepare for PAT, the judge sometimes has to generate random passwords for the users. The ...

  5. 【BZOJ 3456】城市规划

    http://www.lydsy.com/JudgeOnline/problem.php?id=3456 设\(f(n)\)表示n个点有标号无向连通图的数目. dp:\(f(n)=2^{n\choos ...

  6. 【洛谷】2474:[SCOI2008]天平【差分约束系统】

    P2474 [SCOI2008]天平 题目背景 2008四川NOI省选 题目描述 你有n个砝码,均为1克,2克或者3克.你并不清楚每个砝码的重量,但你知道其中一些砝码重量的大小关系.你把其中两个砝码A ...

  7. Codeforces Round #354 (Div. 2) B. Pyramid of Glasses 模拟

    B. Pyramid of Glasses 题目连接: http://www.codeforces.com/contest/676/problem/B Description Mary has jus ...

  8. 关于List Map Set的线程安全的问题

    常见的ArrayList  LinkedList  HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的.如果要使用 ...

  9. MYSQL 源码- 淘宝数据库研发组

    http://mysql.taobao.org/index.php?title=%E8%B5%84%E6%96%99%E5%85%B1%E4%BA%AB

  10. 查找(二)简单清晰的B树、Trie树具体解释

    查找(二) 散列表 散列表是普通数组概念的推广.因为对普通数组能够直接寻址,使得能在O(1)时间内訪问数组中的任何位置.在散列表中,不是直接把keyword作为数组的下标,而是依据keyword计算出 ...