rman 完全恢复

8.1 recover 恢复:

1)归档 : 完全恢复和不完全恢复
2)非归档:只能恢复到最后一次备份状态(还原)

8.2 完全恢复:

----先对数据库做一个备份(如果是archived模式就做热备)

换一种形式,我们将下面的run{}写到linux的脚本中,叫做/u01/oradata/timran11g/myrman.rcv
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/u01/myrman/%d_%s.bak';
}

然后以rman登录时执行这个脚本。语法如下:
rman target / @/u01/oradata/timran11g/myrman.rcv

可以监控RMAN备份,RMAN使用字符串rman 和通道名称填充v$session中client_info列,每个RMAN通道有一行信息, 备份结束后进程信息
消失.也可以使用 set command id to 'XXX'做一个标识,再结合v$session观察通道和进程之间的对应关系。

SQL>
select sid,spid,client_info from v$process p join v$session s on (p.addr=s.paddr)
where client_info like 'rman%';

SID SPID CLIENT_INFO
---------- ------------------------ ----------------------------------------------------------------
113 12992 rman channel=ORA_DISK_1
111 12995 rman channel=ORA_DISK_2

范例1:system表空间损坏,使用EM的DRA恢复

1)在线删除system01.dbf,模拟关键表空间损坏,然后启动数据库,报system01.dbf读写错误

[oracle@timran ~]$ rm /u01/oradata/timran11g/system01.dbf

SQL> startup froce

2) 使用EM恢复...

范例2:恢复表空间(数据库open状态)。因非关键数据文件介质损坏,需要将其表空间恢复到一个新的物理位置。

1)环境
create table scott.t1(id int);
insert into scott.t1 values(1);
commit;

2)模拟users表空间损坏,删除数据文件。

[oracle@timran ~]$ rm /u01/oradata/timran11g/users01.dbf

3) 清除db buffer ,查证访问数据文件失败
SQL> alter system flush buffer_cache;

SQL> alter system checkpoint; //实验中为防备rman登录不正常,可以尝试先做个检查点切换

4)建个目录,假设介质损坏了,更换需要时间,先把数据文件恢复到一个新的目录下(不同的物理位置),

[oracle@timran timran11g]$ mkdir /u01/oradata/timran11g/dir1

5)使用RMAN恢复表空间

RMAN>run{
sql 'alter database datafile 4 offline';
set newname for datafile 4 to '/u01/oradata/timran11g/dir1/users01.dbf';
restore tablespace users;
switch datafile 4;
recover tablespace users;
sql 'alter database datafile 4 online';
}

说明:
set newname for 告诉RMAN还原数据文件的新位置在哪里。这个命令在restore前出现。
switch datafile 更新controlfile,记录这个新位置。这个命令要在recover前出现。

5)验证
SQL> select * from scott.t1;

ID
----------
1

6)待介质更换完成后,可以将表空间迁移回原来位置。

SQL> alter tablespace users offline;

[oracle@timran11g]mv /u01/oradata/timran11g/dir1/users01.dbf /u01/oradata/timran11g

SQL>alter tablespace users rename datafile '/u01/oradata/timran11g/dir1/users01.dbf' to '/u01/oradata/timran11g/users01.dbf';

SQL> alter tablespace users online;

7)再验证

SQL> select * from scott.t1;

范例3:新建表空间(rman备份没有这个表空间),datafile被破坏

1)环境
SQL> create tablespace lx datafile '/u01/oradata/timran11g/lx01.dbf' size 5m;
SQL> create table scott.t2(id int) tablespace lx;
SQL> insert into scott.t2 values (1);
SQL> commit;
SQL> select * from scott.t2;

ID
----------
1

2) 删除t2表所在的数据文件
[oracle@timran ~]$rm /u01/oradata/timran11g/lx01.dbf

3)清除db buffer,查证访问数据文件失败。

SQL> alter system flush buffer_cache;

4)利用rman 恢复数据文件(注意:rman备份里没有lx01.dbf)

RMAN>run {
sql 'alter database datafile 7 offline';
restore datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}

5)验证
SQL> select * from scott.t2;

ID
----------
1

删除lx表空间,为了使数据库和RMAN备份一致

SQL> drop tablespace lx including contents and datafiles;

oracle之三rman 完全恢复的更多相关文章

  1. oracle之三rman 不完全恢复

    rman 不完全恢复 9.1 rman 不完全恢复的三个标准模式:基于time.基于scn和基于sequence: 范例1:恢复过去某个时间点误操作,一般使用基于time或scn. 1)环境:有一套全 ...

  2. oracle之三RMAN概述

    RMAN概述 6.1 rman的定义和功能: 1) Recovery Manager 2)建立备份和恢复的server process,在oracle server上做备份和恢复 3)rman 备份d ...

  3. oracle之三手工完全恢复

    手工完全恢复 3.1 完全恢复:通过备份.归档日志.current log ,将database恢复到failure 前的最后一次commit状态. 3.2 完全恢复的步骤 1)restore: OS ...

  4. oracle之三rman 备份

    rman 备份 7.1 归档方式下rman备份常用语法: 7.1.1 backup 备份 1)备份全库:1.1 RMAN> backup database format='/u01/myrman ...

  5. oracle之三rman 维护

    rman 维护 11.1 rman 使用和维护 11.2 list 命令一览 1)RMAN> list backup; 2)RMAN> list backup of tablespace ...

  6. Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)

    Oracle 数据库可以实现数据库不完全恢复与完全恢复.完全恢复是将数据库恢复到最新时刻,也就是无损恢复,保证数据库无丢失的恢复.而不完全恢复则是根据需要特意将数据库恢复到某个过去的特定时间点或特定的 ...

  7. Oracle—RMAN完全恢复

    一.RMAN完全恢复的相关概念 1.在RMAN完全恢复中主要使用两个命令,一个是restore,另一个是recover. 2.可以在三个级别恢复,数据库,表空间,数据文件. 3.RMAN中应对于各种情 ...

  8. oracle数据库rman备份计划及恢复

    1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog. 2.rman备份脚本: a.RMAN 0级备份 ...

  9. Oracle单机Rman笔记[5]---脱机异地还原

    脱机异地还原(安装一个原环境相同的linux,并安装数据库,注意不要配置安装实例) .检查/home/oracle下的.bashrc .bash_profile内容是否与原环境一致(具体看情况而定), ...

随机推荐

  1. [netty4][netty-transport]netty之nio传输层

    [netty4][netty-transport]netty之nio传输层 nio基本处理逻辑 查看这里 Selector的处理 Selector实例构建 NioEventLoop.openSelec ...

  2. 【HAOI2015】树上染色 - 树形 DP

    题目描述 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之 ...

  3. 【SDOI2009】 HH的项链 - 莫队

    题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...

  4. 微信小程序自动化测试最佳实践(附 Python 源码)

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...

  5. 【接口自动化】Python+Requests接口自动化测试框架搭建【一】

    公司项目启用新框架,前后端分离,所以接口测试成为测试工作中不可缺失的一个环节,现在将从0开始搭建接口自动化测试框架的路程,一步步记录下来. 开发语言我们采用Python+第三方库Requests,测试 ...

  6. Flink的应用场景和架构

    Flink的应用场景 Flink项目的理念就是:Flink是为分布式,高性能,随时可用以及准确的流处理应用程序打造的开源流处理框架.自2019年开源以来,迅速成为大数据实时计算领域炙手可热的技术框架. ...

  7. oracle进行一对多关联查询的时候,获取副表(也就是多条记录的那张表)的最新一条记录进行关联,如何获取多条记录最新一条呢?

    例如以下场景: 一条新闻对应多条审核记录,用户想知道这条新闻走到哪一步审核了. 使用:select * from (select b.*,(ROW_NUMBER() OVER (PARTITION B ...

  8. Robot Framework(2)——简单运行案例

    1.打开RIDE 之前介绍的3种方式都可以 2.创建工程和测试套件 1>点击File-New Project ①Name:工程命名 ②Parent Directory:上级目录,工程会创建在这个 ...

  9. python之常用正则表达式

    以下整理python中常用的正则符号,相信能够熟悉掌握这些正则符号,大部分字符串处理将会游刃有余. 符号 含义 示例 . 可以匹配任意字符,但不包含换行符'\n' Pyt.on ->Pytmon ...

  10. C#.WinForm 拖动文件到PictrueBox(支持跨UAC拖动)

    如程序以普通方式打开,那么DragDrop DragEnter 事件是可以正常使用的.但以管理员身份运行时,这两个方法将失效. 原因是 Windows机制(用户界面特权隔离). UIPI:用户界面特权 ...