oracle停机时间优化与数据库恢复
这里讨论了最小化Oracle停机时间的步骤。所有的停机时间——计划的或未计划的——总是发生。DBA应该有正确的备份策略,以便在数据库出现故障时能更快地恢复。
以下是备份策略的假设和数据库的操作条件
控制文件被镜像。
数据库运行在ARCHIVELOG模式
每星期做一次冷备份。
每日热备份
每天都进行一次完整的数据库导出。
事件1:完整的数据库重构
在这种情况下,您可以使用完整的数据库导出或冷备份和热备份的组合对数据库进行重构。重要的是要注意,无论您选择哪种方式,联机重做日志中的事务都将丢失。
事件2:恢复表空间的一部分
可以使用以下步骤恢复:
1。以限制模式启动数据库
2。重新创建表空间
3,使用最新的完整数据库来指导导入,并使用忽略选项;
4。在正常模式下关闭并重新启动数据库实例
事件3:一般数据文件的丢失
缺少一般数据文件的恢复步骤取决于缺少的数据文件中包含的表空间的类型;例如,回滚段、用户表空间、索引表空间或只读表空间,可能会遇到以下错误。
尝试启动数据库并得到错误的信息ora-1157,ora-1110,并有可能是一个操作系统错误
尝试与正常或直接模式可能遇到的ora-1116关闭数据库,ora-1110错误信息,以及系统误差。
以下步骤可以用作恢复:
1。关闭数据库
2。从热备份中恢复丢失的数据文件
3,启动挂载数据库
4,执行下面的查询以获取所有联机重做日志文件及其相应的顺序和第一个修改号:
5。如果得到的变化#小于最小first_change #在线重做日志文件,并不能完全恢复,你可以有两种选择:
如果您能够接受自上次冷备份以来丢失的数据库修改,请加载备份并继续恢复。
如果不能接受对丢失数据库的修改,则必须重新创建表空间。
6。使用归档和联机重做日志还原数据文件
7。打开数据库
{分页}
事件4:还原特殊表
可以使用以下步骤恢复:
1。使用最新的完整数据库来引导导入表,并使用所有者=和表=的选项
2。考虑到性能的原因,您可能需要重建表索引。
事件5:丢失控制文件
在数据库的建立和运行,通常无法检测到控制文件的问题,如果控制文件丢失或损坏,Oracle不会理解,会导致ora-205错误下次启动数据库时(识别控制文件%s的错误),和一个系统级错误,
如果只有一个控制文件丢失,可以使用以下步骤恢复:
1。如果它在运行,先关掉它。
2。要找出丢失控制文件的原因,是因为硬件问题(磁盘或控制器)吗
三.如果不是硬件问题,则将控制文件的一个良好副本复制到丢失的位置并跳转到步骤5。
4。如果是硬件问题,将一个好的控制文件复制到一个可靠的位置。
5,修改初始化参数或configsid.ora,control_files更新以反映最新的控制文件的位置
6。启动数据库
事件6:丢失所有控制文件
可以使用以下步骤恢复:
1。关闭数据库
2。进行完整的数据库备份,包括所有的数据文件和重做日志文件。
三.在安装状态下启动数据库
4、使用文件重新创建控制文件,你还可以备份控制文件到一个文件中,然后执行文件
5。数据库上的媒体恢复
6。打开数据库
7、关闭数据库正常关闭
8。数据库的冷备份
事件7:索引丢失
最简单的方法是重新创建丢失的索引。
事件8:非活动重做日志的丢失
如果重做数据丢失,恢复将是不完整的,所涉及的表空间必须重新创建。要重新创建表空间,可以使用完整的数据库导出,以便您可以轻松地导入数据并重新创建表空间的对象:
1、通过变更系统切换重做日志文件
2。关闭数据库
3,启动挂载数据库
4、脱机删除涉及的数据文件
5。打开数据库
6。删除用户的表空间,包括内容,
7。通过完整的数据库备份重新创建表空间和表空间中的对象
U3000
事件9:丢失活动的重做日志
如事件8中所讨论的,如果重做数据丢失,则恢复将不完整。我们必须重新创建相关的表空间,我们可以采取以下步骤来恢复。
1。关闭数据库
2,启动挂载数据库
3、脱机删除涉及的数据文件
4。打开数据库
5。删除用户的表空间,包括内容,
6。通过完整的数据库备份重新创建表空间和表空间中的对象
重要的是要注意活动的活动将丢失。
事件10:丢失的归档重做日志文件
如果归档重做日志文件丢失,则应立即执行冷备份,最好是完整的数据库导出。没有丢失的归档重做日志文件的任何恢复都将是不完整的。
事件11:丢失活动的回滚段
这是指一个数据文件丢失,回滚段中,这是一个关键的恢复过程,主要是节约交易的活动。它假定数据库已经起来了,你想保存当前运行的事务。使用后的恢复过程中,数据库必须运行在归档模式模式。
可以使用以下步骤恢复:
1。不要关闭数据库。对于这个事件,数据库启动比关闭更容易解决。
2。属于数据文件的所有回滚段都是脱机的。
三.删除所有脱机回滚段
4,在上面的第二步中,如果回滚部分中有活动事务,则不能使其脱机,并运行以下查询以查看哪些活动是活动的。
如果上面的查询没有结果,则回滚段都是离线的,但如果返回一个或多个列的查询,和它的状态是在离线时,您可以检查active_tx柱,与回滚回滚段0值即将下线;然而,没有0以上是活跃的交易的价值,他们需要被提交或回滚,
5。处理活动事务并执行以下查询,以查看哪个用户的事务被分配到回滚段中:
在知道哪些用户在挂起离线的回滚段上有活动事务之后
改变系统杀死session'sid,串行#;
6。完成所有的活动之后,遵循以下步骤:
丢弃表空间及其全部内容
重新创建回滚表空间
重新创建回滚段并使其联机
{分页}
事件12:丢失所有回滚段
在这个事件中,所有的活动都将丢失,回滚部分需要重新创建:
下一页Oracle教程,将在{ 1 } { 2 }下一页看到,它将优化Oracle停机时间和数据库恢复。
1。关闭数据库
2。使用DBVERIFY验证所有数据文件
三.解决其他硬件问题或数据文件损坏。
4,以启动挂载的方式启动数据库实例
5。在数据库上执行媒体恢复
U3000
6。打开数据库
7。根据需要创建一个新的回滚段
事件13:导出文件损坏
如果不能使用导出文件,则数据库应该是冷备份和完整数据库导出。假设数据库本身没有问题。如果数据库损坏,则应采取以下步骤:
1、ora-1157错误信息通常表明一个或多个数据文件已损坏。找出哪些表都受到影响,他们应该在数据表错误消息中指定的文件
2。跳过坏数据块,从表中选择数据到临时表,
三.丢弃损坏的表
4。将临时表重命名为已丢弃的表
5。在受影响的表上重新建立所有索引
6,使用验证结构级联的选项来分析所有损坏的表
重要的是要注意,受损块中的数据将丢失,无法恢复。
事件14:在热备份时关闭机器
如果你在一个热备份突然关闭,其中一些将在表空间备份模式,当您尝试打开的数据库,它将只安装,并指出一些表空间处于热备用方式,因为数据库不能打开,你将不能够让热表空间备份模式,您可以使用以下步骤来恢复:
1,启动挂载数据库
2,查询v $备份以查看哪些数据文件处于活动状态,
3、将数据文件从备份模式使用命令修改数据库备份数据文件结束。
4。打开数据库
事件15:还原到特定的时间点
可以使用以下步骤执行点对点恢复
1。关闭数据库实例
2。在安装状态启动数据库实例
3,使用选项直到恢复数据库
4。打开数据库
5、关机正常
6。启动数据库实例
事件16:返回特定事件或活动
可以使用以下步骤恢复:
1。关闭数据库实例
2、通过安装状态下启动数据库实例;
3,使用直到取消还原数据库,并提供归档重做日志文件请求,直到活动事件
4,输入取消取消恢复
5。打开数据库;
6。使用正常模式关闭数据库
7。启动数据库实例
结论
U3000
高可用性对于任何业务都是非常重要的。Oracle DBA可以制定一些计划来减少停机时间。本文讨论了实现这一目标的不同策略。
上一页
{ 1 } { 2 }的最后一页