版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。控制文件损坏:控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。损坏单个控制文件:1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:svrmgrl>shutdow
2、 n immediate;2. 查看初始化文件$ORACLE_BASE/admi n/pfile/i ni tORCL.ora,确定所有控制文件的路径。3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。4. 用下面的命令重新启动数据库:svrmgrl>startup;5. 用适当的方法进行数据库全备份。损坏所有的控制文件:1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:svrmgrl>shutdow n immediate;2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份
3、的点用相应的rman脚本来恢复最近的控制文件。3. 用下面的命令来创建产生数据库控制文件的脚本:svrmgrl>startup mount;svrmgrl>alter database backup con trolfile to trace no resetlogs;修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql.Trace文件的具体路径可以在执行完第3)步操作后查看$ORACLE_BASE/admi n/bdump/alert_ORCL.ora 文
4、件来确定。4. 用下面命令重新创建控制文件:svrmgrl>shutdow n abort;svrmgrl>startup no mou nt;svrmgrl>createc on trol.sql;5. 用适当的方法进行数据库全备份。重做日志文件损坏:数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致 数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch 中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做
5、日志成员损坏的情 况。确定损坏的重做日志的位置及其状态: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状态为In active :表示重做日志文件处于非激活状态;Active :表示重做日志文件处于激活状态;C
6、urrent :表示是重做日志为当前正在使用的日志文件损坏的日志文件处于非激活状态:1.删除相应的日志组:svrmgrl>alter database drop logfile group group_ number;2. 重新创建相应的日志组:svrmgrl>alter database add log file group group number ('log file descritpi on size log_file_size;损坏的日志文件处于激活状态且为非当前日志:1. 清除相应的日志组:svrmgrl>alter database clear un a
7、rchived logfile group group_ number;损坏的日志文件为当前活动日志文件:用命令清除相应的日志组:svrmgrl>alter database clear un archived logfile group group_ number;如果清除失败,则只能做基于时间点的不完全恢复。打开数据库并且用适当的方法进行数据库全备份:svrmgrl>alter database ope n;部分数据文件损坏:若损坏的数据文件属于非system表空间,则数据库仍然可以处于打开状态可以进行操作,只是损坏的数据文件不能访问。这时在数据库打开状态下可以单独对损坏的数据
8、文件进行恢复。若是system表空间的数据文件损坏则数据库系统会异常终止。这时数据库只能以Mount方式打开,然后再对数据文件进行恢复。可以通过查看数据库日志文件来判断当前损坏的数据文件到底是否属于 system 表空间。非system表空间的数据文件损坏1. 确定损坏的文件名字:INVALIDsvrmgrl>select n ame from v$datafile where status=2. 将损坏的数据文件处于offli ne 状态:svrmgrl>alter database datafile' datafile_name ' offline;3. 从相应
9、的备份结果集中恢复关于这个数据文件的最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。4恢复数据文件:svrmgrl>alter database recover datafile' file_name '5. 使数据库文件online :svrmgrl>alter database datafile' datafile_name ' online;6. 用适当的方法进行数据库全备份。system表空间的数据文件损坏:1. 以mount方式启动数据库svrmgrl>startup mount
10、;2. 从相应的备份结果集中恢复关于这个数据文件的最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。3. 恢复system表空间:datafile namesvrmgrl>alter database recover datafile4. 打开数据库:svrmgrl>alter database ope n;5. 用适当的方法进行数据库全备份。表空间损坏:若非system表空间已经损坏,则数据库仍然可以处于打开状态可以进行操作,只是损坏的表空间不能访问。这样在数据库打开状态下可以单独对损坏的表空间进行恢复。若是system表下只
11、能对数据库进行恢复。若数据库的归档目录也已经丢失,则数据库不可能做完全恢复, 会有复。可以通过查看数据库日志文件来判断当前损坏的表空间是否是system表空间.非system表空间损坏:1. 将损坏的表空间处于offline状态:svrmgrl>alter tablespace' tablespace_name ' offline;2. 从相应的备份结果集中恢复关于这个表空间最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。3恢复表空间:svrmgrl>alter database recover tablesp
12、ace' tablespace_name '4. 使表空间 online :svrmgrl>alter tablespace' tablespace_name ' online;5. 用适当的方法进行数据库全备份.system表空间损坏:1. 以mount方式启动数据库svrmgrl>startup mount;2. 从相应的备份结果集中恢复system表空间最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。3. 恢复system表空间:svrmgrl>alter database reco
13、ver tablespace system;4. 打开数据库:svrmgrl>alter database ope n;5. 用适当的方法进行数据库全备份。整个数据库的所有文件损坏:这种情况整个数据库所有文件的损坏一般是在共享磁盘阵列发生无法恢复的灾难时才发生, 用户数据的丢失。没采用带库备份的现场:1. 将最近的备份从磁带上把各个文件解包到相应的目录下。2. 以mount方式打开数据库:svrmgrl>startup mount;3恢复数据库:svrmgrl>recover database un til can cel;4. 打开数据库:svrmgrl>alter
14、database ope n resetlogs;5. 用适当的方法进行数据库全备份。采用带库备份的现场:1. 以nomount方式打开数据库:svrmgrl>startup no mou nt;2. 通过相应的rman脚本进行数据库软恢复。$rma n cmdfile=hot_database_restore.rcv3. 打开数据库:svrmgrl>alter database ope n resetlogs;4. 用适当的方法进行数据库全备份。存在最近的数据库完整冷备份前提下的一些经典紧急情况的处理: 数据文件,归档重作日志和控制文件同时丢失或损坏:无新增archives时的状
15、况:条件和假设:自上次镜像备份以来尚未生成新的archive log(s); Archivelog Mode;有同步的datafile(s) 和control file(s)的镜像(冷)拷贝恢复步骤:1. 将镜像拷贝的 datafile(s) 和control file(s)抄送回原始地点:$ cp /backup/good_ on e.dbf /orig_loc/bad_ on e.dbf$ cp /backup/control1.ctl /disk1/control1.ctl2. 以mount选项启动数据库:$ svrmgrlsvrmgrl> conn ect in ter nals
16、vrmgrlstartup mount3. 以旧的control file来恢复数据库:svrmgrlrecover database using backup con trolfile un til can cel;*介质恢复完成(必须马上 can cel )4. Reset the logfiles(对启动而言不可省略):svrmgrl> alter database ope n resetlogs;5. 关闭数据库并做一次全库冷备份。新增archives 时的状况:条件和假设:自上次镜像备份以来已经生成新的archive log(s); Archivelog Mode;有同步的 d
17、atafile(s) 和 control file(s)的镜像(冷)拷贝; archive log(s) 可用。恢复步骤:1. 如果数据库尚未关闭,则首先把它关闭:$ svrmgrlsvrmgrl> conn ect in ter nalsvrmgrlshutdow n abort2. 将备份文件抄送回原始地点:所有 Database Files所有 Control Files (没有 archive(s) 或 redo(s)的情况下,control files何意义)所有 On-Line Redo Logs (Not archives)in it.ora file(选项)3. 启动数据
18、库:$ svrmgrlsvrmgrl> conn ect in ter nalsvrmgrl> startup数据文件,重作日志和控制文件同时丢失或损坏:条件和假设:Archivelog Mode;有同步的所有所失文件的镜像(冷)拷贝;可用恢复步骤(必须采用不完全恢复的手法):1. 如果数据库尚未关闭,则首先把它关闭:$ svrmgrlsvrmgrl> conn ect in ter nalsvrmgrl> shutdow n abort2. 将备份文件抄送回原始地点:的更新无任archive log(s)所有 Database Files$ svrmgrlarchiv
19、es的冷拷贝;所有 Control Files所有 On-Line Redo Logs(Not archives)in it.ora file(选项)3. 启动数据库然而并不打开:svrmgrl>startup mount4. 做不完全数据库恢复,应用所有从上次镜像(冷)备份始积累起来的svrmgrl> recover database un til can cel using backup con trolfile;can cel5. Reset the logfiles(对启动而言不可省略):svrmgrl> alter database ope n resetlogs;
20、6. 关闭数据库并做一次全库冷备份。数据文件和控制文件同时丢失或损坏:条件和假设: Archivelog Mode; 有同步的 datafile(s) 和 control file(s) archive log(s) 可用恢复步骤:1. 将冷拷贝的 datafiles(s)和control file(s)抄送回原始地点:$ cp /backup/good_ on e.dbf /orig_loc/bad_ on e.dbf$ cp /backup/control1.ctl /disk1/control1.ctl2. 以mount选项启动数据库:svrmgrl> conn ect in te
21、r nal svrmgrl> startup mount3. 以旧的control file来恢复数据库:svrmgrl> recover database un til can cel using backup con trolfile;*介质恢复完成(须在应用完最后一个archive log 后can cel )4. Reset the logfiles(对启动而言不可省略):svrmgrl> alter database ope n resetlogs;重作日志和控制文件同时丢失或损坏时:的镜条件和假设:Control Files 全部丢失或损坏; Archivelog
22、 Mode; 有 Control Files像(冷)拷贝。恢复步骤:1. 如果数据库尚未关闭,则首先把它关闭:$ svrmgrlsvrmgrl> conn ect in ter nalsvrmgrl> shutdow n abort svrmgrl>exit2. 以Control File的镜像(冷)拷贝覆盖损坏了的Control File: $ cp /backup/c on trol1.ctl /disk1/c on trol1.ctl启动数据库然而并不打开:$ svrmgrlsvrmgrl> conn ect in ter nalsvrmgrl> start
23、up mount3. Drop 坏掉的redo log(排除硬件故障):svrmgrl> alter database drop logfile group 2;4. 重新创建 redo log:svrmgrl> alter database add logfile group 2 7orig loc/log2.dbf' size 10M;5. 以旧的control file来恢复数据库:svrmgrl> recover database un til can cel using backup con trolfile;(必须马上 can cel )6. Reset
24、the logfiles(对启动而言不可省略):svrmgrl> alter database ope n resetlogs;7. 关闭数据库并做一次全库冷备份只发生归档重作日志丢失或损坏时:根据不同环境和情况,选择下述手段之一:a. 马上backup全部datafiles(如果系统采用一般热备份或RMAN热备份)b. 马上正常关闭数据库并进行冷备份(如果系统采用冷备份)c.冒险前进!不做备份而让数据库接着跑,直等到下一个备份周期再做备份。这是在赌数据库在下一个备份周期到来之前不会有需要恢复的错误发生。注意:冒险前进的选择:如果发生错误而需要数据库恢复,则最多只能恢复到岀问题archi
25、velog之前的操作现场。从另一个角度讲,archive log(s)出现问题时,数据库若不需要恢复则其本身并没有任何问题。Oracle逻辑结构故障的处理方法:逻辑结构的故障一般指由于人为的误操作而导致重要数据丢失的情况。在这种情况下数据库物理结构是完整的也是一致的。对于这种情况采取对原来数据库的全恢复是不合适的,我们一般采用三种方法来恢复用户数据。采用exp/imp工具来恢复用户数据:如果丢失的数据存在一个以前用exp命令的备份,则可以才用这种方式。1. 在数据库内创建一个临时用户:svrmgrl>create user test_user identified by test;svr
26、mgrl>grant connect, resource to test_user;2. 从以前exp命令备份的文件中把丢失数据的表按照用户方式倒入测试用户:$impsystem/ma nagerfile=export_file_ nametables=(lost_data_table_ name)fromuser=lost_data_table_ow ner touser=test_user con stra int=n;3. 用相应的DML语句将丢失的数据从测试用户恢复到原用户。4. 将测试用户删除:svrmgrl>drop user test_user cascede;采用l
27、ogminer来恢复用户数据:Logminer是oracle提供的一个日志分析工具。它可以根据数据字典对在线联机日志、归档日志进行分析,从而可以获得数据库的各种DML操作的历史记录以及各种DML操作的回退信息。根据这些用户就可以将由于误操作而丢失的数据重新加入数据库内。1. 确认数据库的utl_file_dir参数已经设置,如果没有则需要把这个参数加入oracle的初始化参数文件,然后重新启动数据库。下面例子中假设 utl_file_dir= ' /opt/oracle/db01 ';2. 创建logminer所需要的数据字典信息,假设生成的数据字典文本文件为dict.ora
28、:svrmgrl>executedbms_logm nr_d.build(dictio nary_file name=>'dict.ora',dictionary_location=>7opt/oracle/db01');3. 确定所需要分析的日志或者归档日志的范围。这可以根据用户误操作的时间来确定大概的日志范围。假设用户误操作时可能的日志文件为/opt/oracle/db02/oradata/ORCL/redo3.log和归档日志'/opt/oracle/arch/orcl/orclarc_1_113.ora'。4. 创建要分析的日志文件列表,按日志文件的先后顺序依次加入:svrmgrl>executedbms_logm nr.addo gfile(logfile name=>/opt/oracle/arch/orcl/orclarc_1_113.ora' , options=>dbms_logmnr.NEW);svrmgrl>executedbms_logm nr.add_logfile(logfile name=>/opt/ora
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度月嫂服务与母婴用品配送合同3篇
- 系统工程课程设计优化
- 2024年汽车销售合同担保模板附车辆检测及评估服务3篇
- 2024年茶园管理与养护全面合作协议
- 2024年股权转移及合作经营授权协议一
- 2024年矿产资源勘探与开采合同标的及矿产质量
- 2024年地铁口商铺租赁合同规范文本正范本8篇
- 电气自动化课程设计
- 扬州大学档案学课程设计
- 立交桥项目融资课程设计
- 2023上海初三语文一模试题记叙文阅读汇编(15区含答案)
- 山东大学《高级语言程序设计》2022-2023学年期末试卷
- 智能阳台种菜项目计划书
- 《微机系统与汇编语言》-课程设计-实时时钟的设计与实现
- 广东省深圳市龙岗区2023-2024学年四年级上学期期末数学试卷+
- 安全标准化示范班组建设汇报
- 智能电网建设与发展趋势
- 华为公司管理层选拔机制解析
- 005独立避雷针基础施工方案
- 第三方代付工程款协议书范本
- 外研版英语九年级上册 Module1-12作文范文
评论
0/150
提交评论