正在看的ORACLE教程是:优化Oracle停机时间及数据库恢复。

这里会讨论令Oracle停机时间最小化的步骤。各种形式的停机--计划的或者是非计划的--总是不断地发生,一个DBA应该有正确的备份策略,这样在数据库出现问题时就可以更快地恢复。

以下是假定的备份策略和数据库的运作条件

控制文件是镜像的

数据库运行在archivelog模式

每个星期都进行冷备份

每日都进行热备份

每日都进行一次全数据库导出

事件1:完整的数据库重构

在这种情形下,你可以使用全数据库导出或者冷热备份结合的方式来重构数据库。要注意的是无论你选择哪种方式,在线redo log中的事务都会丢失。

事件2:恢复部分的表空间

可以使用以下的步骤来恢复:

1、以restrict模式启动数据库

2、重新创建表空间

3、使用最新的全数据库导出来导入,并且使用ignore=y的选项;

4.关闭并且重新以normal的模式启动数据库实例

事件3:丢失一般的数据文件

丢失一般数据文件的恢复步骤根据所丢失的数据文件包含的表空间类型而定;例如:回滚段,用户表空间,索引表空间或者是只读的表空间、你可能会遇到以下的错误:

. 尝试启动数据库并且碰到错误的信息ORA-1157, ORA-1110,可能还有一个操作系统的错误

. 尝试以normal或者immediate的模式关闭数据库,可能会碰到ORA-1116, ORA-1110的错误信息,还有一个系统错误

以下的步骤可以用作恢复:

1、关闭数据库

2、由热备份中恢复丢失的数据文件

3、Startup mount数据库

4、执行以下的查询来得到所有你的在线redo log文件和它们相应的次序和首次修改号:

5、如果得到的CHANGE#比在线redo log最小的FIRST_CHANGE# 还小,那么该文件不能被完全恢复,你可以有两个选择:

. 如果可以接受丢失最近一次冷备份以来的数据库修改,装入备份并且继续恢复

. 如果不能接受丢失数据库的修改,那么必须重新创建表空间

6、通过使用存档和在线的redo log来恢复数据文件

7、打开数据库

[NextPage]

事件4:恢复一个特别的表

可以采用以下的步骤恢复:

1、使用最近的一次全数据库导出来导入表,并且使用owner=和tables=的选项

2、考虑到性能的原因,可能需要重建表索引

事件5:丢失控制文件

在数据库起来并且运行时,通常都不能检测到控制文件的问题、如果控制文件丢失或者损坏了,Oracle将不会了解,下次数据库的启动时将会导致ORA-205错误(标识控制文件"%s的错误),还有一个系统级的错误、

如果只是丢失了其中的一个控制文件,可以采用下面的步骤来恢复:

1、如果它正在运行的话,先关闭它

2、查找丢失控制文件的原因、是由于硬件的问题吗(磁盘还是控制器)?

3、如果不是硬件的问题,将控制文件的一个好的拷贝复制到丢失的位置,并且跳到步骤5、

4、如果是硬件的问题,复制一个好的控制文件拷贝到一个可靠的位置

5、编辑initsid.ora 或者 configsid.ora,更新CONTROL_FILES以反映最新的控制文件位置

6、启动数据库

事件6:丢失全部的控制文件

可以采用以下的步骤恢复:

1、关闭数据库

2、进行一次全数据库备份,包括全部的数据文件和redo log文件

3、以NOMOUNT的状态启动数据库

4、使用CREATE CONTROLFILE重新创建控制文件、你也可以备份控制文件到一个trace文件,然后执行该文件

5、在数据库上进行媒体恢复

6、打开数据库

7、使用shutdown normal关闭数据库

8、对数据库进行一次冷备份

事件7:丢失一个索引

最简单的方法就是重新创建丢失的索引

事件8:丢失一个非活动的redo log

如果丢失redo数据,恢复将是不完全的,必须重新创建涉及的表空间。要重新创建表空间,可以使用全的数据库导出,这样就可以很容易的导入数据并且重新创建该表空间的对象。可以使用以下的步骤来恢复:

1、通过Alter system来切换redo log文件

2、关闭数据库

3、startup mount数据库

4、离线删除涉及的数据文件

5、打开数据库

6、删除用户的表空间,包括其中的内容、

7、通过全数据库备份重新创建表空间和其中的对象

事件9:丢失活动的Redo log

如事件8讨论的一样,如果丢失了redo数据,恢复将是不完全的,必须重新创建涉及的表空间、可以采用以下的步骤恢复:

1、关闭数据库

2、startup mount数据库

3、离线删除涉及的数据文件

4、打开数据库

5、删除用户的表空间,包括其中的内容、

6、通过全数据库备份重新创建表空间和其中的对象

要注意的是活动的事务将会丢失

事件10:丢失存档的Redo log文件

如果存档的redo log文件丢失,应该马上进行一次冷备份、最好也进行一次全数据库导出、没有丢失的存档redo log文件的任何恢复都将是不完全的、

事件11:丢失活动的回滚段

这里指的是丢失一个回滚段的一个数据文件、这是一个危急的恢复过程,它主要是在于保存活动的事务。这里假定数据库已经起来,而你想保存当前运行的事务。要使用以下的恢复过程,数据库必须运行在archivelog模式下。

可以使用以下步骤恢复:

1、不要关闭数据库、对于这种事件,数据库启动比关闭更容易解决问题、

2、令属于该数据文件中的全部回滚段离线

3、删除全部离线的回滚段

4、在上面的第2步中,如果回滚段中有活动的事务,你将不能令它离线、可运行以下的查询来查看哪些事物是活动的:

如果上面的查询没有结果,那么所有的回滚段都是离线的,但是,如果上面的查询返回一行或者多行,并且其状态为PENDING OFFLINE,那么可检查这些回滚段的ACTIVE_TX列、带有0值的回滚段将很快会离线;但是,非0的值表示上面有活动的事务,它们需要被提交或者回滚、

5、处理活动的事务、执行以下的查询来查看哪些用户的事务被指派到该回滚段:

在知道哪些用户在"pending offline"的回滚段上有活动的事务后,可以要求他们提交或者回滚他们的事务,或者可以使用以下的命令杀掉它们的进程:

ALTER SYSTEM KILL SESSION 'sid, serial#';

6、在你处理完所有活动的事务后,执行以下的步骤:

丢弃表空间及其中的全部内容

重新创建回滚表空间

重新创建回滚段,并且令它们在线

[NextPage]

事件12:丢失全部的回滚段

在这种事件下,将丢失全部活动的事务,并且需要重新创建回滚段。这样大的问题可能是由于一个硬件问题造成的,可以采用以下的步骤恢复:

上一页

oracle重启数据库一般要多久,优化Oracle停机时间及数据库恢复相关推荐

  1. oracle重启一个节点集群,帮忙分析一例数据库两节点集群每隔几个月节点重启

    本帖最后由 鸣雏之叶1 于 2015-4-2 15:13 编辑 数据库版本:10204 操作系统版本:红帽4.7 64位 遇到一台双节点的rac,间隔几个月就会因为心跳原因导致某一个节点重启(随机), ...

  2. 电商数据库设计及架构优化实战(一) - 制定数据库开发规范

    2 准备工作 3 项目说明 4 数据库设计规范 5 数据库命名规范总结 6 数据库基础设计规范 总结 7 数据库索引设计规范 转载于:https://juejin.im/post/5c35af49e5 ...

  3. 关系型数据库的瓶颈 与 优化

    1. 数据库的分类 数据库大致可以分为两部分: 传统的关系型数据库, 如: MySQL, Oracle, SQLServer 以及 PostgreSQL; MySQL 是国内使用最广泛的数据库, Or ...

  4. 不停应用重启oracle数据库,此类情况下解决Oracle数据库重启的四种方案

    原题:Oracle数据库重启(内存参数numperm_global相关) 故障描述 Oracle数据库发生重启. 系统环境 AIX 6100-07-05-1228 Oracle 11g 故障分析 首先 ...

  5. 崔华 oracle简历,2013数据库大会:崔华-基于Oracle的SQL优化案例分析

    2013数据库大会:崔华-基于Oracle的SQL优化案例分析 崔华的新书即将出版,其数据库大会上的演讲也非常精彩,他的新书十分值得期待. 2013年中国数据库技术大会第二天的"Oracle ...

  6. 参数调整 新部署rac_详解Oracle数据库RAC架构性能优化--参数设置+优化设计

    概述 ORACLE RAC凭借其卓越的容错能力和可扩展性以及对应用透明的切换能力引领了数据库高可用架构的潮流,但在实际的生产环境中,出现的性能问题非常多,对数据库的稳定性产生很大的影响,有一些甚至影响 ...

  7. oracle cost小 比较慢,Oracle数据库中有关CBO优化的三个问题

    一.如何使用CostBased优化器优化查询操作? Oracle 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划.Co ...

  8. oracle停数据库服务器,优化Oracle停机时间及数据库恢复

    优化Oracle停机时间及数据库恢复 作者:网络 佚名 2006-02-22 00:00 评论 分享 [IT168 服务器学院]这里会讨论令Oracle停机时间最小化的步骤.各种形式的停机--计划的或 ...

  9. 优化Oracle数据库查询10个方法

    优化Oracle数据库查询10个方法: 网页制作中数据的查询是最主要的功能之一,其性能的好坏直接关系到网页的的运行效率.下面对Oracle数据库中大家不太注意的查询方法做一些总结. 第一个方法:利用连 ...

最新文章

  1. java中static方法的继承性
  2. Work Measurement - 1
  3. c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc
  4. Cloud for Customer work center的数据是如何从ABAP Netweaver返回给前端的
  5. java setrotation_如何使用Java库将文档转换为横向模式?
  6. php rewinddir(),PHP rewinddir() 函数 ——jQuery中文网
  7. linux之trap命令
  8. python使用opencv_教你快速使用OpenCV/Python/dlib進行眨眼檢測識別!
  9. VC下Debug 和Release 区别【转】
  10. data2vec!统一模态的新里程碑
  11. 《设计模式详解》创建型模式 - 单例模式
  12. C#笔记01 课程总论
  13. Flutter BuildOwner之dirty elements简析
  14. matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板
  15. 海报生成的Java方法
  16. 编写一个520表白网站并发布Web教程
  17. 大数据解决方案:Hadoop监控
  18. 关于XShell下载安装和连接Ubuntu(linux)
  19. 关于 SVN状态图标不显示的问题(只显示绿色钩匹配) 的解决方法
  20. Java8 JVM运行时数据区概述 (极其详细长文)

热门文章

  1. 使用 npm 命令查看某个 npm 开发包明细
  2. SAP Spartacus login 页面看不到 UI 控件的问题解决
  3. 如何在SAP Spartacus里捕捉感兴趣的事件
  4. SAP Spartacus 如何取得某个table字段对应的Angular Component
  5. 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作
  6. SAP OData Service group - get entity set
  7. Angular self study 5 - remove ng-app
  8. filter in Fiori HANA live report
  9. SAP OData 后台ETAG校验逻辑
  10. ABAP Code Inspector那些隐藏的功能,您都知道吗?