rman datafile恢复(归档模式)

模拟环境

1. 做操作之前先备份数据库

RMAN> run {
  # Hot database level 0 whole backup
  allocate channel t1 type disk;
  backup
      incremental level 0
      skip inaccessible
      format ‘/oracle/backup/back_%s_%p_%T_%d‘
  #AS COMPRESSED backupset
  database plus archivelog
  format ‘/oracle/backup/arclogback_%s_%p_%t_%d‘
  delete input;
  delete obsolete;
  release CHANNEL t1 ;
}2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14>

释放的通道: ORA_DISK_1
分配的通道: t1
通道 t1: sid=529 devtype=DISK

启动 backup 于 19-4月 -15
当前日志已存档
通道 t1: 正在启动存档日志备份集
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =724 记录 ID=782 时间戳=877409229
通道 t1: 正在启动段 1 于 19-4月 -15
通道 t1: 已完成段 1 于 19-4月 -15
段句柄=/oracle/backup/arclogback_42_1_877409229_NETDATA 标记=TAG20150419T044709 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:00:02
通道 t1: 正在删除存档日志
存档日志文件名 =/u02/archive/1_724_873224460.dbf 记录 ID=782 时间戳 =877409229
完成 backup 于 19-4月 -15

启动 backup 于 19-4月 -15
通道 t1: 启动增量级别 0 数据文件备份集
通道 t1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=/u02/oradata/netdata/users01.dbf
输入数据文件 fno=00001 name=/u02/oradata/netdata/system01.dbf
输入数据文件 fno=00002 name=/u02/oradata/netdata/undotbs01.dbf
输入数据文件 fno=00003 name=/u02/oradata/netdata/sysaux01.dbf
输入数据文件 fno=00005 name=/u02/oradata/netdata/example01.dbf
输入数据文件 fno=00006 name=/u02/oradata/netdata/netdata01.dbf
通道 t1: 正在启动段 1 于 19-4月 -15
通道 t1: 已完成段 1 于 19-4月 -15
段句柄=/oracle/backup/back_43_1_20150419_NETDATA 标记=TAG20150419T044711 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:05:36
完成 backup 于 19-4月 -15

启动 backup 于 19-4月 -15
当前日志已存档
通道 t1: 正在启动存档日志备份集
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =725 记录 ID=783 时间戳=877409569
通道 t1: 正在启动段 1 于 19-4月 -15
通道 t1: 已完成段 1 于 19-4月 -15
段句柄=/oracle/backup/arclogback_44_1_877409569_NETDATA 标记=TAG20150419T045249 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:00:02
通道 t1: 正在删除存档日志
存档日志文件名 =/u02/archive/1_725_873224460.dbf 记录 ID=783 时间戳 =877409569
完成 backup 于 19-4月 -15

启动 Control File and SPFILE Autobackup 于 19-4月 -15
段 handle=/u02/flash_recovery_area/PNETDATA/autobackup/2015_04_19/o1_mf_s_877409572_bm5k14p1_.bkp comment=NONE
完成 Control File and SPFILE Autobackup 于 19-4月 -15

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
删除以下已废弃的备份和副本:
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
控制文件副本     3      02-3月 -15         /u02/oradata/backup/standby.ctl
控制文件副本     4      02-3月 -15         /tmp/sby_control01.ctl
备份集               38     19-4月 -15        
备份片段       38     19-4月 -15         /oracle/backup/arclogback_42_1_877409229_NETDATA

是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除备份片段
备份段 handle=/oracle/backup/arclogback_42_1_877409229_NETDATA recid=38 stamp=877409230
1 对象已删除

RMAN-06207: 警告: 由于状态不匹配, 所以不能删除 2 对象 (对于 DISK 通道)。
RMAN-06208: 请用 CROSSCHECK 命令修正状态
RMAN-06210: 不匹配对象的列表
RMAN-06211: ==========================
RMAN-06212: 对象类型   文件名/句柄
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Datafile Copy   /u02/oradata/backup/standby.ctl
RMAN-06214: Datafile Copy   /tmp/sby_control01.ctl

释放的通道: t1

RMAN> list backup of database;

备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间  
------- ---- -- ---------- ----------- ------------ ----------
39      Incr 0  5.57G      DISK        00:05:35     19-4月 -15
        BP 关键字: 39   状态: AVAILABLE  已压缩: NO  标记: TAG20150419T044711
段名:/oracle/backup/back_43_1_20150419_NETDATA
  备份集 39 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/system01.dbf
  2    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/undotbs01.dbf
  3    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/sysaux01.dbf
  4    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/users01.dbf
  5    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/example01.dbf
  6    0  Incr 7862138    19-4月 -15 /u02/oradata/netdata/netdata01.dbf

2.模拟文件删除,物理删除文件

[[email protected] backup]$ cd /u02/oradata/netdata/
[[email protected] netdata]$ ls
control01.ctl  example01.dbf  redo01.log  redo03.log    stredo02.log  stredo04.log  system01.dbf  undotbs01.dbf
control02.ctl  netdata01.dbf  redo02.log  stredo01.log  stredo03.log  sysaux01.dbf  temp01.dbf    users01.dbf
[[email protected] netdata]$ rm -rvf netdata01.dbf
已删除"netdata01.dbf"

SQL> conn netdata/netdata
已连接。
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-01116: 打开数据库文件 6 时出错 ORA-01110:
数据文件 6: ‘/u02/oradata/netdata/netdata01.dbf‘
ORA-27041: 无法打开文件
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

已经报错了。

3.将删除文件离线

SQL> conn / as sysdba
已连接。
SQL> alter database datafile 6 offline;

数据库已更改。

4.rman 恢复删除文件

RMAN> restore datafile 6;

启动 restore 于 19-4月 -15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=529 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00006还原到/u02/oradata/netdata/netdata01.dbf
通道 ORA_DISK_1: 正在读取备份片段 /oracle/backup/back_43_1_20150419_NETDATA
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 04/19/2015 04:55:36 上) 失败
ORA-19870: 读取备份段 /oracle/backup/back_43_1_20150419_NETDATA 时出错
ORA-19573: 无法获得 exclusive 入队 (数据文件 6 的)

RMAN> restore datafile 6;

启动 restore 于 19-4月 -15
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
正将数据文件00006还原到/u02/oradata/netdata/netdata01.dbf
通道 ORA_DISK_1: 正在读取备份片段 /oracle/backup/back_43_1_20150419_NETDATA
通道 ORA_DISK_1: 已还原备份片段 1
段句柄 = /oracle/backup/back_43_1_20150419_NETDATA 标记 = TAG20150419T044711
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
完成 restore 于 19-4月 -15

RMAN> recover datafile 6;

启动 recover 于 19-4月 -15
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:01

完成 recover 于 19-4月 -15

RMAN>

SQL> alter database datafile 6 oneline;
alter database datafile 6 oneline
                          *
第 1 行出现错误:
ORA-01916: 需要关键字 ONLINE, OFFLINE, RESIZE, AUTOEXTEND 或 END/DROP

SQL> alter database datafile 6 online;

数据库已更改。

4.验证

SQL> conn netdata/netdata   
已连接。
SQL> select * from test;

ID NAME
---------- --------------------------------------------------
     1 test
     2 test1

SQL>

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

FILE# STATUS
---------- -------
     1 SYSTEM
     2 ONLINE
     3 ONLINE
     4 ONLINE
     5 ONLINE
     6 ONLINE

已选择6行。

SQL>

时间: 2024-11-03 05:29:19

rman datafile恢复(归档模式)的相关文章

无备份恢复(归档模式)

无备份恢复表空间前提是归档存在[[email protected] ~]$ rman target / Recovery Manager: Release 10.2.0.5.0 - Production on Tue Aug 5 10:02:46 2014 Copyright (c) 1982, 2007, Oracle.  All rights reserved. connected to target database: NETDATA (DBID=348346524) RMAN> list

rman数据库恢复;关键/非关键文件、影像副本、控制文件、还原点、非归档、增量、新数据库、灾难性回复

执行完全恢复:在 ARCHIVELOG 模式下 丢失了系统关键数据文件: 如果某个数据文件丢失或损坏,且该文件属于 SYSTEM 或 UNDO 表空间,请执行以下步骤: 1. 实例可能会也可能不会自动关闭. 2.如果未自动关闭,请使用 SHUTDOWN ABORT 关闭实例. 3. 装载数据库. 4. 还原并恢复缺失的数据文件. 5.打开数据库. 1.归档模式丢失非关键数据文件  完全恢复 第一种方法: shutdown abort; startup mount; alter database 

rman数据库恢复;关键/非重要文件、影像副本、控制文件、还原点、非归档、增量、新数据库、灾难性回复

运行全然恢复:在 ARCHIVELOG 模式下 丢失了系统重要数据文件: 假设某个数据文件丢失或损坏.且该文件属于 SYSTEM 或 UNDO 表空间,请运行下面步骤: 1. 实例可能会也可能不会自己主动关闭. 2.假设未自己主动关闭.请使用 SHUTDOWN ABORT 关闭实例. 3. 装载数据库. 4. 还原并恢复缺失的数据文件. 5.打开数据库. 1.归档模式丢失非重要数据文件  全然恢复 第一种方法: shutdown abort; startup mount; alter datab

Oracle归档模式和非归档模式

一 什么是Oracle归档模式? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.

Oracle归档与非归档模式

一.什么是Oracle归档模式 Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.比

在归档模式下,恢复一个被offline drop的datafile的方法

参考自: HOW TO RECOVER OFFLINE DROPPED DATAFILE IN ARCHIVELOG MODE (文档 ID 286355.1) 如下的实验基于oracle 11.2.0.4 linux x86-64bit完成 [[email protected] u02]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sun Feb 15 20:33:17 2015 Copyright (c) 1

Oracle在归档模式下恢复

=============== 数据库的完全恢复 =============== 在归档模式下数据库完全恢复时,数据库所经过的状态如下: 1.利用备份修复(Restores)损坏或丢失的数据文件,即将备份的文件复制到数据库中原来的位置 2. 将从备份到系统崩溃这段时间所提交的数据由归档日志文件和重做日志文件中还原成数据文件所需要的数据块,这也叫前滚(Roll Forward) 3. 此时数据块中包含了所有提交的数据,也可能包含没提交的数据 4. 系统利用还原数据块回滚未提交的数据,这也叫回滚或者

在归档模式下删除非系统文件的恢复

众所周知,我们的核心生产数据库通常都是在归档模式下执行的,更不用说还配置DG环境的了.开启归档,并保证全部归档不丢失,就能保证我们对数据库所做的不论什么改动不会丢失,归档日志可谓是恢复的根本,假设丢失归档,那么即使RMAN功能再强大,也无法对丢失的数据进行恢复.所以我们通常配置的RMAN策略就是全备+归档+控制文件自己主动备份.这里的归档不是指数据库创建以来生成的归档(那量也太大了),而是当进行RMAN非一致性备份时新产生的那部分归档日志,用来保证数据库能够前推到一致性状态,这样才干顺利open

归档模式下恢复没有备份的数据文件

测试环境 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE    11.