10月14日进行了支付宝数据库管理员的一面,说实话回答问题很糟糕,关键是知识还没系统掌握,用面试师兄的话说俺还是停留在面上的。把面试做个小结吧。面试题基本能在9i10g上找到原答案(近期正准备重看9i10g和DB2同步,细算下快3-5个月没看了)回来想了下,现回答如下(欢迎指正)同时linux脚本语言对dba来说也是应该了解的。
闲话少说先说面试题:
第一题:什么是死锁?怎样解决?
用tom的原话回答:
如果你有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁(deadlock)
安顺序执行事务可以解决死锁。
(认为当时基本把意思表达清楚了)
第二题:
oracle体系结构
这个问题在我的第一篇日记中有。
关键是下个问题
第三题:
pmon, SMON,DBWn,LGWR,CKPT 等的作用?
pmon这个进程负责在出现异常中止的连接之后完成清理,
PMON还会为实例做另一件事,这就是向Oracle TNS监听器注册这个实例。
smon
清理临时空间
合并空闲空间
针对原来不可用的文件恢复活动的事务
执行RAC中失败节点的实例恢复
清理OBJ$
收缩回滚段
“离线”回滚段
DBWN
数据库块写入器(DBWn)是负责将脏块写入磁盘的后台进程。DBWn会写出缓冲区缓存中的脏块,通常是为了在缓存中腾出更多的空间(释放缓冲区来读入其他数据),或者是为了推进检查点(将在线重做日志文件中的位置前移,如果出现失败,Oracle会从这个位置开始读取来恢复实例)
LGWR
每3秒会刷新输出一次
任何事务发出一个提交时
重做日志缓冲区1/3满,或者已经包含1 MB的缓冲数据
CKPT
检查点进程并不像它的名字所暗示的那样真的建立检查点(检查点在第3章介绍重做日志一节中已经讨论过), 建立检查点主要是DBWn的任务。CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)。
注:后台程序以前是死记的没融汇贯通所以几个月没看(一问就三不知)
第三题,redo和undo
redo
重做日志文件(redo log file)对Oracle数据库来说至关重要。它们是数据库的事务日志。Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。这两类重做日志文件都用于恢复;其主要目的是,万一实例失败或介质失败,它们就能派上用场。
undo
undo正好与redo相对。你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条ROLLBACK语句请求回滚,就可以利用这些undo信息将数据放回到修改前的样子。redo用于在失败时重放事务(即恢复事务),undo则用于取消一条语句或一组语句的作用。与redo不同,undo在数据库内部存储在一组特殊的段中,这称为undo段(undo segment)。
(这个感觉是这次面试师兄想问的重点,但没答好,主要还是浮在表面,没融汇)
第4题:
物化视图:
两种fast和full
工作原理:第一个增量,一个是全表
第五题用unix下一个命令查找一条session
这个现在也没查书想用ps -ef但当时怕说错,本就说错很多了就没说。
前三题是主要的(都没答好)所以可能与支付宝无缘,也可能以后一直无缘了,不过还是感谢面试师兄。
下面来几道我同学的
1、大题 dataguard
三种最大
这个题考过很多
standby物理的逻辑的原理,都是根据archivelog进行,一个用物理的block,一个用logminer。
2、大题
写个查询语句
3、sql语句的编译流程
总结:支付宝这次面试总的来说不是很难,关键是俺还没深入下去,如果11月份来还是这个问题的话我因该完全没问题。总之还是好久没看书,加上没融汇知识,所以看书和实验才是关键,还要学会师兄说的新功能的学习研究方法。准备对比oracle和DB2好好看看书。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16376547/viewspace-676018/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16376547/viewspace-676018/