【非关键性数据文件丢失(可以脱机数据文件的丢失)-恢复-1】

非关键性数据文件丢失(可以脱机数据文件的丢失):

run{

sql ‘alter database datafile <> offline‘;

restore datafile <>;

recover datafile <>;

slq ‘alter database datafile <> online‘;

}

除了system、undo_tablespace参数后值对应的表空间都可以采用以上的办法恢复。

[[email protected] ~]$ ls /u01/oracle/oradata/jadl10g/

control01.ctl  control03.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf

control02.ctl  example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

[[email protected] ~]$ rm /u01/oracle/oradata/jadl10g/example01.dbf

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Nov 6 15:23:57 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine

and Real Application Testing options

SQL> select * from hr.employees;

select * from hr.employees

*

ERROR at line 1:

ORA-01116: error in opening database file 5

ORA-01110: data file 5: ‘/u01/oracle/oradata/jadl10g/example01.dbf‘

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

[[email protected] ~]$ vi /tmp/1.rman

创建一个恢复的脚本:

[[email protected] ~]$ cat /tmp/1.rman

run{

sql ‘alter database datafile 5 offline‘;

restore datafile 5;

recover datafile 5;

sql ‘alter database datafile 5 online‘;

}

rman利用建立的脚本恢复数据库的数据:

[[email protected] ~]$ rman target / cmdfile=/tmp/1.rman

Recovery Manager: Release 10.2.0.5.0 - Production on Thu Nov 6 15:29:28 2014

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: JADL10G (DBID=2011530396)

RMAN> run{

2> sql ‘alter database datafile 5 offline‘;

3> restore datafile 5;

4> recover datafile 5;

5> sql ‘alter database datafile 5 online‘;

6> }

7>

using target database control file instead of recovery catalog

sql statement: alter database datafile 5 offline

Starting restore at 06-NOV-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=159 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore

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

restoring datafile 00005 to /u01/oracle/oradata/jadl10g/example01.dbf

channel ORA_DISK_1: reading from backup piece /u01/oracle/flash_recovery_area/JADL10G/backupset/2014_11_06/o1_mf_nnndf_TAG20141106T135107_b5p32dhf_.bkp

channel ORA_DISK_1: restored backup piece 1

piece handle=/u01/oracle/flash_recovery_area/JADL10G/backupset/2014_11_06/o1_mf_nnndf_TAG20141106T135107_b5p32dhf_.bkp tag=TAG20141106T135107

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

Finished restore at 06-NOV-14

Starting recover at 06-NOV-14

using channel ORA_DISK_1

starting media recovery

media recovery complete, elapsed time: 00:00:00

Finished recover at 06-NOV-14

sql statement: alter database datafile 5 online

Recovery Manager complete.

此时执行查询就不会出现错误了。

system/example 都丢失该如何处理?

shutdowm abort

restore datafile 1,5;

recover database;

alter database open;

这样操作后,不需要重新备份数据库 ,以前的备份是有效的。

恢复映像副本

RMAN> backup as copy datafile 5;

Starting backup at 06-NOV-14

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=159 devtype=DISK

channel ORA_DISK_1: starting datafile copy

input datafile fno=00005 name=/u01/oracle/oradata/jadl10g/example01.dbf

output filename=/u01/oracle/flash_recovery_area/JADL10G/datafile/o1_mf_example_b5pbo2pc_.dbf tag=TAG20141106T160034 recid=10 stamp=862934437

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

Finished backup at 06-NOV-14

RMAN> recover copy of datafile 5; ---改命令就是对上面的数据文件做增量的修改,

Starting recover at 06-NOV-14

using channel ORA_DISK_1

no copy of datafile 5 found to recover

Finished recover at 06-NOV-14

数据文件从一个路径迁移到新的路径

数据文件从文件系统到ASM

数据文件从ASM到文件系统

实施以上需求的办法:

set newname for datafile ‘...‘ to ‘...‘;

restore ...

switch datafile all;

recover ....

将数据文件迁移到ASM:

SQL> select name from v$asm_diskgroup;

vi a.rman

run{

sql ‘alter tablespace a1 offline immediate‘;

set newname for datafile 7 to ‘+DB‘;

restore datafile 7;

switch datafile all; ---交换文件

recover datafile 7;

slq ‘alter tablespace a1 online‘;

}

在rman执行该脚本;

12c是比较特殊的:

alter database datafile 13 move ‘/u01/......‘;----移动到新的路径

时间: 2024-10-19 09:41:39

【非关键性数据文件丢失(可以脱机数据文件的丢失)-恢复-1】的相关文章

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

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

C语言之文件操作06——写数据到文本文件遇0停止

//文件 /* =============================================================== 题目:输入10个篮球运动员的身高数据(cm)保存至D盘文件high.txt: 0表示输入完毕. x= 180 182 179 185 191 178 184 185 183 192 =============================================================== */ #include<stdio.h> v

在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有 会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话丢失是非常不爽的事情,这个时候可将配 置文件中经常需要改变的参数配置节 放到外面来,例如appSetting节. 一.原来的web.

MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理 MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案 先来了解下各项的引用关系 FytCms.DALMSSQL=>Domain.Entity.EntityFramework BusinessLogic.Server=>FytCms.D

[转]概念:结构化数据、半结构化数据、非结构数据

原:http://blog.csdn.net/liangyihuai/article/details/54864952 结构化数据.半结构化数据和非结构化数据 结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据.一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的.举一个例子: id name age gender 1 lyh 12 male 2 liangyh 13 female 3 liang 18 male 所以,结构化的数据的存储

构化数据、半结构化数据和非结构化数据

结 结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据.一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的.举一个例子: id name age gender 1 lyh 12 male 2 liangyh 13 female 3 liang 18 male 1 2 3 4 所以,结构化的数据的存储和排列是很有规律的,这对查询和修改等操作很有帮助.但是,显然,它的扩展性不好(比如,我希望增加一个字段,怎么办?). 半结构化数据 半结构化

大数据:Map终结和Spill文件合并

当Mapper没有数据输入,mapper.run中的while循环会调用context.nextKeyValue就返回false,于是便返回到runNewMapper中,在这里程序会关闭输入通道和输出通道,这里关闭输出通道并没有关闭collector,必须要先flush一下. 获取更多大数据视频资料请加QQ群:947967114 代码结构: Maptask.runNewMapper->NewOutputCollector.close->MapOutputBuffer.flush 我们看flus

Kafka在高并发的情况下,如何避免消息丢失和消息重复?kafka消费怎么保证数据消费一次?数据的一致性和统一性?数据的完整性?

1.kafka在高并发的情况下,如何避免消息丢失和消息重复? 消息丢失解决方案: 首先对kafka进行限速, 其次启用重试机制,重试间隔时间设置长一些,最后Kafka设置acks=all,即需要相应的所有处于ISR的分区都确认收到该消息后,才算发送成功 消息重复解决方案: 消息可以使用唯一id标识 生产者(ack=all 代表至少成功发送一次) 消费者 (offset手动提交,业务逻辑成功处理后,提交offset) 落表(主键或者唯一索引的方式,避免重复数据) 业务逻辑处理(选择唯一主键存储到R

大数据技术之_18_大数据离线平台_02_Nginx+Mysql+数据收集+Web 工程 JS/JAVA SDK 讲解+Flume 故障后-如何手动上传 Nginx 日志文件至 HDFS 上

十一.Nginx11.1.介绍11.2.常见其他 Web 服务器11.3.版本11.4.Nginx 安装11.5.目录结构11.6.操作命令十二.Mysql12.1.介绍12.2.关系型数据库(SQL)种类12.3.特征12.4.术语12.4.与非关系型数据库比较(Not Only SQL)12.4.1.种类12.4.2.特征12.4.3.总结十三.数据收集13.1.收集方式13.2.数据的事件类型13.2.1.Launch 事件13.2.2.PageView 事件13.3.Nginx 日志收集