热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oracle控制文件的恢复有备份、有控制文件创建脚本、都没有3-mysql教程

控制文件的恢复分两步:1.从备份还原;2.用重做日志恢复。一、有备份的控制文件恢复控制文件按备份的时间跨度分类:1).在线镜像备份:当前控制文件,即control_files初始化参数所指向的除去损坏的控制文件以外的控制文件;2).结构备份:控制文件备份后

控制文件的恢复分两步: 1.从备份还原; 2.用重做日志恢复。 一、有备份的控制文件恢复 控制文件按备份的时间跨度分类: 1).在线镜像备份:当前控制文件,即control_files初始化参数所指向的除去损坏的控制文件以外的控制文件; 2).结构备份:控制文件备份后

控制文件的恢复分两步:

1.从备份还原;

2.用重做日志恢复。


一、有备份的控制文件恢复

控制文件按备份的时间跨度分类:

1).在线镜像备份:当前控制文件,即control_files初始化参数所指向的除去损坏的控制文件以外的控制文件;

2).结构备份:控制文件备份后,数据库的结构没发生变化(例如添加删除表空间、重做日志文件);

3).历史备份:控制文件备份后,数据库的结构发生了变化。

发现控制文件损坏后

1.SQL>shutdown abort

2.SQL>startup

提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态


3.首先看是否存在在线镜像备份,若存在,则按以下步骤恢复:

1)查看警告日志,确定哪些控制文件损坏了;

2)将正确的控制文件复制到损坏了的控制文件的位置上;

3)SQL>alter database mount;

4)SQL>alter database open;


否则,看是否存在结构备份,若存在,按以下步骤恢复:

1)进入rman:rman target/

2)从备份中还原控制文件

RMAN>restore controlfile from autobackup;(自动备份)

RMAN>restore controlfile from '手动备份的控制文件的位置';(手动备份)

3)设置数据库到mount状态

RMAN>alter database mount;

4)介质恢复

RMAN>recover database;

5)RMAN>alter database open resetlogs;


如果只有历史备份:

使用历史备份后会出现不一致,以下2种情况需要手动修复不一致:

1)备份控制文件中具有某个数据文件或表空间的信息,但实际不存在

2)备份中没有某个在线日志组的信息,但实际是存在的(在恢复时用recover database using backup controlfile在提示中输入相应的在线日志的路径)


A、对于自动修复不一致的情况,其恢复步骤与结构备份的手动备份相同

B、备份控制文件中具有某个数据文件或表空间的信息,但实际不存在

1)进入rman:rman target/

2)从备份中还原控制文件

RMAN>restore controlfile from '手动备份的控制文件的位置';(手动备份)

3)设置数据库到mount状态

RMAN>alter database mount;

4)此时不能直接回复数据库,而应使恢复操作不理睬这个丢失的数据文件或表空间

数据文件:

SQL>alter database datafile 文件号 offline;(数据文件)

恢复数据库

SQL>recover database using backup controlfile;

表空间(包括表空间内所有数据文件):

SQL>recover database skip tablespace 表空间名;

5)RMAN>alter database open resetlogs;


二、没有控制文件备份,但对控制文件做了追踪备份,即有创建控制文件的脚本

1.SQL>shutdown abort

2.SQL>startup

提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态

3.找到备份的trace文件,并将其中创建控制文件的脚本提取出来createctl.sql


4.执行脚本createctl.sql

SQL>@createctl.sql


三、没有控制文件的备份和trace备份,此时需要手工创建控制文件

1.SQL>shutdown abort

2.SQL>startup

提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态

3.手工创建控制文件
SQL>create controlfile reuse(/set) database "数据库名" noresetlogs(/resetlogs 仅当online logs损坏的情况下才使用) noarchivelog
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 4672
LOGFILE
GROUP 1 '重做日志1的目录' SIZE 50M,
GROUP 2 '重做日志2的目录' SIZE 50M,
GROUP 3 '重做日志3的目录' SIZE 50M
DATAFILE
'数据文件目录/system01.dbf',
'数据文件目录/undotbs01.dbf',
'数据文件目录/sysaux01.dbf',
'数据文件目录/users01.dbf',
'数据文件目录/info01.dbf' (不包括temp文件)
CHARACTER SET ZHS16GBK
;
提示创建成功

4.介质恢复
sql>RECOVER DATABASE
sql>ALTER DATABASE OPEN;
sql>ALTER TABLESPACE TEMP ADD TEMPFILE 'temp文件目录/temp01.dbf'
SIZE 1244667904 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;


最后恢复完成后记得备份控制文件
备份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO 'F:\ORACLE\BACKUP\TEST.BAK';
alter database backup controlfile to trace as '目录';--生成创建控制文件的脚本,可通过show parameter user_dump_dest查看。







推荐阅读
  • mysql 分库分表策略_【数据库】分库分表策略
    关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多, ... [详细]
  • 本文探讨了为何DataWindow.NET在PowerBuilder 11之后版本中不再被支持,并提供了一种在PB12.5中恢复此功能的解决方案。欢迎交流与反馈。 ... [详细]
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了在Hive中创建表的基本语法,包括临时表、外部表的创建方法,以及如何设置表的各种属性和约束条件。 ... [详细]
  • 解析SAP MM中采购申请单据项的Closed标志
    本文将详细介绍SAP MM模块中采购申请单据项内的Closed标志的具体含义及其操作方法,帮助读者更好地理解和运用这一功能。 ... [详细]
  • 本章节深入探讨了多种实用的辅助类,这些类将在未来的项目中发挥关键作用。此外,单元测试被强调为游戏开发初期的重要步骤。文章最后通过Breakout游戏的实例,展示了如何有效地利用前文所述的技术。 ... [详细]
  • 每位开发者都应该拥有一个展示自我技能与分享知识的空间——个人技术博客。本文将指导你如何使用静态网站生成器Hexo结合GitHub Pages搭建这样一个平台。 ... [详细]
  • APP数据包捕获挑战
    本文探讨了在使用Burp Suite捕获移动应用数据包时遇到的两大难题,尤其是SSL Pinning安全机制的影响,并提供了一种解决方案。 ... [详细]
  • 本文深入探讨了JavaScript中原型(prototype)、构造函数以及对象实例之间的关系,并通过实例分析了它们如何相互作用以实现代码复用和继承。 ... [详细]
  • 在安装Ubuntu 12.04后,用户可能会遇到系统菜单中缺少休眠(Hibernate)选项的问题。这通常是由于某些程序的错误导致系统默认禁用了此功能。本文将详细介绍如何恢复和使用休眠选项。 ... [详细]
  • 解决ArcEngine中IEngineEditor编辑ArcSDE数据时遇到的0x8004021F错误
    本文探讨了一款自定义GIS插件系统从Personal GeoDatabase迁移到ArcSDE数据源过程中遇到的编辑错误,详细分析了错误原因及解决策略。 ... [详细]
  • 本文介绍了如何从给定的JSON响应中正确地提取产品标题等信息。 ... [详细]
  • 在软件开发领域,测试是确保产品质量的关键环节。本文旨在深入探讨两种特定的测试方法——冒烟测试与随机测试,解析它们的特点、实施方式及应用场景。 ... [详细]
  • Python linecache模块:高效读取文件特定行
    linecache模块提供了一种简便的方法来快速访问文件中的特定行,无需通过复杂的文件操作流程。用户只需导入该模块并调用相关方法即可轻松获取所需信息。 ... [详细]
  • 使用LINQ优化WinForms中CheckedListBox的操作
    本文介绍如何利用LINQ扩展方法解决WinForms中CheckedListBox控件的常见操作问题,包括获取选中项的文本并用分隔符连接,以及根据字符串初始化选中状态。 ... [详细]
author-avatar
mobiledu2502879833
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有