技术开发 频道

优化Oracle停机时间及数据库恢复

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

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

    1、关闭数据库

    2、使用DBVERIFY验证全部的数据文件

    3、解决其它的硬件问题或者数据文件损坏

    4、以startup mount的方式启动数据库实例

    5、在数据库上执行媒体恢复
     
    6、打开数据库

    7、按需要创建新的回滚段

    事件13:导出文件损坏

    如果导出文件不能用了,那么应该冷备份数据库并且进行一个全的数据库导出、这是假定数据库自身没有问题、如果数据库也损坏了,那么应该执行以下的步骤:

    1、ORA-1157错误信息通常都表示一个或者多个的数据文件损坏了。查明哪些表受到影响,它们应该是错误信息中指明的数据文件中的表格

    2、跳过坏的数据块,将数据由表格中选择到临时表格中、

    3、丢弃损坏的表

    4、将临时表重命名为丢弃的表

    5、重新建立受影响表上的全部索引

    6、使用VALIDATE STRUCTURE CASCADE的选项来分析全部损坏的表

    要注意的是损坏块中数据将会丢失并且不能恢复

    事件14:在热备份时关机

    如果在热备份正在进行的时候突然关机,其中的一些表空间将可能处在备份模式、当你尝试打开数据库时,它将只能mount,并且指示某些表空间处于热备份模式、由于数据库不能打开,你将不能让表空间脱离热备份模式、你可以使用以下的步骤恢复:

    1、startup mount数据库

    2、查询v$backup以查看哪些数据文件处于ACTIVE状态、

    3、通过使用命令ALTER DATABASE DATAFILE END BACKUP.来将这些数据文件脱离备份模式

    4、打开数据库

    事件15:恢复到某个特别的时间点

    以下的步骤可用来执行point-in-time恢复

    1、关闭数据库实例

    2、以NOMOUNT的状态启动数据库实例

    3、使用UNTIL的选项来恢复数据库

    4、打开数据库

    5、Shutdown NORMAL

    6、启动数据库实例

    事件16:恢复到一个特别的事件或者活动

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

    1、关闭数据库实例

    2、以NOMOUNT状态启动数据库实例;

    3、使用UNTIL CANCEL来恢复数据库,提供存档的redo log文件请求直到该活动/事件为止

    4、输入CANCEL来取消恢复

    5、打开数据库;

    6、使用NORMAL的模式来关闭数据库

    7、启动数据库实例

    结论

    高可用性对于任何的商业都是很重要的,ORACLE DBA可以通过一些计划以确保停机时间最小化、这篇文章讨论了不同的策略可以达到这个目的。

0
相关文章