版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle程序员面试分类模拟26简答题1.
在控制文件丢失且无备份的情况下如何恢复?正确答案:重建控制文件,在重建控制文件之前,需要使用包DBMS_BACKUP_RESTORE来抽取数据文件,其(江南博哥)实面试官主要想看求职者是否知道有这个包的存在而已。
2.
imp工具的ignore参数有什么作用?正确答案:Oracle在恢复数据的过程中,当恢复某个表时,如果该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore为Y时,则Oracle不执行CREATETABLE语句,直接将数据插入到表中。如果插入的记录违背了约束条件(例如主键约束),那么出错的记录不会插入,但合法的记录会添加到表中。若ignore为N时,则Oracle不执行CREATETABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表,默认值为N。
3.
数据泵中NETWORK_LINK选项的作用是什么?正确答案:数据泵expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端的。使用数据泵的NETWORK_LINK参数,可以在本地的数据库中创建一个指向远程数据库的DBLINK,在执行导出expdp时,指定NETWORK_LINK参数为DBLINK名称,就可以直接将远程数据库的数据导出到本地数据库里创建的DIRECTORY下。在执行导入命令impdp的时候也可以使用NETWORK_LNK参数。如果不想在源端或目标端生成dmp文件而直接将需要的数据导入目标端数据库,那么可以直接使用impdp带NETWORK_LINK参数,这样可以直接执行impdp从而绕过了expdp的步骤。
4.
在Undo表空间数据文件丢失的情况下如何恢复?正确答案:恢复大约可以分为3种情况:①有备份,这种情况下直接采用备份的文件进行恢复即可。②无备份但是有完整的归档文件存在,这种情况下可以使用命令“ALTERDATABASECREATEDATAFILE文件号AS'/u01/app/oracle/oradata/lhrdb/undotbs01.dbf'size50m;”来创建丢失的Undo文件,然后使用“RECOVERDATAFILE文件号;”进行恢复数据库文件即可。③无备份,归档文件丢失,在这种情况下的恢复比较复杂。首先应该切换Undo表空间到一个新建的Undo表空间中,并设置原有表空间的管理模式为手动管理模式,然后将隐含参数“OFFLINE_ROLLBACK_SEGMENTS”设置为TRUE,一些关键性的命令如下:
5.
RMAN可以跨版本或跨平台执行还原或复制命令吗?正确答案:一般会被问到,能使用更高版本的Oracle还原或复制旧版本的数据库吗?答案是可以跨高版本恢复,但是有很多限制条件,而且不支持RMAN复制(Duplicate),因为该功能会在恢复之后尝试自动打开数据库时失败。RMAN可将在较旧的数据库版本上进行的备份还原到较新的版本中,但是旧的备份必须是在9.2或更高版本的数据库中进行的。对于跨小版本的恢复很容易,例如从Oracle11.2.0.1恢复到11.2.0.3版本的数据库。可以依次还原SPFILE、控制文件和数据文件,然后恢复数据库,使用STARTUPUPGRADE命令打开数据库,最后一步是使用catupgrd.sql脚本对失效的对象进行编译即可。对于跨大版本的恢复有很多限制条件,例如从Oracle10.2.0.2恢复到11.2.0.3版本的数据库。恢复步骤和小版本一样,打开数据库的时候可以使用命令:“ALTERDATABASEOPENRESETLOGSUPGRADE;”。将Oracle10g恢复到Oracle11g上,需要满足2个条件,①必须在Oracle10g上先执行脚本“@?/rdbms/admin/utlu112i.sql”,然后再进行备份,否则RESTORE之后的升级将失败。②Oracle10g的版本必须大于10.2.0.2,即Oracle采用RMAN恢复到高版本的数据库依然要遵循Oracle数据库的升级流程图,如下图所示。
升级流程图
需要注意的是,与此相似的问题,还有如下几个:
1)MAN支持在两个不同的补工程序集之间进行还原或复制吗?答案是支持,该情况和上边介绍的RMAN的跨版本恢复是一样的。
2)RMAN支持在同一操作系统的不同版本之间进行还原或复制吗?答案是支持。
3)Oracle的位(bit)级别(32位或64位)不匹配时,可以进行还原或复制吗?在执行还原或恢复时,最好保持相同的位版本。但是,除使用复制命令(duplicate)外,使用相同的操作系统平台允许在Oracle位级别(32位或64位)之间进行还原和恢复。需要注意的是,这可能只适用于特定的操作系统,例如Windows、Linux。如果要使用32位软件运行64位数据库(或反之),那么在恢复结束之后必须要使用utlirp.sql脚本转换数据库位版本。如果不运行utlirp.sql脚本,那么将会出现错误“ORA-06553:PLS-801:INTERNALERROR[56319]”。
4)可以将更高版本的备份还原到较早版本的Oracle吗?例如,把数据库从10.2升级至11.2之后,在成功升级并在11.2上运行几天之后,并对11.2数据库进行了新的备份。这时,能否将11.2的备份集恢复到10.2版本的数据库中吗?答案是:如果在升级后从未增加COMPATIBLE参数,那么可以进行此类还原。在本例中,如果11.2数据库始终是在COMPATIBLE为10.2的情况下运行,那么可以将11.2数据库的备份还原到10.2实例中,然后再执行降级过程(ALTERDATABASEOPENRESETLOGSDOWNGRADE;)。如果数据库已经在COMPATIBLE为11.2的情况下打开,那么就不能进行此类还原。
5)可以在两个不同的平台之间还原或复制RMAN备份吗,例如Solaris到Linux?在通常情况下,不能在两个不同的平台之间进行还原或复制。在Oracle10g之前的版本中,从一个平台迁移至另一个平台的唯一方法是使用导出/导入。从OraclelOg开始,通过RMAN转换(convert)命令,使用10g跨平台可传输表空间(Cross-PlatformTransportableTablespaces)选项跨越各个平台。在Oracle10.2及更高版本中,如果源OS和目标OS具有相同的字节序(endian),那么可以使用“CONVERTDATABASE”命令转换数据文件并使其准备好传输到目标OS。
6.
如何彻底停止expdp进程?正确答案:许多同事在使用expdp命令时,不小心按了〈CTRL+C〉组合键,然后又输入exit命令(或者网络中断等异常情况),导致expdp进程不存在,但Oracle数据库的会话仍存在,所以dmp文件也一直在增长。在这种情况下的处理办法如下:
1)检查expdp进程是否还在:
若存在,则可用“kill-9process”命令结束(杀掉)expdp的进程。
2)检查会话是否仍存在,若存在则把相关的会话杀掉(注意:先使用命令“ALTERSYSTEMKILLSESSIONSID,SERIAL#IMMEDIATE;”在数据库级别结束(杀掉)会话,然后在OS级别使用kill.9结束(杀掉)进程),如无结束会话的权限则可以将相关的表DROP掉,表名可以使用如下的SQL来查询:
例如:
使用相同的办法也删除从视图DBA_DATAPUMP_JOBS中查询出来的表,直到这两个视图无记录。
3)删除导出的dmp文件。如不删除,则在重新执行expdp命令时会报dmp文件已存在的错误。
7.
如何跟踪expdp和SQL*Plus命令?正确答案:可以使用trace选项来跟踪expdp命令,如下:
若想跟踪exp命令的话,可以使用操作系统命令strace,如下:
操作系统命令strace也可以跟踪SQL*Plus命令,跟踪的命令很简单:
Unix系统下跟踪SQL*Plus命令使用truss命令,如下:
8.
如何查询RMAN的配置信息?正确答案:通过视图V$RMAN_CONFIGURATION可以查询其配置信息或在RMAN中使用SHOWALL命令查看。
9.
如何查询RMAN的所有备份信息?正确答案:可以通过视图V$BACKUP_SET、V$BACKUP_FILES、V$BACKUP_DATAFILE、V$BACKUP_PIECE、V$BACKUP_ARCHIVELOG_DETAILS、V$BACKUPSPFILE和V$BACKUP_CONTROLFILE_DETAILS关联查询得到RMAN的所有备份信息。
10.
在RMAN的备份中如何列出1430到1437之间的归档日志?正确答案:可以使用LIST命令,如下:
若要列出当前数据库的所有归档日志,可以使用如下命令:
11.
RESETLOGS和NORESETLOGS的区别是什么?正确答案:RESETLOGS和NORESETLOGS主要用在两个地方,第一是在创建控制文件的时候,第二是在打开数据库的时候。当将控制文件备份到TRACE文件时,可以看到里面包含了两部分的重建语句,一个是使用RESETLOGS,另一个是使用NORESETLOGS。
备份控制文件的SQL如下:
以下是重建控制文件的命令:
若当前的所有在线日志可用,则在创建控制文件的时候使用NORESETLOGS。若当前的在线日志有所损坏时,则在创建控制文件的时候需要使用RESETLOGS。若使用RESETLOGS则将导致在线日志里的内容丢失,并且所有的备份失效。
在打开数据库的时候也可以使用RESETLOGS或NOR_ESETLOGS选项。在做了不完全恢复后,RESETLOGS会初始化日志,重置日志序列号(从1开始),并且创建一个新的INCARNATION。可以使用RMAN命令查看INCARNATION的信息:
做不完全恢复必须使用RESETLOGS,但是RESETLOGS也可以做完全恢复。而NORESETLOGS则必须是在做完全恢复时使用。RESETLOGS会重置日志序列号,强制清空或重建在线日志,而NORESETLOGS则不会这么做。
12.
数据库恢复过程有什么流程吗?正确答案:基本过程是,参数文件(PFILE、SPFILE)→控制文件→还原数据文件→恢复数据文件→打开数据库,详细过程可以参考随书提供的pdf里的附录中的Oracle恢复流程图。
13.
不同版本的数据库如何进行导出导入(exp、imp)操作?正确答案:导出用低版本,导入用当前版本。如果版本跨越太大,需要用到中间版本过渡。
14.
如何备份控制文件?正确答案:备份控制文件可以在线进行,如备份为一个二进制的文件:
备份为文本文件方式:
RMAN备份控制文件:
设置RMAN自动备份控制文件:
15.
如果控制文件损坏如何恢复?正确答案:如果控制文件有多个,而只损坏了单个控制文件,那么只需要关闭数据库,拷贝其他好的控制文件覆盖掉坏的控制文件即可。也可以修改参数文件,只保留1个控制文件。如果损坏了全部控制文件,那么需要重新创建控制文件或从备份恢复。重新创建控制文件的脚本可以通过命令“ALTERDATABASEBACKUPCONTROLFILETOTRACE;”获取。
16.
如果丢失一个数据文件而且没有备份,也没有归档日志,那么应该如何打开数据库?正确答案:如果没有备份只能是删除这个数据文件了,会导致相应的数据丢失。
ARCHIVELOG模式命令:
NOARCHIVELOG模式命令:
注意:该数据文件不能是系统数据文件。
17.
如果丢失一个数据文件而且没有备份但是有该数据文件创建以来的归档日志怎么恢复?正确答案:若丢失的文件不是系统数据文件而且控制文件完好无损,则可以如下恢复:
或者:
或者:
18.
如果联机Redo日志文件损坏,那么如何恢复?正确答案:联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失数据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像。需要注意的是,RMAN不能备份联机Redo日志文件。所以,联机Redo日志一旦出现故障,则只能进行清除日志了。清除日志文件即表明可以重用该文件。如果日志文件已经归档,那么可以使用:
如果该日志还没有归档,那么需要用:
如果是当前日志损坏,那么一般不能CLEAR,而且可能意味着丢失数据,一般情况下只能设置隐含参数“_ALLOW_RESETLOGS_CORRUPTION=TRUE”来进行强制执行不完全恢复了,但是,这样的方法是不建议的。
19.
如何在执行恢复的时候将数据文件恢复到别的路径?正确答案:主要采用命令“setnewnamefordatafile”和“switchdatafileall;”。
20.
怎么从备份片(BACKUPPIECE)中恢复(RESTORE)控制文件与数据文件?正确答案:可以使用如下方法,在RMAN中恢复备份片的控制文件:
如果是自动备份,可以采用如下的方法:
但是,如果控制文件全部丢失,需要指定DBID,命令为“SETDBID=?”。自动备份控制文件的默认格式是%F,这个格式的形式为“c-IIIIIIIIII-YYYYMMDD-QQ”,其中IIIIIIIIII就是DBID。可以采用包DBMS_BACKUP_RESTORE来恢复(RESTORE)数据文件,当然该包也可以用来恢复备份片中的控制文件。该包在NOMOUNT状态下就可以执行,如下:
21.
如何清除V$ARCHIVED_LOG视图中的过期信息?正确答案:在使用RMAN命令(DELETEARCHIVELOGALL;)删除归档信息后V$ARCHIVED_LOG视图中的NAME列为空,但是依然可以查询到这些删除了的归档信息,出现这样的现象是因为使用RMAN命令在删除归档日志的时候不会清除控制文件中的内容,导致V$ARCHIVED_LOG留下的过期的不完整信息。使用如下的命令可以清除控制文件中关于V$ARCHIVED_LOG的信息:
22.
Oracle如何删除归档日志文件?正确答案:在RMAN工具里删除归档日志文件:
23.
生成备库控制文件的方法有哪些?正确答案:若在RMAN中,则用命令“BACKUPDEVICETYPEDISKFORMAT'/arch/standby_new_thr_%U.ctl'CURRENTCONTROLFILEFORSTANDBY;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度物业服务管理委托合同template3篇
- 2024年标准版技术外包协议样本版B版
- 2024年标准版货物采购协议指南版B版
- 2024年度加工承揽合同标的:服装生产加工2篇
- 预支提成合同范例
- 色母生产加工项目可行性研究报告
- 新建提花汽车地毯项目立项申请报告
- 印纸油墨生产加工项目可行性研究报告
- 2024年模特儿任用协议3篇
- 2024年度家具搬运装卸工合同3篇
- 国家开放大学电大《建筑制图基础》机考三套标准题库及答案3
- 降低故障工单回复不合格率
- 可涂色简笔画打印(共20页)
- 灯光架介绍及使用说明
- 十一学校行动纲要
- GB 1886.6-2016 食品安全国家标准 食品添加剂 硫酸钙(高清版)
- 关于房屋征收及土地收储过程中的税收政策(仅供参考)
- 唯一住房补贴申请书(共2页)
- 单面多轴钻孔组合机床动力滑台液压系统课程设计
- 中医养生脾胃为先PPT文档
- 门窗工程成品保护方案(附图)
评论
0/150
提交评论