数据库程序员面试分模拟题2.docx
《数据库程序员面试分模拟题2.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分模拟题2.docx(18页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分模拟题2简答题1. 在Undo表空间数据文件丢失的情况下如何恢复?正确答案:恢复大约nJ以分为3种情况:有备份,这种情况卜.直接采用备份的文件进行恢复即可;无备份但是有完整的归档(江南博哥)文件存在,这种情况卜可以使用命令A1.TERDATABASECREATEDATAFI1.E文件号S,u01apporacleoradatalhrdbundotbs01.dbfsize50m;“来创建丢失的Und。文件,然后使用“RECOVERDATAFI1.E文件号;”进行数据库文件恢复即可;无备份,归档文件丢失,在这种情况下的恢复比较复杂。首先应该切换Und。表空间到一个新建的UndO表
2、空间中,并设置原有表空间的管理模式为手动管理模式,然后将隐含参数“_oFF1.lNE_rollback_segments”设置为TRlJE,些关键性的命令如下:A1.TERSYSTEMSETUM)C1.TAB1.ESPACE=UNDOTBS2SCOPE=SPFI1.E;A1.TERSYSTEMSETUM)C1.vANAGEMENT=MANUA1.SCOPE=SPFI1.E:A1.TERSYSTEMSET*OFF1.INEROI.1.BCKSEGMENTS=TRUESCOPD=SPFI1.E;A1.TERSYSTEMSETCORRUPTEDRo1.1.BACKSEGMENTS*=*SYSSM1.
3、1$,SYSSMU2$SCOPE=SPFI1.E;CREATEUNDOTAB1.ESPACEUNDOTBS1DTFI1.Eu03apporacteoradata/ora1024gundotbs01.dbf,SIZE50MAUToEXTENDON;A1.TERSYSTEMSETUND(1.TAB1.ESPACE=UNDoTESlSCOPE=SPFI1.E;A1.TERSYSTEMSETUND05ANAGEMENT=AUTOSCOPE=SPFI1.E;A1.TERSYSTEMRESET*_OEF1.1NE_RO1.1.BACK_SEGMENTS*SCOPE:SPFI1.ESID=*;A1.TERS
4、YSTEMRESET*_CORRUPTED_RO1.I.BACK_SEGMENTS*SCOPE=SPFI1.ESID=;考点RMAN2. 什么是间隙(NeX1.Key)锁?正确答案:当使用范围条件而不是相等条件检索数据的时候,并请求共享或排它锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫作“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙(NeXt-Key)锁。间隙锁是InnODB中行锁的种,但是这种锁锁住的不止一行数据,它锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读(PhantomRead)
5、用在RePeated-Read(简称RR)隔离级别下。在Read-COmmiICd(简称RC)下,一般没有间隙锁(有外键情况下例外,此处不考虑)。间隙锁还用于恢熨和复制。间隙锁的出现主要集中在同一个事务中先DE1.ETE后INSERT的情况,当通过一个条件删除一条记录的时候,如果条件在数据库中已经存在,那么这个时候产生的是普通行锁,锁住这个记录,然后删除,最后释放锁。如果这条记录不存在,那么问题就来了,数据库会扫描索引,发现这个记录不存在,这个时候的DE1.ETE语句获取到的就是一个间隙锁,然后数据库会向左扫描,扫到第一个比给定参数小的值,向右扫描,扫描到第一个比给定参数大的值,然后以此为界,
6、构建一个区间,锁住整个区间内的数据,一个特别容易出现死锁的间隙锁就诞生了。在MySQ1.的InnODB存储引擎中,如果更新操作是针对个区间的,那么它会锁住这个区间内所有的记录,例如,UPDATEXXXXWHEREIDBETWEENAANDB,那么它会锁住A到B之间所有记泉,注意是所有记录,甚至这个记录并不存在也会被锁住,这个时候,如果另外一个连接需要插入一条记录到A与B之间,那么它就必须等到上一个事务结束。典型的例子就是使用AUTOJNCREMEYrID,由于这个ID是一直往上分配的,因此,当两个事务都INSERT时,会得到两个不同的ID,但是这两条记录还没有被提交,因此,也就不存在,如果这个
7、时候有一个事务进行范围操作,而且恰好要锁住不存在的ID,就是触发间隙锁问题。所以,MySQ1.中尽量不要使用区间更新。InnoDB除了通过范围条件加锁时使用间隙锁外,如果使用相等条件请求给一个不存在的记录加锁,那么InnODB也会使用间隙锁!间隙锁也存在副作用,它会把锁定范围扩大,有时候也会带来麻烦。如果要关闭,那么一是将会话隔离级别改到RC下,或者开启innodb_locks_unsafe_for_binlog(默认是OFF)。间隙锁只会出现在辅助索引上,唯一索引.主键去引亮没有间隙锁。间隙锁(无论是S还是X)只会阻塞INSERT操作。在MySQ1.数据库参数中,控制间隙锁的参数是innod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 程序员 面试 模拟
