备份控制文件之后,添加数据文件,数据文件无备份丢失后的恢复-阿里云开发者社区

开发者社区> 科技小能手> 正文

备份控制文件之后,添加数据文件,数据文件无备份丢失后的恢复

简介:
+关注继续查看
Oracle document:
Re-Creating Datafiles When Backups Are Unavailable: Scenario
If a datafile is damaged and no backup of the file is available, then you can still recover the datafile if:
1 .All archived log files written after the creation of the original datafile are available
2. The control file contains the name of the damaged file (that is, the control file is current, 
    or is a backup taken after the damaged datafile was added to the database)
如果不满足第二个条件会怎么样呢:
测试过程:
备份控制文件:
SQL> alter database backup controlfile to 'D:\oracle\product\10.2.0\exper_data\w
rite4.ctl'
  2  /
数据库已更改。
为表空间添加数据文件
SQL> alter tablespace users add datafile size 5m;
表空间已更改。
SQL> create table test(name varchar2(20)) tablespace users;
表已创建。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
删除刚才添加的数据文件(这是OMF方法,找到5M大小的那个,其他的都大),
并恢复备份的控制文件。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  603979776 bytes
Fixed Size                  1298112 bytes
Variable Size             163578176 bytes
Database Buffers          432013312 bytes
Redo Buffers                7090176 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> recover database using backup controlfile
ORA-00279: 更改 891467 (在 07/20/2010 22:47:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 891467 (用于线程 1) 在序列 #1 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_1_63XPWQ0D_.LOG
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 6:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF'

ORA-01112: 未启动介质恢复

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSTEM_63XPX1S6_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_UNDOTBS1_63XPXGWY_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSAUX_63XPXMOL_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_63XPXTN1_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CF8DGN_.DBF
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006
已选择6行。
更改文件名:
SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED0
0006' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS
_.DBF'
  2  /
alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006'
 to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF
'
*
第 1 行出现错误:
ORA-01511: 重命名日志/数据文件时出错
ORA-01141: 重命名数据文件 6 时出错 - 未找到新文件
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF'
ORA-01111: 数据文件 6 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH
5VWS_.DBF'
  2  /
alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00
006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_
.DBF'
*
第 1 行出现错误:
ORA-01276: 无法添加文件
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF。相
应文件具有一个 Oracle Managed Files 文件名。
提示文件具有一个 Oracle Managed Files 文件名,按三思的说法改一下文件名:
SQL> alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS.DBF'
2  /
数据库已更改。
SQL> recover database using backup controlfile
ORA-00279: 更改 892717 (在 07/20/2010 23:11:56 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 892717 (用于线程 1) 在序列 #1 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_3_63XPWZ47_.LOG
ORA-00339: 归档日志未包含任何重做
ORA-00334: 归档日志:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\ONLINELOG\O1_MF_3_63XPWZ47_.LOG'

SQL> recover database using backup controlfile
ORA-00279: 更改 892717 (在 07/20/2010 23:11:56 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 892717 (用于线程 1) 在序列 #1 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_1_63XPWOSS_.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs
  2  /
alter database open resetlogs
*
第 1 行出现错误:
ORA-01153: 激活了不兼容的介质恢复
文档上说:ORA-01153, Attempted to start an incompatible media recovery or open resetlogs
 during media recovery or RMAN backup.这里怎么用有另外进程呢,我只打开一个窗口.
waiting再打开:
SQL> alter database open resetlogs
  2  /
alter database open resetlogs
*
第 1 行出现错误:
ORA-01153: 激活了不兼容的介质恢复
错误一样.试着关闭再打开:
SQL> shutdown immediate;
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  603979776 bytes
Fixed Size                  1298112 bytes
Variable Size             163578176 bytes
Database Buffers          432013312 bytes
Redo Buffers                7090176 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs
  2  /
数据库已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSTEM_63XPX1S6_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_UNDOTBS1_63XPXGWY_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSAUX_63XPXMOL_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_63XPXTN1_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CF8DGN_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS.DBF
已选择6行。
完成恢复.
在这里ORA-01153是什么原因呢,大伙指点一下.


本文转自 anranran 51CTO博客,原文链接:http://blog.51cto.com/guojuanjun/353990

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
8 cocos2dx添加场景切换效果,控制场景切换彻底完成之后再执行动画
 1 添加场景切换效果 供场景切换的类: CCTransitionJumpZoom CCTransitionProgressRadialCCW CCTransitionProgressRadialCW CCTransitionProgressHorizontal CCTransitionProgressVertical
1470 0
spring-自动加载配置文件\使用属性文件注入
在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到WEB-INF下 首先看下pom.
930 0
从远程Oracle服务器上同步复制数据到本地备份库
create or replace PROCEDURE "SYNC_DATA_FROM_DBLINK_DB" AS BEGIN DECLARE CURSOR c_TabNames IS SELECT TNAME FROM TAB; v_TabName c_TabNames%ROWTYPE; v_SQL VARCHAR2(500); v_rowcount NUMB
1524 0
C#选择多个文件并读取多个文件数据
原文:C#选择多个文件并读取多个文件数据 版权声明:本文为博主原创文章,转载请附上链接地址。 https://blog.csdn.net/ld15102891672/article/details/80586097 ...
895 0
VMware备份文件即时恢复功能全新发布
HBR的VMware备份/恢复都是整机维度的,但是有些时候,我们或许只想要恢复备份中的某个文件,这样在恢复一个完整的虚拟机就有点高射炮打蚊子了。我们能不能直接从备份的数据里捞出来想要的文件呢?文件级恢复的功能便应运而生。
176 0
14426
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载