1参数文件对于参数文件,启动根据如下顺序查找参数文件,先查找spfileORACLE_SID.ora,然后查找initORALCE_SID.ora,若两者均查找不到,则无法创建和启动instance。确认当前使用的是spfile/pfile可通过sql语句查询(showparameterspfile)一般情况下pfile保存在$ORACLE_HOME/dbs下,其中内容制定SPFILE位置,SPFILE保存在裸设备上,主被机共享。参数文件中保存数据库启动的初始参数,如控制文件位置等。SPfilePfile格式BinaryText编辑查看方式利用altersystem进行修改利用vim直接修改通过stringsSPfileORACLE_SID.ora|more查看缺省名称SPfileORACLE_SID.orainitORALCE_SID.ora默认路径/opt/oracle/app/oracle/product/11.2.0/db_1/dbs//opt/oracle/app/oracle/product/11.2.0/db_1/dbs/指定启动startupstartuppfile=initORALCE_SID.ora启动优先级高低1.1参数文件恢复:如果损坏或丢失,从其他机器拷贝一个initora01.ora到$ORACLE_HOME/dbs%sqlplus/assysdbaSQLstartuppfile=’?/dbs/initora01.ora’;2控制文件数据库启动到nomount状态后,可以查询v$parameter视图,获得控制文件信息,这部分信息来自启动的参数文件,oracle从参数文件spfile/pfile中获得控制文件的位置信息,找到控制文件,启动到MOUNT状态下,可以查询v$controlfile视图获得关于控制文件的信息,可以通过sql语句(select*fromv$controlfile;),数据库读取控制文件controlfile中的内容,并按照控制文件中指定的参数找到相应的数据文件,并启动数据库的归档或非归档状态。控制文件中包含的内容数据库的名字、ID、创建的时间戳表空间的名字联机日志文件、数据文件的位置、个数、名字联机日志的Sequence号码检查点的信息撤销段的开始或结束归档信息备份信息2.1控制文件恢复:损坏或丢失部分控制文件:SQLshutdownimmediate;SQLstartupnomount;修改数据库控制文件,将坏的那个排除在外:SQLaltersystemsetcontrol_files='+DG_ORA/ora11g/control02.ctl','+DG_ORA/ora11g/control03.ctl'scope=spfile;SQLalterdatabaseopen;损坏或丢失全部控制文件:(获取恢复脚本SQLalterdatabasebackupcontrolfiletotrace;)STARTUPNOMOUNTCREATECONTROLFILEREUSEDATABASEORA11GNORESETLOGSFORCELOGGINGARCHIVELOGMAXLOGFILES200MAXLOGMEMBERS3MAXDATAFILES1024MAXINSTANCES8MAXLOGHISTORY2920LOGFILEGROUP1'+DG_ORA/ora11g/ora_redo01_1'SIZE1000MBLOCKSIZE512,GROUP2'+DG_ORA/ora11g/ora_redo02_2'SIZE1000MBLOCKSIZE512,GROUP3'+DG_ORA/ora11g/ora_redo03_3'SIZE1000MBLOCKSIZE512,GROUP4'+DG_ORA/ora11g/ora_redo04_4'SIZE1000MBLOCKSIZE512,GROUP5'+DG_ORA/ora11g/ora_redo05_5'SIZE1000MBLOCKSIZE512,GROUP6'+DG_ORA/ora11g/ora_redo06_6'SIZE1000MBLOCKSIZE512DATAFILE'+DG_ORA/ora11g/ora_system','+DG_ORA/ora11g/ora_sysaux01','+DG_ORA/ora11g/ora_rbs01','+DG_ORA/ora11g/ora_user','+DG_DATA/drora11g/datafile/scudatatbs.267.843549685','+DG_DATA/drora11g/datafile/scudatatbs_add1','+DG_DATA/drora11g/datafile/scudatatbs_add2','+DG_DATA/drora11g/datafile/scudatatbs_add3','+DG_DATA/drora11g/datafile/scudatatbs_add4','+DG_DATA/drora11g/datafile/scudatatbs_add5','+DG_DATA/drora11g/datafile/scudatatbs_add6','+DG_DATA/drora11g/datafile/scudatatbs_add7','+DG_DATA/drora11g/datafile/scudatatbs_add8','+DG_DATA/drora11g/datafile/scudatatbs_add9'CHARACTERSETAL32UTF8;RECOVERDATABASEALTERSYSTEMARCHIVELOGALL;ALTERDATABASEOPEN;ALTERTABLESPACETEMPADDTEMPFILE'+DG_ORA/ora11g/ora_temp01'SIZE10240MREUSEAUTOEXTENDOFF;3数据文件3.1数据文件恢复:SQLselect*fromv$recover_file;7OFFLINEOFFLINE31471989023/7/20142:31:33AM8OFFLINEOFFLINE31471989023/7/20142:31:33AMrmantarget/nocatalogRMANrestoredatafile7;RMANrecoverdatafile7;RMANsql'alterdatabasedatafile7online';rmantarget/nocatalogRMANrestoredatafile8;RMANrecoverdatafile8;RMANsql'alterdatabasedatafile8online';4重做日志文件redo主要由三部分组成,redologbuffer,LGWR进程,以及redologfile三部分组成。1,redologbuffer是一块可重用的区域,大小可以设定,2,logfile是由一个不能少于2个group组成,每个group不少于1个member成员,当一个group中的member成员同时写满后,就会自动切换到下一个group,也可以用手工强行切换3,当在归档模式时,logfile就会自行写入archivelogfile,当如果运行在非归档模式时,logfile就会被循环覆盖掉.也就是以前的logfile会丢弃掉.4.1重做日志文件恢复:非当前redolog恢复:selectgroup#,thread#,sequence#,archived,statusfromv$log;GROUP#THREAD#SEQUENCE#ARCSTATUS-------------------------------------------------114492NOINACTIVE214493NOINACTIVE314494NOINACTIVE414495NOINACTIVE514496NOINACTIVE614497NOINACTIVE714498NOCURRENT814487NOINACTIVE发现误删的redo文件不是当前redo日志,使用如下方法恢复:alterdatabaseclearunarchivedlogfilegroup1;alterdatabaseclearunarchivedlogfilegroup2;alterdatabaseclearunarchivedlogfilegroup3;alterdatabaseclearunarchivedlogfilegroup8;当前redolog恢复:Current_Redo_log损坏后恢复数据库.docx