还剩66页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
oracle、sqlserver数据库dba面试题集
(1)阿里巴巴公司DBA笔试题oracleDBA笔试题以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答……一:SQLtuning类1:列举几种表连接方式解答hashjoin/mergejoin/nestloopclusterjoin/indexjoin2:不借助第三方工具,怎样查看sql的执行计划解答setautotonexplainplansetstatement_id=item_idforsql;select*fromtabledbms_xplan.display;3:如何使用CBOCBO与RULE的区别解答在optimizer_mode=choose时如果表有统计信息分区表外优化器将选择CBO否则选RBORBO遵循简单的分级方法学使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目然后选择最佳级别最少的数量的执行路径来运行查询CBO尝试找到最低成本的访问数据的方法为了最大的吞吐量或最快的初始响应时间计算使用不同的执行计划的成本,并选择成本最低的一个关于表的数据内容的统计被用于确定执行计划4:如何定位重要消耗资源多的SQL解答selectsql_textfromv$sqlwheredisk_reads1000orexecutions0andbuffer_gets/executions30000;5:如何跟踪某个session的SQL解答execdbms_system.set_sql_trace_in_sessionsidserial#sql_trace;selectsidserial#fromv$sessionwheresid=selectsidfromv$mystatwhererownum=1;execdbms_system.set_evsidserial#event_10046level_12;6:SQL调整最关注的是什么解答查看该SQL的responsetimedbblockgets/consistentgets/physicalreads/sortsdisk7:说说你对索引的认识索引的结构、对dml影响、对查询影响、为什么提高查询性能解答b-treeindex/bitmapindex/functionindex/patitionalindexlocal/global索引通常能提高select/update/delete的性能会降低insert的速度8:使用索引查询一定能提高查询的性能吗为什么?解答索引就是为了提高查询性能而存在的如果在查询中索引没有提高性能只能说是用错了索引或者讲是场合不同9:绑定变量是什么绑定变量有什么优缺点解答绑定变量是相对文本变量来讲的所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析绑定变量是指使用变量来代替直接书写条件,查询bindvalue在运行时传递,然后绑定执行优点是减少硬解析降低CPU的争用节省shared_pool;缺点是不能使用histogram,sql优化比较困难10:如何稳定固定执行计划?解答query_rewrite_enabled=truestar_transformation_enabled=true创建并使用storedoutline11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么?解答8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存,如果排序操作不能在sort_area_size中完成就会用到temp表空间;9i中如果workarea_size_policy=auto时排序在pga内进行通常a_aggregate_target的1/20可以用来进行disksort;如果workarea_size_policy=manual时排序需要的内存由sort_area_size决定,在执行orderby/groupby/distinct/union/createindex/indexrebuild/minus等操作时如果在pga或sort_area_size中不能完成排序将在临时表空间进行disksort临时表空间主要作用就是完成系统中的disksort.12:存在表Tabcd要根据字段c排序后取第21—30条记录显示,请给出sql.解答createtabletanumberbnumbercnumberdnumber;/beginforiin
1..300loopinsertintotvaluesmodi2i/2dbms_random.value1300i/4;endloop;end;/select*fromselectc.*rownumasrnfromselect*fromtorderbycdesccwherernbetween21and30;/select*fromselect*fromtestorderbycdescxwhererownum相比之minus性能较差二:数据库基本概念类1:pctusedandpctfree表示什么含义有什么作用?解答pctused与pctfree控制数据块是否出现在freelist中pctfree控制数据块中保留用于update的空间当数据块中的freespace小于pctfree设置的空间时该数据块从freelist中去掉当块由于dml操作freespace大于pct_used设置的空间时该数据库块将被添加在freelist链表中2:简单描述table/segment/extent/block之间的关系解答table创建时默认创建了一个datasegment每个datasegment含有minextents指定的extents数每个extent据据表空间的存储参数分配一定数量的blocks3:描述tablespace和datafile之间的关系解答一个tablespace可以有一个或多个datafile每个datafile只能在一个tablespace内table中的数据通过hash算法分布在tablespace中的各个datafile中tablespace是逻辑上的概念datafile则在物理上储存了数据库的种种对象4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点?解答本地管理表空间LocallyManagedTablespace简称LMT,8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用字典管理表空间Dictionary-ManagedTablespace简称DMT,8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用动段空间管理ASSM,它首次出现在Oracle920里,有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块freeblock,因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫BitmapManagedSegmentsBMB段5:回滚段的作用是什么?解答事务回滚当事务修改表中数据的时候,该数据修改前的值即前影像会存放在回滚段中,当用户回滚事务ROLLBACK时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值事务恢复当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据读一致性当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改语句级读一致性),当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号SYSTEMCHANGENUMBER-SCN来保证任何前于当前SCN的未提交的改变不被该语句处理可以想象当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图6:日志的作用是什么?解答记录数据库事务最大限度地保证数据的一致性与安全性重做日志文件含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复一个数据库至少需要两个重做日志文件;归档日志文件是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要7:SGA主要有那些部分,主要作用是什么?解答SGA db_cache/shared_pool/large_pool/java_pool;db_cache:数据库缓存BlockBuffer对于Oracle数据库的运转和性能起着非常关键的作用,它占据Oracle数据库SGA系统共享内存区的主要部分Oracle数据库通过使用LRU算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问.shared_pool:共享池的大小对于Oracle性能来说都是很重要的共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL块和SQL语句及控制结构large_pool:使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器java_pool:为javaprocedure预备的内存区域如果没有使用javaprocjava_pool不是必须的8:Oracle系统进程主要有哪些,作用是什么?解答数据写进程dbwr负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程lgwr将重做日志缓冲区中的更改写入在线重做日志文件系统监控smon检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控pmon负责在一个Oracle进程失败时清理资源检查点进程chpt负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时更新控制文件和数据文件中的数据库状态信息归档进程arcn在每次日志切换时把已满的日志组进行备份或归档作业调度器cjq:负责将调度与执行系统中已定义好的job完成一些预定义的工作.恢复进程reco:保证分布式事务的一致性在分布式事务中要么同时commit要么同时rollback;三:备份恢复类1:备份如何分类?解答逻辑备份exp/imp物理备份RMAN备份fullbackup/incrementalbackup累积/差异热备份:altertablespacebegin/endbackup;冷备份:脱机备份databaseshutdown2:归档是什么含义?解答关于归档日志Oracle要将填满的在线日志文件组归档时则要建立归档日志archivedredolog其对数据库备份和恢复有下列用处数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用数据库可运行在两种不同方式下NOARCHIVELOG方式或ARCHIVELOG方式,数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档3:如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复?解答手工拷贝回所有备份的数据文件startupmount;sqlalterdatabaserecoverautomaticuntiltime2004-08-04:10:30:00;alterdatabaseopenresetlogs;4:rman是什么,有何特点?解答RMANRecoveryManager是DBA的一个重要工具,用于备份、还原和恢复oracle数据库RMAN可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件也可以用来执行完全或不完全的数据库恢复RMAN有三种不同的用户接口COMMANDLINE方式、GUI方式集成在OEM中的备份管理器、API方式用于集成到第三方的备份软件中具有如下特点1功能类似物理备份,但比物理备份强大N倍;2可以压缩空块;3可以在块水平上实现增量;4可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5备份与恢复的过程可以自动管理;6可以使用脚本存在Recoverycatalog中7可以做坏块监测5:standby的特点?解答备用数据库standbydatabase ORACLE推出的一种高可用性HIGHAVAILABLE数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份可以实现快速切换与灾难性恢复从920版本开始,还开始支持物理与逻辑备用服务器9i中的三种数据保护模式分别是
1、MAXIMIZEPROTECTION最大数据保护与无数据分歧,LGWR将同时传送到备用节点,在主节点事务确认之前,备用节点也必须完全收到日志数据如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机
2、MAXIMIZEAVAILABILITY无数据丢失模式,允许数据分歧,允许异步传送正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,主节点的操作还是可以继续的在网络不好的情况下有较大的性能影响
3、MAXIMIZEPERFORMANCE这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,无数据同步检查,可能丢失数据,但是能获得主节点的最大性能9i在配置DATAGUARD的时候默认就是MAXIMIZEPERFORMANCE6:对于一个要求恢复时间比较短的系统数据库50G每天归档5G,你如何设计备份策略?解答rman/每月一号level0每周末/周三level1其它每天level2四:系统管理类1:对于一个存在系统性能的系统,说出你的诊断处理思路?解答
(1)做statspack收集系统相关信息了解系统大致情况/确定是否存在参数设置不合适的地方/查看top5event/查看topsql等;
(2)查v$system_event/v$session_event/v$session_wait,从v$system_event开始确定需要什么资源dbfilesequentialread等,深入研究v$session_event确定等待事件涉及的会话,从v$session_wait确定详细的资源争用情况p1-p3的值:file_id/block_id/blocks等;
(3)通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、buffer_gets/executions值较大的SQL2:列举几种诊断IO、CPU、性能状况的方法?解答top/vmstatstatspacksql_trace/tkprof查v$system_event/v$session_event/v$session_wait查v$sqlareadisk_reads或buffer_gets/executions较大的SQL3:对statspack有何认识?解答statspack是一个性能诊断工具,其本质就是在两个时间点采样两个系统数据,然后根据两个snapshot产生一个报告StatSpack是Oracle公司提供的一个收集数据库运行性能指标的软件包,该软件包从8i起,在9i、10g都有显著的增强该软件包的辅助表存储相关参数与收集的性能指标的表由最初的25个增长到43个收集级别参数由原来的3个
0、
5、10增加到5个
0、
5、
6、
7、10通过分析收集的性能指标,数据库管理员可以详细地了解数据库目前的运行情况,对数据库实例、等待事件、SQL等进行优化调整利用statspack收集的snapshot可以统计制作数据库的各种性能指标的统计趋势图表4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响?解答:
(1)在系统空闲的时候创建;
(2)增大sort_area_size8i/pga_aggregate_target9i值;
(3)如果表有分区(一般大表都要用到分区的),按分区逐个创建索引;5:对raid10和raid5有何认识?解答raid10是先镜像后条带,适合对写入速度要求较高的数据库系统,特别是onlineredolog文件;raid5适合大部分的数据库系统和数据仓库系统,读性能优于写性能五:综合随意类1:你最擅长的是oracle哪部分解答性能优化;sql优化;备份和恢复2:喜欢oracle吗喜欢上论坛吗或者偏好oracle的哪一部分解答ITPUB论坛如oracle的sql优化3:随意说说你觉得oracle最有意思的部分或者最困难的部分?解答oracle最有意思的部分是sql调优;最困难的部分是oracle的网络管理4:为何要选择做DBA呢解答爱好Oracle面试题技术篇参考答案
1.解释冷备份和热备份的不同点以及各自的优点解答热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下数据库性能会比归档模式稍好(因为不必将archivelog写入硬盘)软件开发网
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?解答重建控制文件,用带backupcontrolfile子句的recover命令恢复数据库
3.如何转换init.ora到spfile解答使用createspfilefrompfile命令.
4.解释datablockextent和segment的区别(这里建议用英文术语)解答datablock是数据库中最小的逻辑存储单元当数据库的对象需要更多的物理存储空间时,连续的datablock就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment.
5.给出两个检查表结构的方法解答
1.DESCRIBE命令 包
6.怎样查看数据库引擎的报错解答alertlog.数据库DBA职位的SQLServer面试题知名外企Question1CanyouuseabatchSQLorstoreproceduretocalculatingtheNumberofDaysinaMonthAnswer1找出当月的天数程序代码selectdatepartdddateadddd-1dateaddmm1castcastyeargetdateasvarchar+-+castmonthgetdateasvarchar+-01asdatetimeQuestion2CanyouuseaSQLstatementtocalculatingit!HowcanIprint10to20forbooksthatsellforbetween$10and$20,unknownforbookswhosepriceisnullandotherforallotherpricesAnswer2selectbookidbooknameprice=casewhenpriceisnullthenunknownwhenpricebetween10and20then10to20elsepriceendfrombooksQuestion3CanyouuseaSQLstatementtofindingduplicatevalues!HowcanIfindauthorswiththesamelastnameYoucanusethetableauthorsindatatabasepubs.Iwanttogettheresultasbelow:Output:程序代码au_lnamenumber_dups---------------------------------------------------Ringer21rowsaffectedAnswer3selectau_lnamenumber_dups=count1fromauthorsgroupbyau_lnameQuestion4Canyoucreateacross-tabreportinmySQLServer!HowcanIgetthereportaboutsalequalityforeachstoreandeachquarterandthetotalsalequalityforeachquarteratyear1993Youcanusethetablesalesandstoresindatatabasepubs.TableSalesrecordallsaledetailitemforeachstore.Columnstore_idistheidofeachstoreord_dateistheorderdateofeachsaleitemandcolumnqtyisthesalequlity.Tablestoresrecordallstoreinformation.Iwanttogettheresultlooklikeasbelow:Output:程序代码stor_nameTotalQtr1Qtr2Qtr3Qtr4-----------------------------------------------------------------------------------------------Barnums5005000Bookbeat55253000Doc-U-Mat:QualityLaundryandBooks8508500FricativeBookshop60350025Answer4用动态SQL实现Total25060165025Question5:TheFastestWaytoRecompileAllStoredProceduresIhaveaproblemwithadatabaserunninginSQLServer
6.5ServicePack
4.Wemovedthedatabaseobjecttransferfromonemachinetoanotherlastnightandanerrorspecifictoastoredprocedureiscroppingup.HoweverIcanttellwhichprocedureiscausingit.Permissionsaregrantedinallofourstoredprocedures;isthereawayfromtheisqlutilitytoforceallstoredprocedurestorecompileTips:sp_recompilecanrecomplieastoreprocedureeachtimeAnswer5在执行存储过程时使用withrecompile选项强制编译新的计划;使用sp_recompile系统存储过程强制在下次运行时进行重新编译Question6:HowcanIaddrownumberstomyresultsetIndatabasepubshaveatabletitlesnowIwanttheresultshownasbeloweachrowhavearownumberhowcanyoudothatResult:程序代码line-notitle_id-------------------1BU10322BU11113BU20754BU78325MC22226MC30217MC30268PC10359PC888810PC999911PS137212PS209113PS210614PS333315PS777716TC321817TC420318TC7777Answer6--SQL2005的写法selectrow_numberasline_notitle_idfromtitles--SQL2000的写法selectline_noidentityint11title_idinto#tfromtitlesselect*from#tdroptable#t数据库DBA的面试题(Sqlserver2000)请问在SQL2000中怎么区分登入,用户,角色,并用例子举例说明;再问:1登入ID是不是就是用户名当我创建了一个登入,我在点击登入所对应的数据,实例中的用户一栏看到登入ID与用户名一致2一个登入ID是不是只能对应一个用户 教科书答案:登录ID仅能使您连接到SQLServer实例特定数据库内的权限由用户帐户控制数据库管理员将您的登录帐户映射到您有权访问的任何数据库中的用户帐户 用户如:sa 角色如:public/db_owner/db_datareader/db_datawriter等软件开发网只有给用户赋予角色,该用户才有相应的操作数据库的权限 如将public/db_owner角色赋给sa,则该用户有对数据库进行一切操作的权限 角色:完成特定的、与服务器相关的管理任务所需的权限,一个用户可以属于多个角色 登录:仅能使您连接到SQLServer实例 命题官的理解: 登录是sql实例级的 用户是数据库级的 角色有实例级和数据库级两种 登录决定你是否能访问sql实例 用户与登录对应确实某个登录后它对那些数据库有那些权限. 角色是为了方便管理一类登录或者用户所具有的权限当某一类登录或者用户具有相同的权限时可以简单地给予他们对应的角色即可. 做个形象的比喻: sql实例就相当于一个公司. 如果你要在公司工作自然就要成为公司的员工因此公司的员工就相当于登录公司有不同的部门这相当于数据库你要在某个部门做事必须把你分配到某个部门也就是在部门的名单中要有你这个部门的名单就相当于用户.名单必须对应公司的某个员工.但你一个人是可以在多个部门工作的软件开发网,因此一个登录可以对应多个数据库的不同用户.同样一个员工在一个部门的名单中只可能出现一次因此一个登录在同一数据库中只可能对应一个用户为了方便定义每个员工应该做些什么应该承担什么职责公司会定义职位我个职位对应的在数据库中就叫角色. 因为有的职位是公司层面的比如懂事长他什么都可以管软件开发网 因此有sql实例级的角色 也可以具体地为每个部位定义职位不同部门的同一名称的职位它的具体内容可以不同.因此对应于sql而言它又有数据库级的角色某个员工是某个职位则具有该职位对应的权限与责任 因此对于sql而言某个登录或者用户被授予某个或者某些角色它就具有对应的权限.不同职位在不同时期可以由不人担任换人只需要取消和授予对应人员的职位就可以了.不用改职位定义. 因此对于sql而言可以根据需要取消和授予某个登录或者用户的角色.这是管理方便性需要你完全可以不理会角色自己为用户或者登录指定权限oracle、sqlserver数据库dba面试题集
(2)
一、Transact-SQL问题
1.有订单表SO_Table,单号字段RefNoVARCHAR10,需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思路
2.有表T1T2,现有一事务,在向表T1添加数据时,同时也必须向T2也添加数据,如何确何数据的完整性
3.如何求表中相邻按聚集索引相邻的两条记录的某字段的值之差,用Transact-SQL语句或存储过程
4.如何删除表中的重复数据,用Transact-SQL写出代码
5.基于MS-SQLSERVER2000,如何统计数据库中所有用户表的数据,显示格式如下表名记录数sales
236.人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh)包括四种情况(本科以上,大专,高中,初中以下)现在我要根据年龄字段查询统计出表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少结果如下软件开发网学历年龄人数百分比本科以上203414大专203313高中203313初中以下2010040本科以上21Transact-SQL查询语句如何写?7表一AAA商品名称mc商品总量slA100B120表二BBB商品名称mc出库数量slA105020A20B10B20B30用一条Transact-SQL语句算出商品AB目前还剩多少?
二、数据库管理问题DBMS为MS-SQLServer2000选作一道题1使用文件与文件组恢复的方式恢复数据库
7.设计作业进行周期性的备份数据库
8.一个B/S结构ERP系统,出入库单据超过100万条,系统在单据调出、保存过程中速度比较慢,原因可能有哪些?有哪些办法可以提高速度?
三、数据库设计有一个钢铁产品检验数据库,包括产品的化学实验结果和物理试验结果,质检部门会根据高炉号来对这批产品进行综合判定,最后根据一个关键字段(比如说叫高炉号)将两个表中的内容取出来放到质量证明书中钢铁产品有多种不同的规格,针对同一个规格的钢材需要的物理性能检验包括力学性能、高倍指标、低倍指标、气体含量四个大项,每个大项里边包含的内容也不一样,力学性能大约有20个小项,高倍有60个小项,低倍有20个小项、气体有8个小项,并且如果某一个大项中有不合格的,必须取双倍的试样重新进行检验,而另外的大项不重做复验请给出物理试验结果表的设计思路
四、项目管理问题请叙述你经历的你认为是最为成功的或典型的项目的项目运作管理体系、业务流程体系和软件技术体系统
五、请叙述你的职业理想OracleDBA面试题及答案forOracleE-BusinessSuiteDBAIT工作市场是如此的紧张,每个可获得的职位都有一堆人在申请NaveenNahata为OracleE-BusinessSuite的数据库管理员申请者提供了以下一些面试时的技术问题,它可以帮助申请者们快速脱颖而出
1、如果信息采集管理系统ICM崩溃了怎么办解答所有其他的管理器都会继续工作ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器
2、你如何加速打补丁的过程解答
(1)可以合并多个补丁
(2)可以为一个非交互的补丁创建一个响应文件
(3)可以通过选项nocompiledbnomaintainmrcnocompilejsp来应用补丁,并且在应用了所有的补丁之后,一次运行它们
3、打补丁的过程中出错了,你怎么办解答查看失败工作的日志,找到并且纠正错误,用adctrl工具重新开启工作
4、请提供克隆过程和克隆之后采取的手工操作的大概步骤解答在源文件上所有层运行pre-clone,使用RMAN复制数据库或者从热或者冷备份中重新存储数据库,拷贝文件系统,然后在目标文件所有层上运行post-clone手工步骤可能会更多: a.改变所有的非网站配置选项数值快速克隆的话,只改变网站级别的配置文件选项 b.修改工作流和并发管理器表 c.更改打印机
5、介绍一下AutoConfig;AutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的解答AutoConfig使用了一个上下文文件来维护关键的配置文件一个上下文文件就是一个XML文件,在$APPL_TOP/admin目录下,进行集中式的存储 当你运行AutoConfig的时候,它读取XML文件,并且创建所有的AutoConfig管理配置文件 对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的
6、你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗你要检查哪个配置文件操作选项和文件解答a.首先检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库;b然后查看apache/jserv是否启动了;c.最后运行IsItWorkingFND_WEB.PINGaoljtest等
7、如果你不能看到并发管理日志和输出文件,是哪里出错了解答很有可能是FNDFS监听器停止了看看FND_CONCURRENT_REQUESTS表中的OUTFILE_NODE_NAME和LOGFILE_NODE_NAME的数值看看FND_NODES表看看tnsnames.ora中的FNDFS_entry
8、你是如何更改并发管理日志和输出文件的位置的解答并发管理日志的位置是由$APPLCSF/$APPLLOG参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT决定的
9、如果用户正遇到性能方面的问题,你如何找到问题的原因解答a.追踪这个会话用等待并且使用tkprof来分析追踪文件; b.生成statspack报告并进行分析; c.使用top/iostat/sar/vmstat监控O/s; d.通过ping这类基本的测试结果来判断网络的瓶颈
10、你如何更改应用程序的密码解答a.使用FNDCPASS来更改APPS密码; b.手工修改wdbsvr.app/cgiCMD.dat文件; c.更改所有从其他环境指过来的数据库链接
11、请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名解答a.位置:$FND_TOP/securedirectory; b.重要性:在其他事务中指向数据库服务器c.应用程序通过使用“ApplicationsDatabaseId.”来了解DBC文件的名字Oracle技术人员求职面试题集锦
1.解释冷备份和热备份的不同点以及各自的优点 解答热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下数据库性能会比归档模式稍好因为不必将archivelog写入硬盘
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢 解答重建控制文件,用带backupcontrolfile子句的recover命令恢复 数据库
3.如何转换init.ora到spfile 解答使用createspfilefrompfile命令.
4.解释datablockextent和segment的区别这里建议用英文术语 解答datablock是数据库中最小的逻辑存储单元当数据库的对象需要更多的物理存储空间时,连续的datablock就组成了extent.一个数据库对象 拥有的所有extents被称为该对象的segment.
5.给出两个检查表结构的方法 解答1DESCRIBE命令
2.DBMS_METADATA.GET_DDL包
6.怎样查看数据库引擎的报错 解答alertlog.
7.比较truncate和delete命令 解答两者都可以用来删除表中所有的记录区别在于truncate是DDL操作,它移动HWK,不需要rollbacksegment.而Delete是DML操作需要rollbacksegment且花费较长时间.
8.使用索引的理由 解答快速访问表中的datablock
9.给出在STARSCHEMA中的两种表及它们分别含有的数据 解答Facttables和dimensiontables.facttable包含大量的主要的信息而dimensiontables存放对facttable某些属性描述的信息
10.FACTTable上需要建立何种索引 解答位图索引bitmapindex
11.给出两种相关约束 解答主键和外键
12.如何在不影响子表的前提下,重建一个母表 解答子表的外键强制实效,重建母表,激活外键
13.解释归档和非归档模式之间的不同和它们各自的优缺点 解答归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点非归档模式则相反,不能恢复到任意一个时间点但是非归档模式可以带来数据库性能上的少许提高.
14.如何建立一个备份控制文件 解答Alterdatabasebackupcontrolfiletotrace.
15.给出数据库正常启动所经历的几种状态 解答 STARTUPNOMOUNT–数据库实例启动 STARTUPMOUNT-数据库装载 STARTUPOPEN–数据库打开
16.哪个column可以用来区别V$视图和GV$视图 解答INST_ID指明集群环境中具体的某个instance
17.如何生成explainplan 解答运行utlxplan.sql.建立plan表 针对特定SQL语句,使用explainplansetstatement_id=tst1intoplan_table 运行utlxplp.sql或utlxpls.sql察看explainplan
18.如何增加buffercache的命中率 解答在数据库较繁忙时,适用buffercacheadvisory工具,查询v$db_cache_advice.如果有必要更改,可以使用altersystemsetdb_cache_size命令
19.ORA-01555的应对方法 解答具体的出错信息是snapshottoooldwithinrollbackseg通常可以通过增大rollbackseg来解决问题当然也需要察看一下具体造成错误的SQL文本
20.解释$ORACLE_HOME和$ORACLE_BASE的区别 解答ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录
21.如何判断数据库的时区 解答SELECTDBTIMEZONEFROMDUAL;
22.解释GLOBAL_NAMES设为TRUE的用途 解答GLOBAL_NAMES指明联接数据库的方式如果这个参数设置为TRUE在建立数据库链接时就必须用相同的名字连结远程数据库 23如何加密PL/SQL程序 解答WRAP
24.解释FUNCTIONPROCEDURE和PACKAGE区别 解答function和procedure是PL/SQL代码的集合,通常为了完成一个任务procedure不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和proceudre的集合
25.解释TABLEFunction的用途 解答TABLEFunction是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图他们也用于pipeline和ETL过程
26.举出3种可以收集threeadvisorystatistics 解答BufferCacheAdviceSegmentLevelStatisticsTimedStatistics
27.Audittrace存放在哪个oracle目录结构中 解答unix$ORACLE_HOME/rdbms/auditWindowstheeventviewer
28.解释materializedviews的作用 解答Materializedviews用于减少那些汇总,集合和分组的信息的集合数量它们通常适合于数据仓库和DSS系统
29.当用户进程出错,哪个后台进程负责清理它 解答PMON
30.哪个后台进程刷新materializedviews 解答TheJobQueueProcesses.
31.如何判断哪个session正在连结以及它们等待的资源 解答V$SESSION/V$SESSION_WAIT
32.描述什么是redologs 解答RedoLogs是用于存放数据库数据改动状况的物理和逻辑结构可以用来修复数据库.
33.如何进行强制LOGSWITCH 解答ALTERSYSTEMSWITCHLOGFILE;
34.举出两个判断DDL改动的方法 解答你可以使用Logminer或Streams
35.Coalescing做了什么 解答Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent.
36.TEMPORARYtablespace和PERMANENTtablespace的区别是 解答Atemporarytablespace用于临时对象例如排序结构而permanenttablespaces用来存储那些真实的对象例如表,回滚段等
37.创建数据库时自动建立的tablespace名称 解答SYSTEMtablespace.
38.创建用户时,需要赋予新用户什么权限才能使它联上数据库 解答CONNECT
39.如何在tablespace里增加数据文件 解答ALTERTABLESPACEADDDATAFILESIZE
40.如何变动数据文件的大小 解答ALTERDATABASEDATAFILERESIZE;
41.哪个VIEW用来检查数据文件的大小 解答DBA_DATA_FILES
42.哪个VIEW用来判断tablespace的剩余空间 解答DBA_FREE_SPACE
43.如何判断谁往表里增加了一条纪录 解答auditing
44.如何重构索引 解答ALTERINDEXREBUILD;
45.解释什么是Partitioning分区以及它的优点 解答Partition将大表和索引分割成更小,易于管理的分区
46.你刚刚编译了一个PL/SQLPackage但是有错误报道,如何显示出错信息 解答SHOWERRORS
47.如何搜集表的各种状态数据 解答ANALYZE TheANALYZEcommand.
48.如何启动SESSION级别的TRACE 解答:DBMS_SESSION.SET_SQL_TRACE ALTERSESSIONSETSQL_TRACE=TRUE;
49.IMPORT和SQL*LOADER这2个工具的不同点 解答这两个ORACLE工具都是用来将数据导入数据库的 区别是IMPORT工具只能处理由另一个ORACLE工具EXPORT生成的数据而SQL*LOADER可以导入不同的ASCII格式的数据源 50用于网络连接的2个文件 解答TNSNAMES.ORAandSQLNET.ORAoracle初级DBA试题第一部份racle相关
1.、请画出oracle存储物理结构及逻辑结构相关示意图.
2、请列出userschema;charvarchar2之间的区别.
3、请列出几种常用的表及索引以及他们的适用情况.
4、请从oracle进程结构或内存结构中任选一个展开,描述他们的功能.
5、写一个简单的sql,用来列出所有表空间的使用情况,包括已用空间,可用空间,使用率等.
6、请描述行链接及行迁移对系统的影响及如何才能检测,解决和避免行链接和行迁移问题.
7、请列出几种在sql性能调整中看执行计划的方法.
8、请列出您认为在dba工作应该具备的技能及个人素质,以及您在dba生涯的规划.第二部份os相关
1、请列出vi命令中常用的一些指令.2请写出简单的shell脚本,请把第一部份中第4题的资料spool出来发邮件给admin@tom.com假设mail服务器已经设定好.
3、请写一个脚本,把$ORACLE_UDUMP目录下文件日期早于一周前的*.trc文件删除掉.
4、如果要把上面的脚本放在crontab中,排定每天凌晨自动执行,crontab中应该怎么写
5、在dbshutdown过程中,如果要在os下把所有oracle用户下,除了后台进程外的所有oracle进程中杀掉,该怎么写?
6、如果要看os的cpu,io及memory的使用情况,可能分别通过哪些命令来看,其中要注意的栏位又有哪些?一份ORACLEDBA面试题一SQLtuning类1:列举几种表连接方式答:mergejoinhashjoinnestedloop2:不借助第三方工具,怎样查看sql的执行计划答:sqlplussetautotrace...utlxplan.sql创建plan_table表3:如何使用CBOCBO与RULE的区别答:在初始化参数里面设置optimizer_mode=choose/all_rows/first_row等可以使用cbo.br/rbo会选择不合适的索引cbo需要统计信息4:如何定位重要消耗资源多的SQL答:根据v$sqlarea中的逻辑读/disk_read以及寻找CPU使用过量的session查出当前session的当前SQL语句,或者监控WIN平台Oracle的运行5:如何跟踪某个session的SQL答:先找出对应的sidserial然后调用system_system.set_sql_trace_in_sessionsidserialtrue;参考跟踪某个会话6:SQL调整最关注的是什么答:逻辑读IO量7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能答:默认的索引是b-tree.对insert的影响.分裂,要保证tree的平衡对delete的影响.删除行的时候要标记改节点为删除.对update的影响,如果更新表中的索引字段,则要相应的更新索引中的键值查询中包含索引字段的键值和行的物理地址8:使用索引查询一定能提高查询的性能吗?为什么答:不能如果返回的行数目较大,使用全表扫描的性能较好9:绑定变量是什么?绑定变量有什么优缺点答:通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少只有变量值不同的语句的解析10:如何稳定固定执行计划答:使用storedoutline.11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么答8i:使用sort_area_size,hash_area_size每个session分配相同的值,不管有无使用 9i:使用pga_aggregate来统一管理临时表空间的作用:在sort_area_size中不能完成的部分在临时表空间完成,临时表空间在重建索引,创建临时表等都要用到还有hashjoin不能完成的也在临时表空间中做12:存在表Tabcd要根据字段c排序后取第21—30条记录显示,请给出sqlselectabcdfromselectabcdfromTorderbycwhererownum=30minusselectabcdfromselectabcdfromTorderbycwhererownum=20;或者select*fromselectrownumrna.*fromselectabcdfromTorderbycawherernbetween21and30;二数据库基本概念类1ctusedandpctfree表示什么含义有什么作用答:表示数据块什么时候移入和移出freelistpctused:如果数据块的使用率小于pctused的值,则该数据块重新加入到fresslist中pctfree如果数据块的使用率高于pctfree的值,则该数据块从freelist中移出2:简单描述table/segment/extent/block之间的关系答:一个table至少是一个segment,如果分区表,则每个分区是一个segmenttable可以看成是一个逻辑上的概念,segment可以看成是这个逻辑概念的物理实现;segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;extent由多个连续的blocks组成,不可以跨数据文件;block由1-多个os块组成,是oraclei/o的最小存储单位3:描述tablespace和datafile之间的关系答:tablespace是逻辑上的概念,datafile是物理上的概念一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点答:一个使用freelist管理,一个使用位图管理5:回滚段的作用是什么答保存数据的前像,保证数据读取的时间点一致性Oracle里数据的多版本特性就是通过回滚段来实现的,正因为此,Oracle数据库实现了读写不竞争的性能优势!6:日志的作用是什么答纪录对数据库的操作,便与恢复7:SGA主要有那些部分,主要作用是什么答db_cache缓存数据块shared_pool缓存sql执行计划,数据字典信息等large_poolMTS模式、parallel、rman等要用到javapooljava程序如SQLJ存储过程运行时要用到8racle系统进程主要有哪些,作用是什么答smon(合并空间,实例恢复)pmon(清理失败的进程)归档进程(负责在日志切换的时候归档日志文件)lgmr(日志书写器进程负责写日志)ckpt检查点进程,触发检查点dbwr数据库写入器,负责把数据写入导datafile三备份恢复类1:备份如何分类答逻辑备份exp与物理备份或者冷备份与热备份2:归档是什么含义答把日志文件放到另一个地方3:如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复答拷贝备份,recoverdatabaseuntiltime2004-08-0410:30:00alterdatabaseopenresetlogs;4:rman是什么,有何特点答rman叫恢复管理器.特点很多可以在线备份,到少目标数据库是mount状态1热备份2可以存储脚本3可以增量备份4自动管理备份集5:standby的特点答利用传输重做日志来达到同步的目的可以设定多个保护级别,9i后支持逻辑standbyDB6:对于一个要求恢复时间比较短的系统数据库50G每天归档5G,你如何设计备份策略答每天一个全备份四系统管理类1:对于一个存在系统性能的系统,说出你的诊断处理思路答:做一个statspack,根据top5systemloadtopsql等来做相应的调整2:列举几种诊断IO、CPU、性能状况的方法答:hp-unix:iostat-x15;top/vmstat/glance3:对statspack有何认识答:一个性能诊断工具而已,其本质就是在两个时间点采样两个系统数据动态性能视图,然后根据两个snapshot,产生一个报告4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1:增大sort_area_size8i/pga_aggregate_target9i值2:如果表有分区(一般大表都要用到分区的),按分区逐个建索引,如果是本地索引的话;3:系统空闲的时候建5:对raid10和raid5有何认识答:raid10是先镜像后条带,适合对写入速度要求较高的数据库系统,特别是onlineredolog文件,raid5适合大部分的数据库系统和数据仓库系统,读性能优于写性能五综合随意类1:你最擅长的是oracle哪部分答:性能/sql调优、备份恢复2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?答的SQL优化3:随意说说你觉得oracle最有意思的部分或者最困难的部分答:SQL调优,最困难的是Oracle的网络管理,Oracle的ConnectManager没用过4:为何要选择做DBA呢答:爱好加职业历史积累4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1:增大sort_area_size8i/pga_aggregate_target9i值2:用并行的方式来建3:系统空闲的时候建其他什么是聚集索引,什么是非聚集索引,什么又是主键?聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键,通过它可强制表的实体完整性
1、事务是什么?A所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位
2、oracle中truncate和delete命令有何区别?A
(1)delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快
(2)truncate是DDL,执行隐含的commit,truncate不能回滚任何没有提交的DML改变也将会和truncate一起提交
(3)truncate重置表及其索引高水位标志全表扫描和索引快速全扫描读高水位标志下的所有数据块,因此在delete后全扫描性能没有提高,但truncate后将会变快
(4)truncate不触发delete触发器
(5)没有对象权限允许一个用户truncate另一个用户的表这样做需要DROPANYTABLE系统权限
(6)当一个表被truncate,表及其索引的存储将被重置回初始大小而delete不收缩表及其索引的大小
(7)当父表有一个可用的引用完整性约束时不能被truncate必须先disable引用父表的外键约束,再truncate
3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char10和varchar210类型的字段中,其存储长度及类型有何区别?A char是定长字符类型,varchar2是变长字符类型“test”在char10中被补齐空格,存储长度是10字节,在varchar210中存储长度是4字节OracleDBA笔试及面试题汇总基础篇-考试认证使用篇 1使用索引查询一定能提高查询的性能吗举出实例 2数据库设计的
一、
二、三范式、BCNF是什么 3StoreProcedure和Function有何区别 4如何跟踪某个session的SQL 5如何使用CBOCBO与RULE的区别 6描述tablespace和datafile之间的关系 7truncate和delete有何区别哪一种操作性能更快 8什么是Snapshot与View有何区别 9pctusedandpctfree表示什么含义有什么作用 10cursor一般用在什么地方有何弱点管理篇 1SQL调整最关注的是什么 2Oracle的系统进程有哪些作用是什么 3本地管理表空间和字典管理表空间的特点,ASSM有什么特点 4备份如何分类 5如果一个表被drop,在有完善的归档和备份的情况下,如何恢复 6rman是什么,有何特点 7standby的特点 8对于一个要求恢复时间比较短的系统数据库50G每天归档5G,你如何设计备份策略 9对于一个存在系统性能的系统,说出你的诊断处理思路 10列举几种诊断IO、CPU、性能状况的方法 11对statspack有何认识 12如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响 13对raid10和raid5有何认识 14SGA主要有那些部分,主要作用是什么 15简单描述table/segment/extent/block之间的关系 16说说你对索引的认识索引的结构、对dml影响、对查询影响、为什么提高查询性能46家著名企业笔试试题(IT业)--香港电信/ORACLE/维尔VERITAS/凹凸电子/普华永道PW/奇码数字信息C香港电信笔试题
1.Basedonyourunderstandingofthefollowingjavarelatedtechnologies:servletsJavaServerPageJavaBeansEnterpriseJavaBeanshowdoyouthinkthesetechnologiesareworktogetherorareappliedinthedevelopmentofaninternet-basedapplication25marks.
2.Inyouropinionwhatdoyouthinkaretheadvantagesorbenefitsofusinganobject-orientedapproachtosoftwaredevelopmenthowdoyouthinkthosebenefitscanbeachievedorrealized15marks.
3.Indesigningyourclassesgiventhechoicebetweeninheritanceandaggregationwhichdoyouchoose15marks.
4.HowwouldyouworkaroundthelackofmultipleinheritancefeatureinJava15marks.
5.WhatwouldyouconsidertobethehardestpartofOOanalysisanddesignandwhy10marks.
6.Howdoyoukeepyourselfuptodatewiththelatestinsoftwaretechonogyespeciallyinthefieldofsoftwaredevelopment10marks.
7.WhatsiyourcareeraspirationWhydoyouthinkthisE-CommerceDevelopmentCentercanhelpyouinachievingyourcareergoals10marks1hranswerinEnglish.ORACLE的笔试题
1.Wouldyoupleasedescribeyourselfin3-4lineslimitedin500words
2.CouldyoutelluswhyweshouldchooseyouasaLorealPersonandwhatmakesyouuniquelimitedin500words
3.Whatisyourshort-termandlong-termcareerplanlimitedin500words
4.Whatkindofgroupactivitiesareyouinterestedinandwhattypeofroledoyouoftenplaylimitedin500words
5.Pleaseuseonesentencetogiveadefinitionof‘Beauty’anddescribethemostbeautifulthinginyourlife.limitedin500words维尔VERITAS软件笔试题
1.a.240b.255c.4094d.
655342.Whatisthedifference:betweenolognandologn^2wherebothlogarithemshavebase
2.a.ologn^2isbiggerb.olognisbiggerc.nodifference
3.Foraclasswhatwouldhappenifwecallaclass’sconstructorfromwiththesameclass’sconstructor.a.compilationerrorb.linkingerrorc.stackoverflowd.noneoftheabove
4.“new”inc++isa:.a.libraryfunctionlikemallocincb.keywordc.operatord.noneoftheabove
5.Whichofthefollowinginformationisnotcontainedinaninode.a.fileownerb.filesizec.filenamed.diskaddress
6.What’sthenumberofcomparisonsintheworstcasetomergetwosortedlistscontainingnelementseach.a.2nb.2n-1c.2n+1d.2n-
27.TimecomplexityofnalgorithmTnwherenistheinputsizeisTn=Tn-1+1/nifn1otherwise1theorderofthisalgorithmis.a.lognb.nc.n^2d.n^n
8.Thenumberof1’sinthebinaryrepresentationof3*4096+15*256+5*16+3are.a.8b.9c.10d.12百威啤酒武汉公司1为什么申请来百威2将来有什么打算3有没有社会活动经历4有没有当众演讲的经历5经常使用那些软件6喜欢哪些课程7你认为工作中的什么因素对你来说最重要8什么时候可以来上班可以在这里工作多久9八点上班要加班和出差能不能做到星巴克
1、您是一家咖啡店的店经理,你发现店内同时出现下列状况1)许多张桌子桌面上有客人离去后留下的空杯未清理,桌面不干净待整理2)有客人正在询问店内卖哪些品种,他不知如何点咖啡菜单3)已有客人点完成咖啡,正在收银机旁等待结帐4)有厂商正准备要进货,需要店经理签收请问,针对上述同时发生的情况,你要如何排定处理之先后顺序,为什么
2、有一位甲员工脾气不好以致在前三家店因为与店内其他同事相处不佳而屡屡调动,现在甲被调到你的店里面来,请问身为店经理的你,将如何应对??
3、你是店经理,本周五结帐后,发现门市总销售额较上周五减少30%,请问可能原因会是哪几种,各原因如何应对?凹凸电子软件笔试题
1.SelectONEofthefollowingprojectstodiscuss:a.SignalFiltering:Youaregivenasampledrealtimewaveformconsistingofasensorreadingmixedwithhighlyperiodicimpulsesandhighfrequencynoise.Thedesiredoutputistherealtimefilteredsensorsignalwiththeimpulsesandnoiseremovedandareadoutoftheimpulseperiod.TheFFTmaynotbeused.b.InterruptProcessing.Aheadwareregisterconsistingofeightindependentedgetriggeredlatchesisusedtorecordexternalasynchronousinterruptrequests.Whenanyoftherequestbitsarelatchedasoftwareinterruptisgenerated.Thesoftwaremayreadthelatchtoseewhichinterruptsoccurred.Writingaonetoanylatchbitwillclearthelatch.Howdoesthatsoftwareassurethatnointerruptrequestisevermissedc.UserInterface:aprototypeMP3playerinterfaceconsistingofaplaylistdisplayandafewcontrolbuttonsisgiventoyou.Howwouldyoumaketheinterface“skinnable”withuserselectedgraphicsoptionsandcontrolbuttonplacementEachprojectdescriptionisincomplete.WhatquestionswouldyouasktocompletelyspecifytheprojectWhatdevelopmenttoolswouldyouprefertouseWhatalgorithm/datastructures/designwouldyouuse
2.Whatprogramshaveyoucodedforyouownenjoymentnotpartofaschoolprojectnotforpay.Whattypeofsoftwareprojectwouldyoumostenjoyworkingon
3.HaveyouparticipatedinateamprogrammingprojectWhatisthehardestpartofprogrammingasateamasopposedtoprogrammingalone立资讯笔试题目1.一堆鸡蛋,3个3个数剩余2个,5个5个数剩余1个,7个7个数剩余3个,问这堆鸡蛋最少有多少个?并给出通解2.列举五岳,及其所在省份3.何为四书4.按顺序默写24节气5.默写于谦的《吟石灰》6.英语翻译约300字7.作文一篇求职有感普华永道PWC笔试题目(作文)1.最近10年来中国媒体的变化2.你认为发展汽车产业和公共交通哪个更重要?3.如何理解风险投资?4.如何理解广告的消极作用和积极作用?Avant!微电子EE笔试题1.名词解释VLSI,CMOS,EDA,VHDL,Verilog,HDL,ROM,RAM,DRC,LVS2.简述CMOS工艺流程3.画出CMOS与非门的电路,并画出波形图简述其功能4.画出N沟道增强型MOSFET的剖面图5.简述ESD和latch-up的含义6.简述三极管与MOS管的区别7.简述MOORE模型和MEALY模型8.简述堆栈与队列的区别奇码数字信息有限公司笔试题1.画出NMOS的特性曲线(指明饱和区,截至区,线性区,击穿区和C-V曲线)2.
2.2um工艺下,Kn=3Kp,设计一个反相器,说出器件尺寸3.说出制作N-well的工艺流程4.雪崩击穿和齐纳击穿的机理和区别5.用CMOS画一个D触发器(clk,d,q,q-)OracleDBA笔试题(答题时间60分钟)Unix/Linux题目
1、如何查看主机cpu,内存、IP和磁盘空间
2、你常用的进程管理、主机性能察看命令有哪些?
3、建立组dba和该组下用户oracle,默认shell为bash
4、如何查看用户oracle的登陆历史和命令操作历史?
5、写crontab,让脚本/opt/test.sh在每周日晚上8:00执行
6、如何查找当前目录及其所有子目录下含有“ORA-”或“warning”字符内容的所有带log后缀的文件
7、写一个shell,完成自动登陆数据库(用户名密码是test/testpwd网络连接串是db_wending)并获取数据库当前SCN的功能OracleDatabase题目
1、如何快速了解一个已经运行很久的数据库系统?
2、如何获得SQL语句的执行计划和统计信息?
3、列出你常用的数据字典视图和动态性能视图
4、陈述使用过的数据库备份和恢复技术,及其优缺点
5、描述table/segment/tablespace/datafile/extent/block之间的关系
6、前台系统反映非常慢,需要你去分析诊断请详细陈述诊断流程,包括写下可能用到的操作系统命令、数据库视图等
7、公司准备把Oracle9i升级为但批准的停库时间仅为10分钟,你打算如何应对?
8、详细陈述RAC、Dataguard、StreamsReplication、AdvancedReplication等OracleHA技术的原理和优缺点
9、写存储过程,把当前用户下数据库对象个数信息按对象类型分组输出来
10、请写下你常关注的oracle初始化参数国外公司的OracleDBA面试题OracleDBAInterviewQuestionsByBG
1.Howmanymemorylayersareinthesharedpool?
2.HowdoyoufindoutfromtheRMANcatalogifaparticulararchiveloghasbeenbacked-up?
3.Howcanyoutellhowmuchspaceisleftonagivenfilesystemandhowmuchspaceeachofthefilesystemssubdirectoriestake-up?
4.DefinetheSGAand ?HowyouwouldconfigureSGAforamid-sizedOLTPenvironment? ?WhatisinvolvedintuningtheSGA?
5.Whatisthecachehitratio,whatimpactdoesithaveonperformanceofanOracledatabaseandwhatisinvolvedintuningit?
6.Otherthanmakinguseofthestatspackutility,whatwouldyoucheckwhenyouaremonitoringorrunningahealthcheckonanOracle8ior9idatabase?
7.HowdoyoutellwhatyourmachinenameisandwhatisitsIPaddress?
8.Howwouldyougoaboutverifyingthenetworknamethatthelocal_listeneriscurrentlyusing?
9.Youhave4instancesrunningonthesameUNIXbox.Howcanyoudeterminewhichsharedmemoryandsemaphoresareassociatedwithwhichinstance?
10.Whatview(s)doyouusetoassociateausersSQLPLUSsessionwithhiso/sprocess?
11.Whatistherecommendedintervalatwhichtorunstatspacksnapshots,andwhy?
12.Whatspfile/init.orafileparameterexiststoforcetheCBOtomaketheexecutionpathofagivenstatementuseanindex,eveniftheindexscanmayappeartobecalculatedasmorecostly?
13.AssumingtodayisMonday,howwouldyouusetheDBMS_JOBpackagetoscheduletheexecutionofagivenprocedureownedbySCOTTtostartWednesdayat9AMandtorunsubsequentlyeveryotherdayat2AM.
14.HowwouldyouedityourCRONTABtoscheduletherunningof/test/test.shtoruneveryotherdayat2PM?
15.Whatdothe9idbms_standard.sql_txt()anddbms_standard.sql_text()proceduresdo?
16.InwhichdictionarytableorviewwouldyoulooktodetermineatwhichtimeasnapshotorMVIEWlastsuccessfullyrefreshed?
17.HowwouldyoubestdeterminewhyyourMVIEWcouldntFASTREFRESH?
18.HowdoespropagationdifferbetweenAdvancedReplicationandSnapshotReplication(readonly)?
19.Whichdictionaryview(s)wouldyoufirstlookattounderstandorgetahigh-levelideaofagivenAdvancedReplicationenvironment?
20.HowwouldyoubegintotroubleshootanORA-3113error?
21.Whichdictionarytablesand/orviewswouldyoulookattodiagnosealockingissue?
22.AnautomaticjobrunningviaDBMS_JOBhasfailed.Knowingonlythatitsfailed,howdoyouapproachtroubleshootingthisissue?
23.HowwouldyouextractDDLofatablewithoutusingaGUItool?
24.Youregettinghighbusybufferwaits-howcanyoufindwhatscausingit?
25.Whatquerytellsyouhowmuchspaceatablespacenamedtestistakingup,andhowmuchspaceisremaining?
26.Databaseishung.Oldandnewuserconnectionsalikehangonimpact.Whatdoyoudo?YourSYSSQLPLUSsessionISabletoconnect.
27.Databasecrashes.CorruptionisfoundscatteredamongthefilesystemneitherofyourdoingnorofOracles.Whatdatabaserecoveryoptionsareavailable?Databaseisinarchivelogmode.
28.IllustratehowtodeterminetheamountofphysicalCPUsaUnixBoxpossesses(LINUXand/orSolaris)
29.HowdoyouincreasetheOSlimitationforopenfiles(LINUXand/orSolaris)?
30.ProvideanexampleofashellscriptwhichlogsintoSQLPLUSasSYS,determinesthecurrentdate,changesthedateformattoincludeminutesseconds,issuesadroptablecommand,displaysthedateagain,andfinallyexits.
31.ExplainhowyouwouldrestoreadatabaseusingRMANtoPointinTime?
32.HowdoesOracleguaranteedataintegrityofdatachanges?
33.WhichenvironmentvariablesareabsolutelycriticalinordertoruntheOUI?
34.WhatSQLqueryfromv$sessioncanyouruntoshowhowmanysessionsareloggedinasaparticularuseraccount?
35.WhydoesOraclenotpermittheuseofPCTUSEDwithindexes?
36.Whatwouldyouusetoimproveperformanceonaninsertstatementthatplacesmillionsofrowsintothattable?
37.Whatwouldyoudowithanin-doubtdistributedtransaction?
38.Whatarethecommandsyoudissuetoshowtheexplainplanforselect*fromdual?
39.Inwhatscriptissnap$created?Inwhatscriptisthescott/tigerschemacreated?
40.Ifyoureunsureinwhichscriptasysorsystem-ownedobjectiscreated,butyouknowitsinascriptfromaspecificdirectory,whatUNIXcommandfromthatdirectorystructurecanyouruntofindyouranswer?
41.HowwouldyouconfigureyournetworkingfilestoconnecttoadatabasebythenameofDSSwhichresidesindomainicallinc.com?
42.Youcreateaprivatedatabaselinkanduponconnection, failswith ORA-2085connectsto. Whatistheproblem?Howwouldyougoaboutresolvingthiserror?
43.IhavemybackupRMANscriptcalledbackup_rman.sh.Iamonthetargetdatabase.Mycatalogusername/passwordisrman/rman.Mycatalogdbiscalledrman.HowwouldyourunthisshellscriptfromtheO/Ssuchthatitwouldrunasabackgroundprocess?
44.ExplaintheconceptoftheDUALtable.
45.Whatarethewaystablespacescanbemanagedandhowdotheydiffer?
46.Fromthedatabaselevel,howcanyoutellunderwhichtimezoneadatabaseisoperating?
47.Whatsthebenefitofdbms_statsoveranalyze?
48.Typically,whereistheconventionaldirectorystructurechosenforOraclebinariestoreside?
49.YouhavefoundcorruptioninatablespacethatcontainsstatictablesthatarepartofadatabasethatisinNOARCHIVElogmode.Howwouldyourestorethetablespacewithoutlosingnewdataintheothertablespaces?
50.Howdoyourecoveradatafilethathasnotbeenphysicallybeenbackedupsinceitscreationandhasbeendeleted.Providesyntaxexample.如何获得OracleDBA工作? 不过48个小时,就有120封Oracle数据库管理员的求职信堆在了DebbieReames的桌子上,Reames是位于洛杉矶的商业编程公司的高级技术招聘人员然后Reames做了许多招聘人员都做的事情她通过三个步骤的过程剔除了其中的一般简历需要H-1Bvisa信用卡走吧需要重新安置不适合这个工作只在小公司工作过这个职位对你来说太大了 根据多项调查,除了IT历史上最低迷的时期之外,Oracle总是为那些经过认证的专业人士和数据库管理员提过了大量的工作机会当然,具有资格的候选人的列表就更长了当在市场上寻找一份工作的时候,即使是最资深的IT专家都需要记住一些他们在很久以前就学到的规则,并且同时采用一些新的策略 数据库管理员市场可以按照以多种方式分为两个部分——初级和高级 DonBurleson,位于美国北卡罗来纳州Kittrell的BEIOracle顾问公司的所有者,说,那些工作经验少于3年的初级数据库管理员,经常会面临失业和低等的工作市场Burleson曾写过与Oracle技术和职业生涯有关的17本书,其中包括《Oracle工作面试指导ConductingtheOracleJobInterview》,这本书是为那些需要评估Oracle周围候选人的IT经理们准备的指南 “过去,许多公司都不会雇佣初学者,”Burleson说 然而,Burleson说,那些初级数据库管理员仍然是有希望的那些不愿意花12万美元年薪雇佣经验丰富的专家的公司有时候会雇佣这些新手并对他们进行培训Burleson建议那些新入门的数据库管理员可以到体检行业和大学这两个地方去找到他们的第一份工作政府安全检查对资深人员很关键 然后就是资深人士那些拥有超过10年经验的,拥有高级学位,并且具有专业技能的数据库管理员仍然有很大的需求量 Oracle财务知识,SAP,PeopleSoft9iRAC9iAS和Unix都是重要的能力,Burleson说还有,政府安全调查是在第一轮的简历挑选中排除许多Oracle数据库管理员的一项另外,开发技能,例如Java,Windows,J2EE和门户,都是候选人具有竞争力的优势 更重要的是,Reames说,候选人的技能需要与公司的需要相匹配“他们真的需要拥有全面技能,”Reames说 “如果工作需要的是能够进行数据建模的人,”她说,“并且我没有在简历中看见任何的数据建模经验,那么我就会对这个人大打折扣” 除了专业技能之外,Burleson说,许多的公司都愿意要那些有教育背景的人,倾向于雇佣那些拥有研究生学位或者MBA的候选人公司认为那些懂得财务或者会计,具有数据库管理员支持的业务过程知识的数据库管理员有价值 打跟进电话,第一轮面试 对于两个群体,要通过关键的第一轮面试都有一些基本的规则需要遵守 今早地投递简历是有帮助的如果有120份简历需要阅读的话,Reames也许不会把所有简历都读完就找到了达到面试要求,具有足够特点的候选人 候选人应该给招聘人员打电话确认他们的简历被收到了,她说“不要害怕打跟进电话,”Reames说“这会带给你一个优势,否则我们可能就不会看你的简历” 通过第一轮筛选的申请人通常是在电话中面试记住面试你的人也许没有任何技术背景,这一点很重要,Burleson说在这一点上,是对候选人从技术之外的其他品质上进行判断专家说,此时沟通技巧非常重要 因为沟通技巧在工作中是如此的重要,Burleson推荐候选人提供给潜在的雇主写作样例,尤其是那些得到发表的有几个在线网站,包括这一个,都接受技术贴士投稿,他指出实际的技术对话 少数能够通过电话面试的候选人能够到工作地点去进行面试,Burleson称之为候选人的技术化他建议面试人员提出一些专业的问题,例如“Oracle中的SYS用户默认密码是多少” 这些问题没有捏造的答案,面试人员可以轻松地判断候选人的技术能力“只有那些实践过的数据库管理员知道答案是‘change_on_install’”Burleson说“经验丰富的数据库管理员可以立即发现谎话” 然后就是最后一个阶段,与公司的IT人员在线会见这些会见通常会持续半天,这是真正在测试你是否会被雇佣有时候是一些开放的问题,例如“如果一个终端用户抱怨性能差劲,你要做的第一件事情是什么”这些问题的答案非常具有启发性,Burleson说,因为他们也没有正确答案,他们只是看看候选人是如何独立思考的,或者是数据库管理员有多少创新思维 也许更重要的是,这个最后的交流就是判断一些无形的,例如人际关系技巧的过程拥有一个能够成为团队中一员的数据库管理员对于大多数公司即使不是所有的公司来说都是优先考虑的在很多情况下,这些无形的东西形成了差别 “我见过公司拒绝了技术能力最强的候选人这样的事情总是发生,”Burleson指出“数据库管理员需要与其他人打好关系” 最后,Burleson说,忘掉星期五可以穿便装的习惯 “面试中穿得太随便是对自己的极度不负责,”他说 “外表确实重要”整理了几个Oracle面试中的技术问题,各位可以借鉴一下
1.解释冷备份和热备份的不同点以及各自的优点解答热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下数据库性能会比归档模式稍好(因为不必将archivelog写入硬盘)
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?解答重建控制文件,用带backupcontrolfile子句的recover命令恢复数据库
3.如何转换init.ora到spfile解答使用createspfilefrompfile命令.
4.解释datablockextent和segment的区别(这里建议用英文术语)解答datablock是数据库中最小的逻辑存储单元当数据库的对象需要更多的物理存储空间时,连续的datablock就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment.
5.给出两个检查表结构的方法解答
1.DESCRIBE命令
6.DBMS_METADATA.GET_DDL包
7.怎样查看数据库引擎的报错解答alertlog.评价这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度OracleDBA问题记录
1.select执行时oracle内部的过程 分析其中包括语法分析、语义分析、视图转换、表达式转换、选择优化器、选择连接方式、选择连接顺序、选择数据搜索路径等等,然后在SGA中的共享SQL区中找是否执行过该语句,如找到则直接执行已编译的SQL语句,如没有找到,则先编译后放入SGA,并执行编译后的SQL语句 执行在执行编译过的SQL语句时,先在SGA中的数据库缓冲区内查找是否存在所需要的数据,如有直接读取,如果没有,则从物理文件中读取至数据库缓冲区并读取 返回结果对SELECT语句需要返回结果的语句,先看是否需要排序,需要,则排序后返回给用户,然后根据内存的大小不同,可以一次取出一行数据,也可以一次取一组数据
2.热备份导致非一致性解决方法 使用热备份会导致备份的数据具有非一致性,在Oracle提供的RMAN工具中可以依靠联机重做日志解决恢复备份时导致的非一致性
3.热备份所备份文件 数据库文件 日志文件 控制文件 参数文件 口令文件 网络参数文件
4.数据库中的最小读写操做以什么为单位 Oracleblock是Oracle数据库中读写操作的最小单元一个Oracleblock由三个部分组成,分别是数据块头、自由空间、实际数据三部份组成 数据块头主要包含有数据块地址的一些基本信息和段的类型,以及表和包含有数据的实际行的地址 自由空间是指可以为以后的更新和插入操作分配的空间,大小由PCTFREE和PCTUSED两个参数影响 实际数据是指在行内存储的实际数据 当创建或者更改任何表和索引的时候,Oracle在空间控制方面使用两个存储参数PCTFREE:为将来更新已经存在的数据预留空间的百分比PCTUSED:用于为插入一新行数据的最小空间的百分比这个值决定了块的可用状态可用的块时可以执行插入的块,不可用状态的块只能执行删除和修改,可用状态的块被放在freelist中
5.数据库的两种连接模式
1.专用服务器连接dedicatedserver 在专用服务器模式下,优点就是每个用户都有一个连接,所以大家不至于有的应用占着连接造成别的客户的请求给挂起了而最大的缺点在于内存管理上
2.共享服务器连接sharedserver 而共享连接方式优点在于连接数量固定,所以内存数量不会占用很多共享服务器的最大的缺点还是在于数据仓库模式下运行的时候,如果有大量的请求需要长时间占用服务器,那么就会造成很多别的请求的挂起,导致整个服务器性能的降低
6.oracle服务器的体系结构 oracle系统体系结构由实例、逻辑结构和物理结构组成
1.实例SGA、系统监视SMON、进程监视PMON、数据库写入器DBWn、日志写入器LGWR、检查点CKPT等进程组成
2.逻辑结构主要由表空间、段、区和数据块等概念组成逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构数据库存储层次结构及其构成关系结构对象也从数据块到表空间形成了不同层次的粒度关系
3.物理结构主要是数据库文件,包括控制文件、重做日志文件、数据文件等等
7.RAC实际应用群集 RAC允许不同计算机上的多个实例打开共享磁盘系统上的一个或多个公用数据库,它极大地提高了数据库的性能、容错和可伸缩性多对多的架构也可用较低的价格扩展数据库规模
8.Linux启动过程 poweron--BIOS自检--LILO/GRUB调用---KERNEL调用--INIT调用---MIGGETTY--LOGIN
9.Linux决定开机后是否进入GUI界面的配置文件名 在UNIX/Linux中一般将运行级别分为7级(一说九级,但实际应用为六级,保留一级) 0系统停机 1单用户模式 2多用户模式 3网络多用户模式 4保留 5X11模式(即进入图形界面模式) 6重起 系统将其设置在/etc/inittab配置文件中 id:3:initdefault:
10.oracle调整工具
1.STATSPACK通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态
2.SQLTuning SQLTuningAdvisor用一个调整工具集作为输入,检查其中的语句并为它们提出优化建议
11.DateGuard Oracle9iDataGuard通过使用称为standbydatabase的数据库来防止出现数据的灾难它通过将primarydatabase数据库的重做日志传到并应用到standbydatabase数据库来使standbydatabase数据库与primarydatabase数据库同步 OracleStandbyDatabase是最经常使用的最有效的灾难解决方案在过去版本的基础上,Oracle9i又进行了许多改进,使其功能远远超过了基本的灾难恢复要求通过将复杂的工作自动化,并对监控、警告、以及控制机制的大规模改进,StandbyDatabase和一些新的模块可以帮助DBA从错误操作、瘫痪、以及其它的灾难中恢复(这些灾难都可能毁掉数据库)另外,通过使用Oracle9iStandbyDatabase,由于硬件和软件升级造成的宕机时间也可以极度缩短 Oracle9i将改进过的8版本的StandbyDatabase功能,与几个新增加的防止用户错误和瘫痪的模块合起来称为Oracle9iDataGuardoracle存储过程的基本语法
1.基本结构CREATEORREPLACEPROCEDURE存储过程名字参数1INNUMBER参数2INNUMBERIS变量1INTEGER:=0;变量2DATE;BEGINEND存储过程名字
2.SELECTINTOSTATEMENT将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常如果没有记录抛出NO_DATA_FOUND例子BEGINSELECTcol1col2into变量1变量2FROMtypestructwherexxx;EXCEPTIONWHENNO_DATA_FOUNDTHENxxxx;END;...
3.IF判断IFV_TEST=1THENBEGINdosomethingEND;ENDIF;
4.while循环WHILEV_TEST=1LOOPBEGINXXXXEND;ENDLOOP;
5.变量赋值V_TEST:=123;
6.用forin使用cursor...ISCURSORcurISSELECT*FROMxxx;BEGINFORcur_resultincurLOOPBEGINV_SUM:=cur_result.列名1+cur_result.列名2END;ENDLOOP;END;
7.带参数的cursorCURSORC_USERC_IDNUMBERISSELECTNAMEFROMUSERWHERETYPEID=C_ID;OPENC_USER变量值;LOOPFETCHC_USERINTOV_NAME;EXITFETCHC_USER%NOTFOUND;dosomethingENDLOOP;CLOSEC_USER;
8.用pl/sqldeveloperdebug连接数据库后建立一个TestWINDOW在窗口输入调用SP的代码F9开始debugCTRL+N单步调试关于oracle存储过程的若干问题备忘
1.在oracle中,数据表别名不能加as,如selecta.appnamefromappinfoa;--正确selecta.appnamefromappinfoasa;--错误也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧
2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了selectaf.keynodeintoknfromAPPFOUNDATIONafwhereaf.appid=aidandaf.foundationid=fid;--有into,正确编译selectaf.keynodefromAPPFOUNDATIONafwhereaf.appid=aidandaf.foundationid=fid;--没有into,编译报错,提示CompilationError:PLS-00428:anINTOclauseisexpectedinthisSELECTstatement
3.在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出nodatafound异常可以在该语法之前,先利用selectcount*from查看数据库中是否存在该记录,如果存在,再利用select...into...
4.在存储过程中,别名不能和字段名称相同,否则虽然编译可以通过,但在运行阶段会报错selectkeynodeintoknfromAPPFOUNDATIONwhereappid=aidandfoundationid=fid;--正确运行selectaf.keynodeintoknfromAPPFOUNDATIONafwhereaf.appid=appidandaf.foundationid=foundationid;--运行阶段报错,提示ORA-01422:exactfetchreturnsmorethanrequestednumberofrows
5.在存储过程中,关于出现null的问题假设有一个表A,定义如下createtableAidvarchar250primarykeynotnullvcountnumber8notnullbidvarchar250notnull--外键;如果在存储过程中,使用如下语句selectsumvcountintofcountfromAwherebid=xxxxxx;如果A表中不存在bid=xxxxxx的记录,则fcount=null即使fcount定义时设置了默认值,如fcountnumber8:=0依然无效,fcount还是会变成null,这样以后使用fcount时就可能有问题,所以在这里最好先判断一下iffcountisnullthenfcount:=0;endif;这样就一切ok了
6.Hibernate调用oracle存储过程newHibernateCallback...{publicObjectdoInHibernateSessionsessionthrowsHibernateExceptionSQLException...{CallableStatementcs=session.connection.prepareCall{callmodifyapppnumber_remain};cs.setString1foundationid;cs.execute;returnnull;}};ORACLE里锁有以下几种模式: 0none 1null空 2Row-S行共享RS共享表锁 3Row-X行专用RX用于行的修改 4Share共享锁S阻止其他DML操作 5S/Row-X共享行专用SRX阻止其他事务操作 6exclusive专用X独立访问使用 数字越大锁级别越高影响的操作越多 一般的查询语句如select...from...;是小于2的锁有时会在v$locked_object出现 select...from...forupdate;是2的锁 当对话使用forupdate子串打开一个游标时,所有返回集中的数据行都将处于行级Row-X独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select...forupdate操作 insert/update/delete...;是3的锁没有commit之前插入同样的一条记录会没有反应因为后一个3的锁会一直等待上一个3的锁我们必须释放掉上一个才能继续工作 创建索引的时候也会产生34级别的锁 locked_mode为234不影响DMLinsertdeleteupdateselect操作 但DDLalterdrop等操作会提示ora-00054错误 有主外键约束时update/delete...;可能会产生45的锁 DDL语句时是6的锁 以DBA角色查看当前数据库里锁的情况可以用如下SQL语句 selectobject_idsession_idlocked_modefromv$locked_object; selectt
2.usernamet
2.sidt
2.serial#t
2.logon_time fromv$locked_objectt1v$sessiont2 wheret
1.session_id=t
2.sidorderbyt
2.logon_time; 如果有长期出现的一列,可能是没有释放的锁 我们可以用下面SQL语句杀掉长期没有释放非正常的锁 altersystemkillsessionsidserial#; 如果出现了锁的问题某个DML操作可能等待很久没有反应 当你采用的是直接连接数据库的方式, 也不要用OS系统命令$killprocess_num或者$kill-9process_num来终止用户连接,因为一个用户进程可能产生一个以上的锁杀OS进程并不能彻底清除锁的问题 记得在数据库级别用altersystemkillsessionsidserial#;杀掉不正常的锁OracleDBA有关回滚段管理试题精选Q.1:Whatsystemprivilegeisrequiredtocreatearollbacksegment
1.Createdatabase
2.Createrollbacksegment
3.Alterdatabase
4.CreatesegmentKEY:2Q.2:Oraclerecommendsthisnumberofminimumextentsinarollbacksegment
1.
02.
13.
24.3KEY:3Q.3:Oraclerecommendsthatthefollowingsegmentsizewhencreatingarollbacksegment
1.INITIALNEXT
2.INITIAL=NEXT
3.INITIALNEXT
4.NONEOFTHEABOVE KEY:2 Q.4:TheOPTIMALparameterforarollbacksegmentshouldbeset
1.largeforlong-frequentlyrunningtransactionssmallforshorttransactions.
2.smallforlong-frequentlyrunningtransactionslargeforsmalltransactions.
3.smallforalltransactions
4.largeforalltransactionsKEY:1Q.5:IncaseofsystemfailureThistypeofsegmentisusedtoundothechanges
1.DataSegment
2.TempSegment
3.RedoSegment
4.RollbackSegmentKEY:4:RollbackSegmentsareusedtorollbackinformationthathasalreadybeenappliedtodatabase.Duringrecoverythedatabaseisrolledforwardandthenbackwardstoaconsistentstate.Q.6:Thisisavalidstorageparameterwhencreatingarollbacksegment
1.FREELISTS
2.OPTIMAL
3.PARTITION
4.NONEOFTHEABOVE KEY:2Q.7:Madhucreatedacoupleofprivaterollbacksegments.Whatshouldhedonowtomakethemonlineautomaticallyduringstartup
1.Grantonlineduringstartuptothesegments
2.Addrollback_segments=rbs1rbs2inparameterfile
3.Dropsegmentsandrecreatethemasprotected
4.NoneoftheaboveKEY:2 Q.8:Whichistrueregardingrollbacksegments
1.SystemRollbackSegmentCannotbeputinanofflinemode
2.Tablespacescontainingrollbacksegmentswithactivetransactionscanbeputinofflinemode
3.Alloftheabove
4.NoneoftheaboveKEY:1Q.9:Arollbacksegment____
1.writestotheredologs
2.requiresoneforeachtablespace
3.recordschangesonlyaftertheyarecommitted
4.providesforreadconsistencyKEY:4Q.10:Whichtypeofsegmentcanrecordchangesformultipletransactions
1.DATASEGMENT
2.TEMPSEGMENT
3.ROLLBACK
4.NONEOFTHEABOVEKEY:3Q.11:Thetypeofrollbacksegmentthatiscreatedwhenatablespacegoesofflineis
1.PRIVATE
2.PUBLIC
3.DEFFERED
4.PROTECTEDKEY:3oracle笔记(DBA管理)
1、通常oracle需要启动OracleServiceORCLOracleStartORCLOracleTNSListener任务在NT上至少要启动两个服务oraclestartID和oracleserverID每个数据库都有一个系统标识符SID,典型安装的数据库使用的系统标识符是ORCL
2、启动关闭数据库关闭svrmgrconnectinternal/oracleshutdown--正常关闭数据库svrmgrshutdownimmediate--立即关闭数据库svrmgrshutdownabort--一种最直接的关闭数据库的方式,执行之后,重新启动需要花6-8小时启动svrmgrstartup--正常启动--等价于:startupnomount;alterdatabasemount;alterdatabaseopen;svrmgrstartupmount;--安装启动用于改变数据库的归档或执行恢复状态svrmgrstartupnomount;--用于重建控制文件或重建数据库svrmgrstartuprestrict;--约束启动,能启动数据库,但只允许具有一定特权的用户访问如果希望改变这种状态,连接成功后altersystemdisablerestrictedsession;svrmgrstartupforce;当不能关闭数据库时,可采用强制启动数据库来完成数据库的关闭操作svrmgrstartuppfile=d:\orant\database\initorcl.ora--带初始化参数文件的启动
3、缺省用户和密码
1.Oracle安装完成后的初始口令 internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp
2.ORACLE9IASWEBCACHE的初始默认用户和密码?administrator/administrator
4、让定义自己的回滚段生效在initorcl.ora中加入rollback_segments=rb0rb
1...其中rb0rb1为自己定义的回滚段,可使这些回滚段在启动时生效
5、查看修改数据库的字符集1数据库服务器字符集在表props$中updateprops$setvalue$=ZHS16CGB231280wherename=NLS_CHARACTERSET然后重新启动数据库,而不需要重新安装8i以上版本可以通过alterdatabase来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误Startupnomount;Alterdatabasemountexclusive;Altersystemenablerestrictedsession;Altersystemsetjob_queue_process=0;Alterdatabaseopen;Alterdatabasecharactersetzhs16gbk;sqlshowparameterNLS查看数据库字符集:SELECT*FROMNLS_DATABASE_PARAMETERS;SELECT*FROMV$NLS_PARAMETERS;2客户端字符集环境select*fromnls_instance_parameters其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表会话字符集环境select*fromnls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是altersession完成,如果会话没有特殊的设置,将与nls_instance_parameters一致客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符如果多个设置存在的时候,altersession环境变量注册表参数文件字符集要求一致,但是语言设置却可以不同,语言设置建议用英文如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk3有时候用crontab发起的时候,由于执行的shell脚本的不同,导致很多的环境变量不同常常看到插入到数据库中的汉字变成乱码比如shell脚本cai.sh如下内容#!/bin/kshexportORACLE_BASE=/u01/oracle/app/oracleexportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATHexportSHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib是个大好人呀;commit;quit!在crontab中定时每天20:19执行一次1920***/bin/sh/app/prepay/cai.sh/dev/null21则可以看到数据库中数据变成了:2LQSJY当前数据库的字符集是SELECT*FROMNLS_DATABASE_PARAMETERSAMERICAN.ZHS16GBK为了正常,必须保持客户端和数据库一致的字符集改脚本如下即可#!/bin/kshexportORACLE_BASE=/u01/oracle/app/oracleexportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATHexportSHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib####下面就是增加的exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK是个大好人呀;commit;quit!
6、svgmgrshowsga
7、查询锁的原因如果进程被死锁,可以按下面方式查询1从v$session或者v$locked_object找到此session2如果有lockwait,查询v$lockselect*fromv$lockwherekaddr=C00000024AB87210如果没有,根据sidselect*fromv$lockwheresid=4383查看v$locklmode0,表示已经得到此锁request0表示正在请求此锁根据id1和id2的值可以判断请求哪个锁的释放select*fromv$lockwhereid1=134132andid2=
314318.查询锁的状况的对象V$LOCKV$LOCKED_OBJECTV$SESSIONV$SQLAREAV$PROCESS;查询锁的表的方法:SELECTS.SIDSESSION_IDS.USERNAMEDECODELMODE0None1Null2Row-SSS3Row-XSX4Share5S/Row-XSSX6ExclusiveTO_CHARLMODEMODE_HELDDECODEREQUEST0None1Null2Row-SSS3Row-XSX4Share5S/Row-XSSX6ExclusiveTO_CHARREQUESTMODE_REQUESTEDO.OWNER||.||O.OBJECT_NAME||||O.OBJECT_TYPE||S.TYPELOCK_TYPEL.ID1LOCK_ID1L.ID2LOCK_ID2FROMV$LOCKLSYS.DBA_OBJECTSOV$SESSIONSWHEREL.SID=S.SIDANDL.ID1=O.OBJECT_ID;
9.怎样查得数据库的SIDselectnamefromv$database;也可以直接查看init.ora文件
10、管理回滚段:存放事务的恢复信息建立回滚段createpublicrollbacksegmentSEG_NAMEtabelspaceTABLESPACE_NAME;alterrollbacksegmentSEG_NAMEonline;删除回滚段首先改变为offline状态直接使用回滚段sqlsettransactionuserollbacksegmentSEG_NAME;
11.计算一个表占用的空间的大小selectownertable_nameNUM_ROWSBLOCKS*AAA/1024/1024SizeMEMPTY_BLOCKSLAST_ANALYZEDfromdba_tableswheretable_name=XXX;Here:AAAisthevalueofdb_block_size;XXXisthetablenameyouwanttocheck
12.表在表空间中的存储情况selectsegment_namesumbytescount*ext_quanfromdba_extentswheretablespace_name=tablespace_nameandsegment_type=TABLEgroupbytablespace_namesegment_name;
13.索引在表空间中的存储情况selectsegment_namecount*fromdba_extentswheresegment_type=INDEXandowner=ownergroupbysegment_name;
14.查看某表/索引的大小表SQLselectsumbytes/1024*1024assizeMfromuser_segmentswheresegment_name=uppertable_name;索引SQLselectsumbytes/1024*1024assizeMfromuser_segmentswheresegment_name=upperindex_name;
15、确定可用空间selecttablespace_namesumblockssumbytesfromsys.dba_free_spacegroupbytablespace_name;
16、程序中报错:maxinumcursorexceed!1查看当前的opencursor参数sqlshowparameteropen_cursors2如果确实很小,应该调整数据库初始化文件加如一项open_cursors=2003如果很大,则selectsidsql_textcount*fromv$open_cursorgroupbysidsql_texthavingcount*200其中200是随便写一个比较大的值查询得到打开太多的cursor.
17、查看数据库的版本信息SQLselect*fromv$version;包含版本信息,核心版本信息,位数信息32位或64位等至于位数信息,在linux/unix平台上,可以通过file查看,如file$ORACLE_HOME/bin/oracle
18.查看最大会话数SELECT*FROMV$PARAMETERWHERENAMELIKEproc%;SQLSQLshowparameterprocessesNAMETYPEVALUE-------------------------------------------------------------------------aq_tm_processesinteger1db_writer_processesinteger1job_queue_processesinteger4log_archive_max_processesinteger1processesinteger200这里为200个用户select*fromv$license;其中sessions_highwater纪录曾经到达的最大会话数
19.以archivelog的方式运行oracleinit.oralog_archive_start=trueRESTARTDATABASE
20.unix下调整数据库的时间su-rootdate-u
0801000021.P4电脑的安装方法将SYMCJIT.DLL改为SYSMCJIT.OLD
22.如何查询SERVER是不是OPSSELECT*FROMV$OPTION;如果PARALLELSERVER=TRUE则有OPS能
23.查询每个用户的权限SELECT*FROMDBA_SYS_PRIVS;
24.将表/索引移动表空间ALTERTABLETABLE_NAMEMOVETABLESPACE_NAME;ALTERINDEXINDEX_NAMEREBUILDTABLESPACETABLESPACE_NAME;
25.在LINUXUNIX下启动DBASTUDIOOEMAPPDBASTUDIO
26.LINUX下查询磁盘竞争状况命令Sar-d
27.LINUX下查询磁盘CPU竞争状况命令sar-r
28.查询表空间信息SELECT*FROMDBA_DATA_FILES;
29.看各个表空间占用磁盘情况:SQLcoltablespaceformata20SQLselectb.file_id文件ID号b.tablespace_name表空间名b.bytes字节数b.bytes-sumnvla.bytes0已使用sumnvla.bytes0剩余空间sumnvla.bytes0/b.bytes*100剩余百分比fromdba_free_spaceadba_data_filesbwherea.file_id=b.file_idgroupbyb.tablespace_nameb.file_idb.bytesorderbyb.file_id
30.如把ORACLE设置为MTS或专用模式?#dispatchers=PROTOCOL=TCPSERVICE=SIDXDB加上就是MTS,注释就是专用模式,SID是指你的实例名
31.如何才能得知系统当前的SCN号selectmaxktuxescnw*power232+ktuxescnbfromx$ktuxe;
32.修改oracel数据库的默认日期altersessionsetnls_date_format=yyyymmddhh24miss;OR可以在init.ora中加上一行nls_date_format=yyyymmddhh24miss
33.将小表放入keep池中altertablexxxstoragebuffer_poolkeep;
34.如何检查是否安装了某个patchcheckthatoraInventory
35.如何修改oracle数据库的用户连接数?修改initSID.ora,将process加大,重启数据库.
36.如何创建SPFILESQLconnect/assysdbaSQLselect*fromv$version;SQLcreatepfilefromspfile;SQLCREATESPFILEFROMPFILE=E:\ora9i\admin\eygle\pfile\init.ora;文件已创建SQLCREATESPFILE=E:\ora9i\database\SPFILEEYGLE.ORAFROMPFILE=E:\ora9i\admin\eygle\pfile\init.ora;文件已创建
37.内核参数的应用shmmax 含义这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目这个设置也不影响操作系统的内核资源 设置方法
0.5*物理内存 例子Setshmsys:shminfo_shmmax=10485760 shmmin 含义共享内存的最小大小 设置方法一般都设置成为1 例子Setshmsys:shminfo_shmmin=1 shmmni 含义系统中共享内存段的最大个数 例子Setshmsys:shminfo_shmmni=100 shmseg 含义每个用户进程可以使用的最多的共享内存段的数目 例子Setshmsys:shminfo_shmseg=20 semmni 含义系统中semaphoreidentifierer的最大个数 设置方法把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10 例子Setsemsys:seminfo_semmni=100 semmns 含义系统中emaphores的最大个数 设置方法这个值可以通过以下方式计算得到各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数 例子Setsemsys:seminfo_semmns=200 semmsl: 含义一个set中semaphore的最大个数 设置方法设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值 例子Setsemsys:seminfo_semmsl=-
20038.怎样查看哪些用户拥有SYSDBA、SYSOPER权限?SQLconnsys/change_on_installSQLselect*fromV_$PWFILE_USERS;
39.如何查看数据文件放置的路径colfile_nameformata50SQLselecttablespace_namefile_idbytes/1024/1024file_namefromdba_data_filesorderbyfile_id;
40.如何查看现有回滚段及其状态SQLcolsegmentformata30SQLSELECTSEGMENT_NAMEOWNERTABLESPACE_NAMESEGMENT_IDFILE_IDSTATUSFROMDBA_ROLLBACK_SEGS
41.Oracle常用系统文件有哪些?通过以下视图显示这些文件信息v$databasev$datafilev$logfilev$controlfilev$parameter;
42.查看数据库实例SQLSELECT*FROMV$INSTANCE;
43.怎样估算SQL执行的I/O数SQLSETAUTOTRACEON;SQLSELECT*FROMTABLE;ORSQLSELECT*FROMv$filestat;可以查看IO数
44.怎样扩大REDOLOG的大小?建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志
45.查询做比较大的排序的进程?1SELECTb.tablespaceb.segfile#b.segblk#b.blocksa.sida.serial#a.usernamea.osusera.statusFROMv$sessionav$sort_usagebWHEREa.saddr=b.session_addrORDERBYb.tablespaceb.segfile#b.segblk#b.blocks;
2.查询做比较大的排序的进程的SQL语句select/*+ORDERED*/sql_textfromv$sqltextawherea.hash_value=selectsql_hash_valuefromv$sessionbwhereb.sid=sidandb.serial#=serialorderbypieceasc;
46.ORA-01555SNAPSHOTTOOOLD的解决办法增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值如果是执行大的事务,报此错误,说明oracle给此事务随机分配的回滚段太小了这时可以为它指定一个足够大的回滚段以确保这个事务的成功执行.例如settransactionuserollbacksegmentroll_abc;deletefromtable_namewhere...commit; 回滚段roll_abc被指定给这个delete事务commit命令则在事务结束之后取消了回滚段的指定.
47.事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)的解决办法.向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值
48.监控事例的等待selecteventsumdecodewait_Time001Prevsumdecodewait_Time010Currcount*Totfromv$session_Waitgroupbyeventorderby4;
49.回滚段的争用情况selectnamewaitsgetswaits/getsRatiofromv$rollstatCv$rollnameDwhereC.usn=D.usn;50监控表空间的I/O比例selectB.tablespace_namenameB.file_namefileA.phyrdspyrA.phyblkrdpbrA.phywrtspywA.phyblkwrtpbwfromv$filestatAdba_data_filesBwhereA.file#=B.file_idorderbyB.tablespace_name;
51、监控文件系统的I/O比例selectsubstrC.file#12#substrC.name130NameC.statusC.bytesD.phyrdsD.phywrtsfromv$datafileCv$filestatDwhereC.file#=D.file#;
52、监控SGA的命中率selecta.value+b.valuelogical_readsc.valuephys_readsround100*a.value+b.value-c.value/a.value+b.valueBUFFERHITRATIOfromv$sysstatav$sysstatbv$sysstatcwherea.statistic#=38andb.statistic#=39andc.statistic#=40;
53、监控SGA中字典缓冲区的命中率selectparametergetsGetmissesgetmisses/gets+getmisses*100missratio1-sumgetmisses/sumgets+sumgetmisses*100Hitratiofromv$rowcachewheregets+getmisses0groupbyparametergetsgetmisses;
54、监控SGA中共享缓存区的命中率,应该小于1%selectsumpinsTotalPinssumreloadsTotalReloadssumreloads/sumpins*100libcachefromv$librarycache;selectsumpinhits-reloads/sumpinshitradiosumreloads/sumpinsreloadpercentfromv$librarycache;
55、显示所有数据库对象的类别和大小selectcountnamenum_instancestypesumsource_sizesource_sizesumparsed_sizeparsed_sizesumcode_sizecode_sizesumerror_sizeerror_sizesumsource_size+sumparsed_size+sumcode_size+sumerror_sizesize_requiredfromdba_object_sizegroupbytypeorderby2;
56、监控SGA中重做日志缓存区的命中率,应该小于1%SELECTnamegetsmissesimmediate_getsimmediate_missesDecodegets00misses/gets*100ratio1Decodeimmediate_gets+immediate_misses00immediate_misses/immediate_gets+immediate_misses*100ratio2FROMv$latchWHEREnameINredoallocationredocopy;
57、监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_sizeSELECTnamevalueFROMv$sysstatWHEREnameINsortsmemorysortsdisk;
58、监控当前数据库谁在运行什么SQL语句?SELECTosuserusernamesql_textfromv$sessionav$sqltextbwherea.sql_address=b.addressorderbyaddresspiece;
59、监控字典缓冲区?SELECTSUMPINS-RELOADS/SUMPINSLIBCACHEFROMV$LIBRARYCACHE;SELECTSUMGETS-GETMISSES-USAGE-FIXED/SUMGETSROWCACHEFROMV$ROWCACHE;SELECTSUMPINSEXECUTIONSSUMRELOADSCACHEMISSESWHILEEXECUTINGFROMV$LIBRARYCACHE;后者除以前者此比率小于1%接近0%为好SELECTSUMGETSDICTIONARYGETSSUMGETMISSESDICTIONARYCACHEGETMISSESFROMV$ROWCACHE
60、监控MTSselectbusy/busy+idlesharedserversbusyfromv$dispatcher;此值大于
0.5时,参数需加大selectsumwait/sumtotalqdispatcherwaitsfromv$queuewheretype=dispatcher;selectcount*fromv$dispatcher;selectservers_highwaterfromv$mts;servers_highwater接近mts_max_servers时,参数需加大
61、查看碎片程度高的表SELECTsegment_nametable_nameCOUNT*extentsFROMdba_segmentsWHEREownerNOTINSYSSYSTEMGROUPBYsegment_nameHAVINGCOUNT*=SELECTMAXCOUNT*FROMdba_segmentsGROUPBYsegment_name;
62、如何知道使用CPU多的用户session11是cpuusedbythissessionselecta.sidspidstatussubstra.program140proga.terminalosuservalue/60/100valuefromv$sessionav$processbv$sesstatcwherec.statistic#=11andc.sid=a.sidanda.paddr=b.addrorderbyvaluedesc;
63.如何检查操作系统是否存在IO的问题使用的工具有sar这是一个比较通用的工具#sar-u210即每隔2秒检察一次,共执行20次,当然这些都由你决定了示例返回18:26:32%usr%sys%wio%idle18:26:3480912018:26:36781111018:26:3878913118:26:4081109118:26:42751014018:26:4476815018:26:4680910118:26:48781111018:26:50791010018:26:52811090Average7910110其中的%usr指的是用户进程使用的cpu资源的百分比,%sys指的是系统资源使用cpu资源的百分比,%wio指的是等待io完成的百分比,这是值得我们观注的一项,%idle即空闲的百分比如果wio列的值很大,如在35%以上,说明你的系统的IO存在瓶颈,你的CPU花费了很大的时间去等待IO的完成Idle很小说明系统CPU很忙像我的这个示例,可以看到wio平均值为11说明io没什么特别的问题,而我的idle值为零,说明我的cpu已经满负荷运行了
64.关注一下内存常用的工具便是vmstat,对于hp-unix来说可以用glanceAix来说可以用topas当你发现vmstat中pi列非零,memory中的free列的值很小,glancetopas中内存的利用率多于80%时,这时说明你的内存方面应该调节一下了,方法大体有以下几项a.划给Oracle使用的内存不要超过系统内存的1/2一般保在系统内存的40%为益b.为系统增加内存c.如果你的连接特别多,可以使用MTS的方式d.打全补丁,防止内存漏洞
65、查找前十条性能差的sql.SELECT*FROMSELECTPARSING_USER_IDEXECUTIONSSORTSCOMMAND_TYPEDISK_READSsql_textFROMv$sqlareaORDERBYdisk_readsDESCWHEREROWNUM10;
66、查看占io较大的正在运行的sessionSELECTse.sidse.serial#pr.SPIDse.usernamese.statusse.terminalse.programse.MODULEse.sql_addressst.eventst.p1textsi.physical_readssi.block_changesFROMv$sessionsev$session_waitstv$sess_iosiv$processprWHEREst.sid=se.sidANDst.sid=si.sidANDse.PADDR=pr.ADDRANDse.sid6ANDst.wait_time=0ANDst.eventNOTLIKE%SQL%ORDERBYphysical_readsDESC对检索出的结果的几点说明1我是按每个正在等待的session已经发生的物理读排的序,因为它与实际的IO相关2你可以看一下这些等待的进程都在忙什么,语句是否合理?Selectsql_addressfromv$sessionwheresid=;Select*fromv$sqltextwhereaddress=;执行以上两个语句便可以得到这个session的语句你也以用altersystemkillsessionsidserial#;把这个session杀掉3应观注一下event这列,这是我们调优的关键一列,下面对常出现的event做以简要的说明a、bufferbusywaits,freebufferwaits这两个参数所标识是dbwr是否够用的问题,与IO很大相关的,当v$session_wait中的freebufferwait的条目很小或没有的时侯,说明你的系统的dbwr进程决对够用,不用调整;freebufferwait的条目很多,你的系统感觉起来一定很慢,这时说明你的dbwr已经不够用了,它产生的wio已经成为你的数据库性能的瓶颈,这时的解决办法如下a.1增加写进程,同时要调整db_block_lru_latches参数示例修改或添加如下两个参数db_writer_processes=4db_block_lru_latches=8a.2开异步IO,IBM这方面简单得多,hp则麻烦一些,可以与Hp工程师联系b、dbfilesequentialread,指的是顺序读,即全表扫描,这也是我们应该尽量减少的部分,解决方法就是使用索引、sql调优,同时可以增大db_file_multiblock_read_count这个参数c、dbfilescatteredread这个参数指的是通过索引来读取,同样可以通过增加db_file_multiblock_read_count这个参数来提高性能d、latchfree与栓相关的了,需要专门调节e、其他参数可以不特别观注
67.文件说明1监听器日志文件以8I为例$ORACLE_HOME/NETWORK/LOG/LISTENER.LOG
2.监听器参数文件以8I为例$ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA
3.TNS连接文件以8I为例$ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA
4.Sql*Net环境文件以8I为例$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA
5.警告日志文件以8I为例$ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG
6.基本结构以8I为例$ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL
7.建立数据字典视图以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL
8.建立审计用数据字典视图以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL
9.建立快照用数据字典视图以8I为例$ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL数据技术求职点评OracleDBA面试题IT工作市场是如此的紧张,每个可获得的职位都有一堆人在申请NaveenNahata为OracleE-BusinessSuite的数据库管理员申请者提供了以下一些面试时的技术问题,它可以帮助申请者们快速脱颖而出如果你的面试官有类似的问题问你,发个邮件给我,我将会把它添加在列表中――编者按 问题 1如果信息采集管理系统ICM崩溃了怎么办 2你如何加速打补丁的过程 3打补丁的过程中出错了,你怎么办 4请提供克隆过程和克隆之后采取的手工操作的大概步骤 5介绍一下AutoConfigAutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的 6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗你要检查哪个配置文件操作选项和文件 7如果你不能看到并发管理日志和输出文件,是哪里出错了 8你是如何更改并发管理日志和输出文件的位置的 9如果用户正遇到性能方面的问题,你如何找到问题的原因 10你如何更改应用程序的密码 11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名 答案 1所有其他的管理器都会继续工作ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器 2
2.1你可以合并多个补丁
2.2你可以为一个非交互的补丁创建一个响应文件
2.3你可以通过选项nocompiledbnomaintainmrcnocompilejsp来应用补丁,并且在应用了所有的补丁之后,一次运行它们 3查看失败工作的日志,找到并且纠正错误,用adctrl工具重新开启工作4在源文件上所有层运行pre-clone,使用RMAN复制数据库或者从热或者冷备份中重新存储数据库,拷贝文件系统,然后在目标文件所有层上运行post-clone 手工步骤可能会更多:
4.1改变所有的非网站配置选项数值快速克隆的话,只改变网站级别的配置文件选项
4.2修改工作流和并发管理器表 .3更改打印机 5AutoConfig使用了一个上下文文件来维护关键的配置文件一个上下文文件就是一个XML文件,在$APPL_TOP/admin目录下,进行集中式的存储 当你运行AutoConfig的时候,它读取XML文件,并且创建所有的AutoConfig管理配置文件 对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的 6
6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库
6.2查看apache/jserv是否启动了
6.3运行IsItWorkingFND_WEB.PINGaoljtest等 7很有可能是FNDFS监听器停止了看看FND_CONCURRENT_REQUESTS表中的OUTFILE_NODE_NAME和LOGFILE_NODE_NAME的数值看看FND_NODES表看看tnsnames.ora中的FNDFS_entry 8日志问卷爱女的位置是由$APPLCSF/$APPLLOG参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT决定的 9
9.1追踪这个会话用等待并且使用tkprof来分析追踪文件
9.2生成statspack报告并进行分析
9.3使用top/iostat/sar/vmstat监控O/s
9.4通过ping这类基本的测试结果来判断网络的瓶颈 10
10.1使用FNDCPASS来更改APPS密码
10.2手工修改wdbsvr.app/cgiCMD.dat文件
10.3更改所有从其他环境指过来的数据库链接 11
11.1位置:$FND_TOP/secureDirectory
11.2重要性:在其他事务中指向数据库服务器
11.3应用程序通过使用“ApplicationsDatabaseId.”来了解DBC文件的名字oracledba面试题数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?表空间管理方式有哪几种,各有什么优劣本地索引与全局索引的差别与适用情况一个表avarchar21bnumber1cchar2,有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么?9i的dataguard有几种模式,各有什么差别执行计划是什么,查看执行计划一般有哪几种方式简单描述一下nestloop与hashjoin的差别dbfilesequentialread与dbfilescatteredread等待的差别,如果以上等待比较多,证明了什么问题?librarycachepin与librarycachelock是什么地方的等待事件,一般说明什么问题?在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引ab修改成唯一约束abc,你一般会选择怎么做,请说出具体的操作步骤与语句如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因说明一下对raid5与raid01/10的认识列举5个10g的新特性一份DBA的面试题ORACLE笔试选择题(在正确的答案前打勾)1,下面哪一个选项不属于调优目标的A,共享应用代码B,减少用户对资源的等待C,为没有剩余空间的表空间添加数据文件D,减少IO操作2,数据库报警日志文件的位置A,user_dump_dest参数指定的位置B,alert_dump_dest参数指定的位置C,archive_log_dest参数指定的位置D,background_dump_dest参数指定的位置3,下列哪两种方法可以用来设置会话跟踪A,使用dbms_system.set_sql_trace_in_session过程B,通过altersessionsetsql_trace=trueC,使用dbms_session.set_sql_trace_in_session过程D,通过altersessionsetlog_checkpoints_to_alert=true4,下列哪些视图是数据字典视图A,v$sysstatB,dba_objectsC,dba_tablesD,dba_indexes5,下列哪个视图可以获取数据库的启动时间A,v$databaseB,v$sesstatC,v$lockD,v$instance6,对于v$session视图叙述正确的是A,可以通过此视图查询出一个会话的sid、serial#B,可以直接通过此视图查询出此会话的机器的IP地址C,可以通过此视图查询出一个会话的登陆数据库的时间D,可以通过此视图查询出用户通过什么程序连接数据库7,关于statspack,下列哪个说法是错误的A,statspack是一个数据库性能诊断工具B,使用statspack时需要将参数timed_statistics设置为trueC,statspack在使用时最少需要执行2次statspack..snapD,statspack在建库时,自动被创建8,下列哪些语句属于DML语句A,selectcount*fromdba_tables;B,createtabletestanumber;C,altertabletestnologging;D,deletefromtest;9,在sql的执行过程中,哪一步进行共享池的分配A,CreateaCursor创建游标B,ParsetheStatement分析语句C,BindAnyVariables绑定变量D,ParallelizetheStatement并行执行语句10,在sql的书写过程中,使用绑定变量的主要作用A,共享SQLB,增加sql的执行速度C,改变执行计划D,增加sql的可读性11,关于优化器的说法正确的是A,oracle主要提供了2种优化器基于规则的优化器(rule)和基于花费的优化器(cost)B,基于规则的优化器通过访问路径的优先等级,来决定执行计划C,基于花费的优化器,通过IOCPU网络情况,来选择资源消耗最少的执行计划D,oracle9i中,基于花费的优化器不需要统计信息12,下列哪种数据访问路径最快A,TableAccessbyROWIDB,indexuniquescanC,indexrangescanD,indexfullscanE,indexfastfullscan13,下列哪种连接方式是需要连接的两个行源是有序的A,合并连接B,嵌套循环C,哈希连接D,笛卡儿积14,下列关于索引描述正确的是A,所有的索引都不包含null值B,b*tree索引的高度越高越好C,只要是取值范围都不好的列,就可以建立bitmap索引D,索引可以在线rebuild,而不影响对于表的dml操作15,关于索引不能被使用,可能的原因有A,where子句没有包含被索引的列B,表或索引的统计信息错误C,where子句的索引列上存在隐含数据类型转换D,返回的行源很多E,使用了like’%%’16,关于函数索引说法错误的是A,使用函数索引需要QUERYREWRITE权限B,使用函数索引需要GLOBALQUERYREWRITE权限C,可用通过函数索引来实现只索引某些行数据的目的D,函数索引很适合oltp系统17,viewthisSELECTstatement:
1.SELECTdepartmentMAXsalary
2.FROMemployee
3.WHEREdepartmentIN200300400and
4.MAXsalary
600005.GROUPBYdepartment;WhichlineinthestatementcauseserrorA.1B.3C.4D.518,WhichthreecommandscauseatransactiontoendA.ALTERB.GRANTC.DELETED.INSERTE.UPDATEF.ROLLBACK简答题1,ORACLE的静态结构包含哪些类型的文件?2,TRACE文件有哪些种类?一般存放在什么地方?3,ORACLE的主要内存结构有哪些?软件代码区用于存储正在执行的或可以执行的程序代码系统全局区SGA一组由ORACLE分配的共享的内存结构,可包含一个数据库实例的数据或控制信息程序全局区PGA一个内存区,包含单个进程的数据和控制信息排序区ORACLE利用该内存排序数据4,REDOLOG的作用是什么,如果REDOLOG故障如何修复?重做日志RedoLog也称作事务日志TransactionLog,Oracle在这些特殊的操作系统文件中记录针对数据库进行的修改操作或事务,数据库系统可以使用这些事务记录进行恢复操作检查v$session_wait视图,我们可以从中看到很多session处于logfileswitchcheckpointincomplete的等待;检查DBWR进程5,回滚段的主要作用是什么,如何优化回滚段?如何增加回滚段的大小?回滚段是线状结构还是环状结构?当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值增加回滚段可以加大回滚段所适应的表空间alterdatabasedatafile‘..\*.dbf’resizexxM6,共享池的主要作用是什么?设置共享池要注意些什么?共享池过大有什么不好?7,UPDATE较多的表,设置存储参数的时候应该注意什么?8,PGA的工作区域如何配置?9,如何进行SQL优化?10表之间的关联方法有哪些?
11、HowwouldyouedityourCRONTABtoscheduletherunningof/test/test.shtoruneveryotherdayat2PM
12、HowdoyouincreasetheOSlimitationforopenfilesLINUXand/orSolaris
13.ExplainhowyouwouldrestoreadatabaseusingRMANtoPointinTime14.WhatviewsdoyouusetoassociateausersSQLPLUSsessionwithhiso/sprocess15Whatarethecommandsyoudissuetoshowtheexplainplanforselect*fromdual
16.InwhichdictionarytableorviewwouldyoulooktodetermineatwhichtimeasnapshotorMVIEWlastsuccessfullyrefreshed
17.HowwouldyoubestdeterminewhyyourMVIEWcouldntFASTREFRESH
18.HowdoespropagationdifferbetweenAdvancedReplicationandSnapshotReplicationreadonly
19.Whichdictionaryviewswouldyoufirstlookattounderstandorgetahigh-levelideaofagivenAdvancedReplicationenvironment
20.Databasecrashes.CorruptionisfoundscatteredamongthefilesystemneitherofyourdoingnorofOracles.WhatdatabaserecoveryoptionsareavailableDatabaseisinarchivelogmode.DBA面试题Changedjobrecently.InterviewedtwoDBApositions.Herearesomequestions.Verybasic.1Describetheprocedureofaupdatestatement.e.gUPDATEempSETsal=40000Whereempno=12345;Whatwillhappeninternally2WhatsdifferencebetweenSort-mergejoinnested-loopandhashjoinWritedownsomestatementsandcomparetheirefficiency3WhatsdifferencebetweenDifferentialbackuplevel0andlevel14Describeaprocedurethatyourecoveredacrasheddatabase.WhatcommanddidyouuseWhatsdifferencebetweenrestoreandrecovery5Showthestrategywhenyoutuneaperformanceproblem.Giveusanexample.6Describethedifferencebetweendataguardphysicalstandbyandlogicalstandby.7DescribetheproceduretosetupaASMdisk8DoyouknowRACTellussthaboutRAC.andsomebasicquestionse.g1Listsometypesofsegment2comparebitmapandB-treeindex3ORA-01555。