《数据库程序员面试分模拟题7.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分模拟题7.docx(14页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分模拟题7简答题1. 如何查看Oracle数据库的字符集?正确答案:数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTERSET(江南博哥)和国家字符集(NATlONA1.CHARAcTERSET)。国家字符集实质上是为OraCIe选择的附加字符集,主要作用是增强OraCIe的字符处理能力。国家字符集在OraCle9i中进行了重新定义,只能在UNICODE编码中的A1.16UTF16和UTF8中选择,默认值是1.16UTF16有多种办法可以查看数据库的字符集,但是作者一般使用USERENV来查看数据库的字符集,如下:SYSlhr
2、dbSE1.ECTUSERENV.(1.ANGUAGE)数据库字符集FROMDUA1.;数据库字符集MERCN-AMERICA.ZHS16GBK另外,也可以通过如卜的视图来获取Oracle的数据库字符集:SE1.ECT*IROMN1.SDATABASEPARAMETERS;一数据库服务器字符集,来源于PROPS$SE1.ECT*FROMN1.SSTAXCE_PAR.AVETERS;一客户端字符集,来源于PARAMETERSE1.ECT*1ROMN1.S_SESS10N_PARAMETERS;一会话字符集,来源于VSN1.S.PARAMETERS,发示会话自己的设置,可能是会话的环境变量或者是由
3、A1.TERSESSION完成,如果会话没有特殊的设置,将与N1.S_INSTANCE_FARAMETERS一致SE1.ECT*EROMVSN1.S_PARAMETERS;SE1.ECT*FROMSYS.PROPSS;客户端的字符集要求与服务器一致,才能正确显示数据库的非ASCII字符。如果多个设置存在,那么优先级是A1.TERSESSIoNA环境变量注册表参数文件。字符集要求一致,但是语言设置却可以不同。2. 什么是R.AID?各种级别的RAID的区别是什么?正确答案:独立冗余磁盘阵列(RedUndantArrayofIndependentDisk,RAID)是一种把多块独立的硬盘(物理硬盘
4、)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能与数据备份能力的技术。RAlD特色是N块硬盘同时读取速度加快及提供容错性。可以将RAID分为不同级别,级别并不代表技术高低,选择哪一种RAID产品纯视用户的操作环境及应用而定,与级别高低没有必然关系。其中,RAID0、RAIDKRAID5、RA没10这四种级别比较典型,所以,这里只讨论这四种级别,它们的具体区别见下表。期RAlDoRAn)IRAIDSRADIOKftRWOftMSfVM?、际)旅它植联,般触分”和三ftttt.这些相的由酊照H版孤懿mSt(Mirroring),(即,mmfi林或多惬S中,可蜥虬D
5、ImJflbi11it6*也卡玄(1三户酮以防弓M度会比螟他减速RAIDOftHAlDlmli祟概鹦方秋服版喇期温温?僵入般曼奸聪的”绘懿瑞嘤鬻嚣黑的腮会导教魏的不可九娘陋M瞅附皮比旗(不SRAIDO,因为多存储了也三).m三A三0)M(三)老搬出网朝脑H三用f三Raidio=Raidi(50)加(M能而躺)mt三fiiM.熊和皴)要耳耐I罩RAn)WM单个&进行写入提作应用楠个用户申RAIDW=RAlDl是一机滞悭、8:卷安全助御成本务卷微雅碎等飘牌揖决旗始了RAlD0、RAlS的触,殿弼上由理眼配而不足类以RAID5的-审RMfHfi.融硼串一3. 给出两种检查表结构的方法。正确答案:DE
6、SCRlBE命令(平时用DESC即可):DBMS.METADATA.GET.DD1.包。1.Oracle和MySQ1.中的分组(GROUPBY)后的聚合函数分别是什么?正确答案:在OraCIe中,可以用WA1.eoNCAT函数或1.ISTAGG分析函数;在VySQ1.中可以使用GRoUP工OCAT函数。示例如下:首比给出建表语句:CREATETAB1.ET_MAX_1.HR(ARTIC1.EVARCHAR2(30),AUTHORVARCHAR2(30),PRICENUMBER);Oracle-CREATETAB1.ET_MAX_1.HR(ARTIC1.EVARCHAR(30),AUTHORVR
7、CHR(30),PRICEF1.OAT)MySQ1.OraCIe通用INSERTINTOTMAX1.HRINSERTINTOTMAX1.HRINSERTINTOTMAX1.HRINSERTINTOTMAX1.HRINSERTINTOT_MAX_1.HRCOMMIT:VA1.UES(,0001,B,3.99);VA1.UES(,0002,A,10.99);VA1.UES(,0003,C,1.69);VA1.UES(,OOOf/B,19.95);VA1.UES(,0005,6.96):SE1.ECT*ROMT_MAX_1.HR;在MySQ1.中:峭lSE1.ECTTAInHORIGROUP,CON
8、CAT(TAR11C1.E),GROUP_CONeAT(T.PRiCI)-FROM1.MwHRT-Groitbytauthor;Gn.(三(.w)I三p.cm(,rai()*A0002,三I,ia99,6.96:80001,MIIW119.95IC0003I1.693rowsin$d(EWc)在Oracle中:1.HRgcrdBnPSaECrTAUnIOR.啊。赋机TARME)ARTIeIEtWM一CONCATn,PR1CT)PRICE2 FROM1.M必1.HRT3 GRoIPBYTA加OR;AlTOARTIC1.EPRICEAOXe.000510.W,6.96B0!,00043.99.19
9、.95COKe1.691.HRgorcUsnSE1.ECT!AUTHOR.2 UsTAGG(1.ARTIC1.E.)WlnHNGROtTORDERBYTfRlCE).ARTIC1.E,3 USTAOHT.PRKI,:iWTTHINGRWrderBYTfRlCE)PRICE4 FRoM1.MAI1.HRT5 GRO1.TBYTOfcMWARTIC1.EPRIdAOoO5.00026.96,Id99B0001,0013.99,19.95C00031.695. 如何进行强制日志切换?正确答案:A1.TERSYSTEMSWITCH1.OGFI1.E;6. 常用的crontab命令有哪些?正确答案:常用
10、的CrOntab命令如下:crontab-1#列出某个用户CrOnd服务的详细内容crontab-r#删除没个用户的Crond服务crontab-e#编辑某个用户的Crond服务7. 在不知道原密码的明文是什么的情况下,如何更新密码?正确答案:在OraCIe中,若用户的密码变为锁定状态(1.oCKED、1.OCKED(TIMED)时,DBAnj以直接执行mA1.TERUSER用户名ACCOUNTUN1.OCK来解锁。但是,如果用户的状态变成过期状态(EXPIRED、EXPIRED(GRACE),那么DBA必须要更改用户的密码账户才能重新使用。但有些时候,因为各种原因并不知道原密码的明文是什么,
11、这时候可以有如下2种办法来更新密码。1 .用原密码的密文来更改密码在OraCIeIOg中,DBAjJSERS视图的PASSWORD字段提供了密码的密文形式,而在OraCleUg中,该字段被弃用了,内容为空,但是在基表USER$中的PASSWORD字段依然有记录密文形式,所以可以通过如下的形式来获取密码的密文形式:SE1.ECTD.USERNAME,D.ACCOUNT_STATUS,D.1.OCK_DATE.F).EXPIRY-DATE,D.PROFI1.E,W1.(D.PASSWORD,(SE1.ECTNB.PASSWORDFROMUSERSNBWHERENB.NME=D.USERNAME)P
12、ASSWORDFROMDBA_USERSDWHERED.USERNME=*1.HRSYS;USERNAMEACCOUNT_STCTUSI1.OOe-DATEIEXPRY.DATEPROFI1.E!PASSWORDIIllHRSyS-7OPEN-DEFAU1.TFS09740,:20A.J4EFC另外,可以通过DBVS_VETADATAGET.DD1.包或者CXPdp、CXP命令来获取创建用户的语句从而获取密码的密文形式。SYSClhrdbXellong9999SYS(lhrdbSE1.ECTDBMSMETADATA.GETDD1.(USER,1.HRSYS)DD1.SQ1.FROMDUA1.;
13、DD1.SQ1.CREATEUSER1.HRSYSIDENTIFIEDBYVA1.UES,S:853E80BE11F79D6946453F38059E30313FE84C96E2EE4F335648BD:F809740420A44EFC,DEFAU1.TTAB1.ESPACEUSERSTEMPORARYTAB1.ESPACETEMP获取了密码的密文后就可以用如下的命令来修改/,注意:使用密文的命令中多了一个VA1.UES关键字:SYSldbanCTUffiSYSMifiaibyrahnnW74(W0A&EFC;Uxraltfftd.SY%dbCONN1.HRSYWI192,168.59.1及*Connccxd.1.HRSYS92.网般129*com;1as加Cconcckd.SYSaJbus1.HRSYSidbCONN1.HRSYsfc92168.59.1为血*Connokd.所以,即使不知道用户的原密码是什么,也可以用它的密文来更改密码。这样既保持了密码不改变,