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

测试环境

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.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

创建表空间并设置用户

SQL> create tablespace t1 datafile ‘+data‘ size 20m;

Tablespace created.

SQL>

SQL> alter user test default tablespace t1;

User altered.

SQL> create table tt1 as select * from user_objects;

Table created.

SQL> select count(*) from tt1;

COUNT(*)

----------

6

SQL> select t.ts#, d.file#, d.name from v$tablespace t, v$datafile d where t.name=‘T1‘ and t.ts# = d.ts#;

TS#      FILE# NAME

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

19         13 +DATA/key/datafile/t1.275.851106659

19         14 +DATA/key/datafile/t1.276.851107957

offline数据文件并在asm磁盘组删除相应数据文件

SQL> alter database datafile 13 offline;

Database altered.

ASMCMD> rm  t1.275.851106659

ASMCMD> pwd

+data/key/datafile

ASMCMD>

测试

SQL> conn test/oracle;

Connected.

SQL> select * from tt1;

select * from tt1

*

ERROR at line 1:

ORA-00376: file 13 cannot be read at this time

ORA-01110: data file 13: ‘+DATA/key/datafile/t1.275.851109775‘

online数据文件报错

SQL> alter database datafile 13 online;

alter database datafile 13 online

*

ERROR at line 1:

ORA-01157: cannot identify/lock data file 13 - see DBWR trace file

ORA-01110: data file 13: ‘+DATA/key/datafile/t1.275.851106659‘

查看trace文件内容

key_dbw0_21473.trc

……

ORA-01157: cannot identify/lock data file 13 - see DBWR trace file

ORA-01110: data file 13: ‘+DATA/key/datafile/t1.275.851106659‘

ORA-17503: ksfdopn:2 Failed to open file +DATA/key/datafile/t1.275.851106659

ORA-15012: ASM file ‘+DATA/key/datafile/t1.275.851106659‘ does not exist

……

提示没有相应数据文件,可以通过alter database create datafile创建相应数据文件

SQL> alter database create datafile 13;

Database altered.

ASMCMD> ls

ELITEMASTER.274.849888559

MGMT_AD4J_TS.268.840720903

MGMT_ECM_DEPOT_TS.266.840720899

MGMT_TABLESPACE.267.840720901

SYSAUX.261.840712503

SYSTEM.260.840712485

T1.275.851109775

T1.276.851107957

TEST.270.842550281

UNDOTBS1.262.840712517

USERS.264.840712529

对比新增文件名T1.275.851109775 和原有数据文件+DATA/key/datafile/t1.275.851106659名称不一样

rename 数据文件并recover 然后online 打开查看

SQL> alter database rename file ‘+DATA/key/datafile/t1.275.851106659‘ to ‘+DATA/key/datafile/T1.275.851109775‘;

Database altered.

SQL> recover datafile 13;

Media recovery complete.

SQL> alter database datafile 13 online;

Database altered.

SQL> conn test/oracle

Connected.

SQL> select count(*) from tt1;

COUNT(*)

----------

6

恢复成功!

这个也同样适用于rac 恢复!

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

时间: 2024-10-11 13:31:00

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

Oracle在归档模式下恢复

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

oracle非归档模式下的冷备份和恢复

查看归档的相关信息 SQL> archive log list数据库日志模式             非存档模式自动存档             禁用存档终点            USE_DB_RECOVERY_FILE_DEST最早的联机日志序列     72当前日志序列           74 备份中常用的术语解释: 冷备份(脱机备份): 数据库处于关闭状态下所做的物理拷贝.数据库处于非归档模式下只能使用这种方法备份. 数据库全备份:备份所有数据文件和控制文件,在全备份时,数据库可以处在

利用 BBED 恢复非归档模式下 OFFLINE 数据文件

今天来模拟一个非归档模式下恢复OFFLINE数据文件的场景,主要有2种情况: 一种是在线日志没有被覆盖,另一种是在线日志被覆盖. 第一种情况比较简单,数据库自身就能处理,而第二种情况稍显复杂,但也并不难,下面开始整个实验过程: 一.在线日志没有被覆盖的场景 --切换数据库到非归档模式 SQL> archive log list Database log mode       Archive Mode Automatic archival       Enabled Archive destina

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

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

测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的数据文件无法online! 数据库在启动的时候不检查offline的数据文件! 下面进行测试 数据库版本 SQL> select * from v$version; BANNER ------------------------------------------------------------

在非归档模式下不能更改表空间为备份模式

Oracle表空间设置为备份模式后,便可以联机对表空间下数据文件进行文件系统级别的copy备份操作,因为期间对表空间的修改都记录到数据库的重做日志文件中. 由此想到数据库如果是非归档模式,那么这个表空间备份模式的时间必须不能超过联机日志被覆盖的时间,才能保证数据的修改不会丢失. 那么Oracle对这种情况是如何择决的呢? 实验表明:Oracle是干脆不让你在非归档模式下开启表空间的备份模式. 报错如下: ORA-01123: cannot start online backup; media r

在归档模式下,恢复一个被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 归档模式下删除current日志不完全恢复

归档模式 [email protected]> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 5 Next log sequence to archive 7 Current log sequence 7

oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)

环境:数据库版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 实验准备:1.-- 数据库归档模式SQL> select name,log_mode from v$database;NAME  LOG_MODE--------- ------------ANDYCDB   ARCHIVELOG   > 数据库归档模式 2.-- 登录 PDB 中创建实验表空间 与 用户[[email pr