Oracle数据库系统紧急故障处理方法_oracle

正在看的ORACLE教程是:Oracle数据库系统紧急故障处理方法。
Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 

  控制文件损坏: 

  控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。 

  损坏单个控制文件: 

  1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: 

  svrmgrl>shutdown immediate; 

  2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 
 
  3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。 

  4. 用下面的命令重新启动数据库:

  svrmgrl>startup; 

  5. 用适当的方法进行数据库全备份。 

  损坏所有的控制文件: 

  1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: 

  svrmgrl>shutdown immediate; 

  2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的rman脚本来恢复最近的控制文件。 

  3. 用下面的命令来创建产生数据库控制文件的脚本: 

svrmgrl>startup mount; 

svrmgrl>alter database backup controlfile to trace noresetlogs; 

  4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 

  注意: 

  Trace文件的具体路径可以在执行完第3)步操作后查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。 

  5. 用下面命令重新创建控制文件: 

  svrmgrl>shutdown abort; 

  svrmgrl>startup nomount; 

  svrmgrl>@createcontrol.sql; 

  6. 用适当的方法进行数据库全备份。 

  重做日志文件损坏: 

  数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。 

  确定损坏的重做日志的位置及其状态: 

  1. 如果数据库处于可用状态: 

  select * from v$logfile; 

  svrmgrl>select * from v$log; 

  2. 如果数据库处于已经异常终止: 

  svrmlgr>startup mount; 
  svrmgrl>select * from v$logfile; 
  svrmgrl>select * from v$log; 

  其中,logfile的状态为INVALID表示这组日志文件出现已经损坏;log状态为Inactive:表示重做日志文件处于非激活状态;Active: 表示重做日志文件处于激活状态;Current:表示是重做日志为当前正在使用的日志文件。 

  损坏的日志文件处于非激活状态: 

  1. 删除相应的日志组: 

  svrmgrl>alter database drop logfile group group_number; 

  2. 重新创建相应的日志组: 

  svrmgrl>alter database add log file group group_number ('log_file_descritpion',…) size log_file_size; 

  损坏的日志文件处于激活状态且为非当前日志: 

  1. 清除相应的日志组: 

  svrmgrl>alter database clear unarchived logfile group group_number; 

  损坏的日志文件为当前活动日志文件: 

  用命令清除相应的日志组: 

  svrmgrl>alter database clear unarchived logfile group group_number; 

  如果清除失败,则只能做基于时间点的不完全恢复。 

  打开数据库并且用适当的方法进行数据库全备份: 

  svrmgrl>alter database open; 

[NextPage] 部分数据文件损坏: 

  若损坏的数据文件属于非system表空间,则数据库仍然可以处于打开状态可以进行操作,只是损坏的数据文件不能访问。这时在数据库打开状态下可以单独对损坏的数据文件进行恢复。若是system表空间的数据文件损坏则数据库系统会异常终止。这时数据库只能以Mount方式打开,然后再对数据文件进行恢复。可以通过查看数据库日志文件来判断当前损坏的数据文件到底是否属于system表空间。 

上一页    

时间: 2024-11-03 06:07:21

Oracle数据库系统紧急故障处理方法_oracle的相关文章

oracle数据库系统紧急故障处理方法

oracle|数据|数据库 Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障.这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起.所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题.在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理. 控制文件损坏:控制文件记录了关于oracle的重要配置信息,如数据库名.字符集名字.各个数据文件.日志文件的位置等等信息.控制文件的损坏,会导致数据库异常关闭.一旦缺少控制文件,数据库也无法启动,这是一种

oracle系统紧急故障处理方法

oracle Oracle物理结构故障的处理方法:Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障.这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起.所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题.在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理. 控制文件损坏:控制文件记录了关于oracle的重要配置信息,如数据库名.字符集名字.各个数据文件.日志文件的位置等等信息.控制文件的损坏,会导致数据库异常关闭.一旦缺少控制文件,数据

Oracle数据库系统调优方法

    Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显着下降的问题,为了解决这个问题,从以下几个方面:数据库服务器.网络I/O.应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能.    1 调整数据库服务器的性能    Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑:    1

Oracle数据库系统使用经验六则_oracle

正在看的ORACLE教程是:Oracle数据库系统使用经验六则. 1.having 子句的用法  having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列.  2.外部联接"+"的用法  外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前

oracle 存储过程加密的方法_oracle

配置环境: 1.数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版 2.安装路径:C:ORACLE 实现方法: 1.D:>set NLS_LANG=AMERICAN_AMERICA.USACII7 或 D:>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 D:>set 直接打set命令可以查看环境变量 2.在D:下创建a.sql文件,内容如下: Java代码 create or replace procedure test1(

Oracle最大日期获取方法_oracle

在开发应用中如何获取oracle的最大日期呢?本文将提供这样一个获取方法,需要的朋友可以参考下Sql代码 复制代码 代码如下: -- Created on 2010/06/08 by NAN declare -- Local variables here TYPE t_test IS TABLE OF DATE INDEX BY BINARY_INTEGER; v_test t_test; v_date DATE; BEGIN -- Test statements here v_test(1)

Excel导入oracle的几种方法_oracle

方法一.使用SQL*Loader这个是用的较多的方法,前提必须oracle数据中目的表已经存在.大体步骤如下:1.将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields terminated by ','),假设保存到c盘根目录. 2 .如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms. 3.用记事本创建SQL*Loader

oracle RETURNING 子句使用方法_oracle

RETURNING 自己通常结合DML 语句使用.(INSERT UPDATE DELETE) 使用方法: UPDATE table_name SET expr1 RETURNING column_name INTO xxx INSERT: 返回的是添加后的值 UPDATE:返回时更新后的值 DELETE:返回删除前的值 RETURNING 可以再sqlplus 和plsql中使用 如果是plsql就如上面的代码,xxx为声明的变量名 如果是sqlplus,xxx 可以为变量,即 VARIABL

oracle数据库冷备份的方法_oracle

冷备份是数据库文件的物理备份,通常在数据库通过一个shutdown normal或shutdown immediate 命令正常关闭后进行.当数据库关闭时,其使用的各个文件都可以进行备份.这些文件构成一个数据库关闭时的一个完整映像.冷备份通常要备份以下文件:所有数据文件所有控制文件所有联机重做日志初始化参数文件initsid.ora(可选)先执行以下SQL语句查看所有需要备份的文件: 复制代码 代码如下: SVRMGR> select * from v$datafile;SVRMGR> sel