昨天有HP的工程师打电话找我,他说他们那里有我一份简历,说是要跟我聊一聊oracle,算是面试吧。我很开心有人愿意跟我聊oracle,不管是采用哪种方式,问问题也好,面试也好。
这一聊就聊了45分钟,最后他的结论是:"你的oracle的基本概念没有任何问题,但是实践经验不太够"。
总的来说,那位HP的工程师问我的问题并不难,也没有涉及到RAC、Data Guard、Streams等分支,但是他问的很细,有些细节我当时真的记不太清楚了。
如下是一些昨天我没有回答好或者没有回答全的问题,我整理了一下,希望能对朋友们有所帮助:
1、 dedicated模式、非RAC、无连接池、要求支持2000个连接,在这样的条件下如何设置PGA?
答:a) 先把PGA设置成总的物理内存的16%;
b) v$process中有一个字段PGA_USED_MEM用来表示这个process实际用掉的PGA,可以用这个估算出在2000个连接的情况下需要多少PGA,然后用这个值去调整上述PGA的初始值;
另外,用v$pgastat中的total PGA inuse可以查看当前系统的PGA用了多少,这个值应该和v$process中的sum(PGA_USED_MEM)接近。
2、 如何解决ORA-04031问题?
答:ORA-04031不是三言两语就能说清楚的,详情可参见146599.1和396940.1。
3、 Current online redo log被删掉或者损坏后如何恢复?
答:这个也挺复杂,我当时也没跟他说细节,我只是告诉他,这个我能恢复。在没有备份的情况下恢复的方法可能会利用到_allow_resetlogs_corruption、_corrupted_rollback_segments 、fast_start_parallel_rollback、10015或者_giga_minimum_scn_minimum_giga_scn以及BBED。
4、 oracle里的补丁具体分为哪几种类型?
答:oracle里的补丁具体分为如下这样6种类型:
Oracle Interim patches: A patch that is applied in between patchset releases with the Opatch utility. Interim patches are sometimes also referred to as patchset exceptions.
Oracle Merge patches: A type of interim patch that merges multiple fixes to ensure that one fix doesn't overwrite the other. Merge patches are typically required when a conflict is detected between an existing patch and a new patch.
Oracle Bundle patches: A type of interim patch that contains fixes to many important bugs, though not as many as a patchset.
Oracle Critical Patch Update (CPU) patches: A type of interim patch that contains fixes to critical security bugs delivered on a quarterly basis.
Patch Set Updates(PSUs) : PSUs are proactive cumulative patches containing recommended bug fixes that are released on a regular and predictable schedule. PSUs are on the same quarterly schedule as the Critical Patch Updates (CPU), specifically the Tuesday closest to the 15th of January, April, July, and October.
Oracle Patchsets: Software-release mechanisms for delivering tested and integrated product fixes on a regular basis.
好了,我没希望了,该干啥干啥去了
崔兄:_giga_minimum_scn 应为_minimum_giga_scn
谢谢提醒,这个是我当时写错了,是我的笔误,我其实是知道这个参数的:)