需要DBA深思的面试问题 [转]

你可以在招聘 DBA应聘者的面试中提出无数个问题以及问题的组合。我倾向于那些关于概念的、而不是死记硬背的问题,这样可以突出应聘者的基础以及透彻的理解。此外,我也决不会提出一些在参考书找得到的答案的细节的问题。因此,将这些牢记在心,下面是一些你需要深思的难题。    1、为什么UNION ALL比UNION更快
  你如果还记得,union操作是将两个数据集合并在一起。它不会产生重复或者多余的行。为了完成这样的效果,需要对这两张表执行SORT操作。这个SORT操作明显是计算密集的,并且会使用大量的内存。相反,UNION ALL仅仅是将两个集合的数据任意的合并在一起,而不管行是否重复。
   2、使用[url=javascript.:;]Oracle[/url]的CREATE DATABASE语句来手动的新建[url=javascript.:;]数据库[/url]有什么好处呢?
  •   你可以给新建数据库的操作编写成脚本,这样将它包含在产品发布的安装脚本中。
  •   你可以把新建数据库的脚本放在CVS中以便进行版本控制,当你对该脚本进行修改时候,你可以跟踪这些修改,就像你对软件代码所进行的修改一样。
  •   你可以将执行结果写到日志中,以便检查错误
  •   你可以了解更多的数据库新建过程,比如哪些选项是可选的以及为什么。
   3、创建好的密码的三条经验规则都是什么?DBA如何在Oracle中实施这些规则?你可能遇到的商业挑战有哪些?
  典型的密码破译软件都会使用一个本地语言的字典,以及固有名字的列表,以此尝试猜出未知的密码。由于计算机可以很快的发起上万次的尝试,因此这将是闯入 数据库的一个非常有效的方法。好的密码应该不是一个字典中的词汇,它也不应该是固有名字、生日以及其他一些容易猜到的信息。它应该足够长,例如8位到10位字符,包括大小写、特殊字符,如果可能还应该包括替换字符。(alternate character)
   Oracle有一个工具叫做密码安全概要文件(password security profile)。如果你安装了它,它会加强密码的复杂性,长度规则以及其他的密码相关的安全措施。
  在安全理论中,密码可以做的很好,并且也是一个可以解决的问题。但是,现实世界中的情况又是如何呢?通常最大的挑战是在企业中实施的那些规则。它可能会遇到相当的抵制,因为这会引起那些不重视考虑安全问题的用户的争论。要通过你在工作中遇到的安全漏洞和非法闯入的真实故事,或者在Internet上讨论的案例,来教育这些商业群众有关的安全风险,这对强调现实的风险会很有帮助。
   4、解释Oralce Wait Interface,它是如何工作,它提供了什么功能,限制又是什么? db_file_sequential_read和db_file_scattered_read事件指示了什么?
   OracleWait Interface参考 Oracle数据字典来[url=javascript.:;] 管理[/url]等待事件。对v$system_event、v$session_event等表进行select可以告诉你发生在数据库(或者会话)的生命周期中的事件总数。前者是整个系统的事件总数,后者是每个会话的事件总数。db_file_sequential_read事件与读单个块以及使用rowid访问表有关。而db_file_scattered_read事件着和全表扫描有关。它之所以这样命名是因为表的所有的块都被读出,然后散落在缓存中。
   5、在Oracle中,你怎么样才能返回查询的前N个结果?为什么明显的方法不行?
  大多数人可能想到将ROWNUM伪列和ORDER BY一起使用。不幸的是,ROWNUM在ORDER BY之前就确定了,因此你无法得到你想要的结果。正确的答案是使用子查询先做ORDER BY。比如要返回工资最高的前5个雇员:
  SELECT * FROM (SELECT * FROM employees ORDER BY salary) WHERE ROWNUM < 5;
   6、Oracle Data Guard可以在标准版中使用吗,如果可以,如何使用?你怎样[url=javascript.:;]测试[/url]备用数据库是同步的?
   Oracle的Data Guard技术是一层软件,并且能够基于备用 数据库工具自动建立。 Oracle标准版是可以用作备用 数据库,并且手动的更新的。粗略的讲,设置你的生产数据库为archivelog模式。创建该数据库的热[url=javascript.:;] 备份[/url],将备份移到备用设备上。然后在生产设备上新建一个备用controlfile,将这个文件和所有的归档的redolog文件转移到备用服务器上。一旦你将这些都做完了,将它们放到各自合适的位置,[url=javascript.:;] 恢复[/url]备用 数据库,这样就可以开始回滚了。从这一点起,你一定要手动的移动和应用这些归档的redolog,以便保持和生产数据库同步。
  如何测试备用 数据库,在生产服务器上对某个表进行修改,并且提交这个修改。然后手动的切换logfile,这样修改就被归档了。手动的转移这个最新的归档redolog文件,并且手动的应用到备用 数据库上。然后以只读模式打开你的备用 数据库,并且对你改动的表进行select,确认改变是生效的。一旦你测试完毕,关闭你的备用 数据库,再以standy模式启动。
   7、什么是数据库链接?公共和私有的数据库链接的区别是什么?什么是固定用户数据库链接?
   数据库链接让你连接到远程的 数据库,无论是 Oracle还是其他的,并且执行查询表,甚至将表的数据和本地 数据库中的表进行连接(join)。
  私有 数据库链接只能被拥有它的用户/模式使用和访问。全局的 数据库链接可以被数据库中所有的用户访问。
  固定的用户链接是指你只能通过在链接中指定的用户来访问远程的 数据库。另外的一种,当前用户 数据库链接是使用你登陆到本地数据库的用户来连接远程的 数据库
  当你准备你的 DBA面试,或者准备举行一次面试的时候,我希望这些问题可以提供一些新颖的想法和方向。需要记住的是面试有很多方向可以进行。作为一个 DBA应该强调你了解的东西,即使这些不是对于问题的直接答案,作为被面试的人,让面试向创造性的方向前进。最后,真正重要的是潜力或者天赋,而不是专门记住的答案。因此要会倾听解决问题的能力,跳出常规思考,这样你一定会找到适合工作的候选人。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13956325/viewspace-598290/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13956325/viewspace-598290/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值