http://www.cnblogs.com/qiangqiang/archive/2010/10/15/1852252.html
http://www.geekinterview.com/Interview-Questions/Oracle
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
select fclass,max(fscore) from table1 group by fclass,fid
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno;
3、有员工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary <9999 and fage > 35
fsalary <9999 and fage < 35
每种员工的数量;
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
MONTHS PERSON INCOME
---------- ---------- ----------200807 mantisXF 5000200806 mantisXF2 3500200806 mantisXF3 3000200805 mantisXF1 2000200805 mantisXF6 2200200804 mantisXF7 1800200803 8mantisXF 4000200802 9mantisXF 4200200802 10mantisXF 3300200801 11mantisXF 4600200809 11mantisXF 6800
11 rows selected
select months, max(incomes), max(prev_months), max(next_months)
from (select months,
incomes,
decode(lag(months) over(order by months),
to_char(add_months(to_date(months, 'yyyymm'), -1), 'yyyymm'), lag(incomes) over(order by months), 0) as prev_months, decode(lead(months) over(order by months), to_char(add_months(to_date(months, 'yyyymm'), 1), 'yyyymm'), lead(incomes) over(order by months), 0) as next_months from (select months, sum(income) as incomes from a group by months) aa) aaagroup by months;
MONTHS MAX(INCOMES) MAX(PREV_MONTHS) MAX(NEXT_MONTHS)---------- ------------ ---------------- ----------------200801 4600 0 7500200802 7500 4600 4000200803 4000 7500 1800200804 1800 4000 4200200805 4200 1800 6500200806 6500 4200 5000200807 5000 6500 0200809 6800 0 0
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
select nvl(to_char(t02,'yyyy-mm-dd'),'合计'),sum(t01)from test
group by rollup(t02)
6,数据库1,2,3 范式的概念与理解。
7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?
13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。
15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101 a1001
101 a1001
102 a1002
102 a1003
103 a1004
104 a1005
104 a1006
105 a1007
105 a1007
105 a1007
结果:
102 a1002
102 a1003
104 a1005
104 a1006
3、有员工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary<9999 and fage > 35
fsalary<9999 and fage < 35
每种员工的数量;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
6,数据库1,2,3 范式的概念与理解。
7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?
13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。
15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
答案:
1、select Fclass,max(Fscore) from table1 group by Fclass
2、select * from table1 where FID in (select FID from table1 group by FID having (count(Distinct Fno))>=2)
3、select sum(case when fsalary>9999 and fage>35 then 1 else 0 end),
sum(case when fsalary>9999 and fage<35 then 1 else 0 end),
sum(case when fsalary<9999 and fage>35 then 1 else 0 end),
sum(case when fsalary<9999 and fage<35 then 1 else 0 end) from empinfo
4、
Select (Select Month From Table Where Month = To_Char(Sysdate, 'mm')) 月份,
(Select Sum(Income) From Table Where Month = To_Char(Sysdate, 'mm')) 当月收入,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) - 1) 上月收入,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) + 1) 下月收入
From Dual
5、select nvl(c1,'合计'),sum(c2) from B group by rollup(c1)
6.
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式
简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式),
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。
例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRADEGE 为成绩,CREDIT 为学分。 由以上
条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a.数据冗余,假设同一门课由40个学生选修,学分就 重复40次。
b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
解决方法:分成两个关系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SCN中
的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。
例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,
姓名,所在系,系名称,系地址。
关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个
属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。
原因:关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键辽 SNO 对 LOCATIO
N 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。
解决目地:每个关系模式中不能留有传递依赖。
解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系。
7.
变化表mutating table
被DML语句正在修改的表
需要作为DELETE CASCADE参考完整性限制的结果进行更新的表也是变化的
限制:对于Session本身,不能读取正在变化的表
限制表constraining table
需要对参考完整性限制执行读操作的表
限制:如果限制列正在被改变,那么读取或修改会触发错误,但是修改其它列是允许的。
8.
在Oracle中,可以创建以下两种临时表:
a。会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
b。事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
9.--个人理解就是建立一个包,将常量或所谓的全局变量用包中的函数返回出来就可以了,摘抄一短网上的解决方法
Oracle数据库程序包中的变量,在本程序包中可以直接引用,但是在程序包之外,则不可以直接引用。对程序包变量的存取,可以为每个变量配套相应的存储过程<用于存储数据>和函数<用于读取数据>来实现。
3.2 实例
--定义程序包
create or replace package PKG_System_Constant is
C_SystemTitle nVarChar2(100):='测试全局程序变量'; --定义常数
--获取常数<系统标题>
Function FN_GetSystemTitle
Return nVarChar2;
G_CurrentDate Date:=SysDate; --定义全局变量
--获取全局变量<当前日期>
Function FN_GetCurrentDate
Return Date;
--设置全局变量<当前日期>
Procedure SP_SetCurrentDate
(P_CurrentDate In Date);
End PKG_System_Constant;
/
create or replace package body PKG_System_Constant is
--获取常数<系统标题>
Function FN_GetSystemTitle
Return nVarChar2
Is
Begin
Return C_SystemTitle;
End FN_GetSystemTitle;
--获取全局变量<当前日期>
Function FN_GetCurrentDate
Return Date
Is
Begin
Return G_CurrentDate;
End FN_GetCurrentDate;
--设置全局变量<当前日期>
Procedure SP_SetCurrentDate
(P_CurrentDate In Date)
Is
Begin
G_CurrentDate:=P_CurrentDate;
End SP_SetCurrentDate;
End PKG_System_Constant;
/
3.3 测试
--测试读取常数
Select PKG_System_Constant.FN_GetSystemTitle From Dual;
--测试设置全局变量
Declare
Begin
PKG_System_Constant.SP_SetCurrentDate(To_Date('2001.01.01','yyyy.mm.dd'));
End;
/
--测试读取全局变量
Select PKG_System_Constant.FN_GetCurrentDate From Dual;
10.
select aa.x from aa
where not exists (select 'x' from bb where aa.x = bb.x) ;
以上语句同时使用到了aa中x的索引和的bb中x的索引
11
SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。
SGA中内存根据存放信息的不同,可以分为如下几个区域:
a.Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。
b. 日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。
c. 共享池Shared Pool:包含用来处理的SQL语句信息。它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。
12.
使用分区方式建立的表叫分区表
范围分区
每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日”
到“2005 年 1 月 31 日”的行)。
列表分区
每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。
分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务。通过分区,数据库设计人员和管理员能够解决前沿应用程序带来的一些难题。分区是构建千兆字节数据系统或超高可用性系统的关键工具。
13
回复的方法:
一.使用冷备份,直接将冷备份的文件全部COPY到原先的目录下,在从新启动数据库就可以
二.使用归档日志,
1.启动数据库NOMOUNT
2.创建控制文件,控制文件指定数据文件和重做日志文件的位置.
3.使用RECOVER DATABASE using backup controlfile until cancel 命令回复数据库,这时可以使用归档日志
4.ALETER DATABASE OPEN RESETLOGS;
5.重新备份数据库和控制文件
14的话参考RMAN的使用手册
15略
http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml
注:以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答
一:SQL tuning 类
1:列举几种表连接方式
2:不借助第三方工具,怎样查看sql的执行计划
3:如何使用CBO,CBO与RULE的区别
4:如何定位重要(消耗资源多)的SQL
5:如何跟踪某个session的SQL
6:SQL调整最关注的是什么
7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)
8:使用索引查询一定能提高查询的性能吗?为什么
9:绑定变量是什么?绑定变量有什么优缺点?
10:如何稳定(固定)执行计划
11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么
12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql
二:数据库基本概念类
1:pctused and pctfree 表示什么含义有什么作用
2:简单描述table / segment / extent / block之间的关系
3:描述tablespace和datafile之间的关系
4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
5:回滚段的作用是什么
6:日志的作用是什么
7:SGA主要有那些部分,主要作用是什么
8:oracle系统进程主要有哪些,作用是什么
三:备份恢复类
1:备份如何分类
2:归档是什么含义
3:如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复
4:rman是什么,有何特点
5:standby的特点
6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略
四:系统管理类
1:对于一个存在系统性能的系统,说出你的诊断处理思路
2:列举几种诊断IO、CPU、性能状况的方法
3:对statspack有何认识
4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
5:对raid10 和raid5有何认识
五:综合随意类
1:你最擅长的是oracle哪部分?
2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
3:随意说说你觉得oracle最有意思的部分或者最困难的部分
4:为何要选择做DBA呢?
|
#5 得分:15回复于: 2008-08-01 08:40:28
淘宝网的问题 数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义? 表空间管理方式有哪几种,各有什么优劣。 本地索引与全局索引的差别与适用情况。 一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么? 9i的data guard有几种模式,各有什么差别。 执行计划是什么,查看执行计划一般有哪几种方式。 简单描述一下nest loop与hash join的差别。 db file sequential read与db file scattered read等待的差别,如果以上等待比较多,证明了什么问题? library cache pin与library cache lock是什么地方的等待事件,一般说明什么问题? 在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。 如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。 说明一下对raid5与raid01/10的认识。 列举5个10g的新特性 |
#6 得分:3回复于: 2008-08-01 08:42:41
mark
| |
|
#7 得分:10回复于: 2008-08-01 10:05:10
引用:http://topic.youkuaiyun.com/u/20080729/00/1a49ea4d-7a5c-49bb-8a58-86aa8f0ac5d6.html 1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。 类如: 101a1001 101a1001 102a1002 102a1003 103a1004 104a1005 104a1006 105a1007 105a1007 105a1007 结果: 102a1002 102a1003 104a1005 104a1006 3、有员工表empinfo ( Fempno varchar2(10) not null pk, Fempname varchar2(20) not null, Fage number not null, Fsalary number not null ); 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: fsalary>9999 and fage > 35 fsalary>9999 and fage < 35 fsalary <9999 and fage > 35 fsalary <9999 and fage < 35 每种员工的数量; 4、表A字段如下 month person income 月份 人员 收入 要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入 要求列表输出为 月份 当月收入 上月收入 下月收入 5,表B C1 c2 2005-01-01 1 2005-01-01 3 2005-01-02 5 要求的处数据 2005-01-01 4 2005-01-02 5 合计 9 试用一个Sql语句完成。 6,数据库1,2,3 范式的概念与理解。 7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。 8、oracle临时表有几种。 临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么? 9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离? 10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引, 请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。 11,简述SGA主要组成结构和用途? 12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些? 13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份, 且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。 14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。 15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。 |
|
2你如何加速打补丁的过程? 3打补丁的过程中出错了,你怎么办? 4请提供克隆过程和克隆之后采取的手工操作的大概步骤。 5介绍一下AutoConfig。AutoConfig是如何知道文件中的哪个树脂需要被放入哪一个文件的? 6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件? 7如果你不能看到并发管理日志和输出文件,是哪里出错了? 8你是如何更改并发管理日志和输出文件的位置的? 9如果用户正遇到性能方面的问题,你如何找到问题的原因? 10你如何更改应用程序的密码? 11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名? 答案 1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。 实际的技术对话 少数能够通过电话面试的候选人能够到工作地点去进行面试,Burleson称之为候选人的技术化。他建议面试人员提出一些专业的,例如“中的SYS用户默认密码是多少?” 这些问题没有捏造的答案,面试人员可以轻松地判断候选人的技术能力。“只有那些实践过的员知道答案是‘change_on_install,’” Burleson说。“经验丰富的管理员可以立即发现谎话。” 然后就是最后一个阶段,与公司的IT人员在线会见。这些会见通常会持续半天,这是真正在测试你是否会被雇佣。有时候是一些开放的问题,例如“如果一个终 端用户抱怨性能差劲,你要做的第一件事情是什么?”这些问题的答案非常具有启发性,Burleson说,因为他们也没有正确答案,他们只是看看候选人是如 何独立思考的,或者是数据库管理员有多少创新思维。 也许更重要的是,这个最后的交流就是判断一些无形的,例如人际关系技巧的过程。拥有一个能够成为团队中一员的数据库管理员对于大多数公司(即使不是所有的公司)来说都是优先考虑的。在很多情况下 ,这些无形的东西形成了差别。 “我见过公司拒绝了技术能力最强的候选人。这样的事情总是发生,” Burleson指出。“数据库管理员需要与其他人打好关系。” 最后,Burleson说,忘掉星期五可以穿便装的习惯。 “面试中穿得太随便是对自己的极度不负责,”他说。 “外表确实重要。” ———————————————————————————————————— 整理了几个Oracle面试中的技术问题,各位可以借鉴一下: 1.解释冷备份和热备份的不同点以及各自的优点 解 答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于 当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在 非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3.如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令. 4.解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment. 5.给出两个检查表结构的方法 解答:1.DESCRIBE命令 2.DBMS_METADATA.GET_DDL 包 6.怎样查看数据库引擎的报错 解答:alert log. 评价:这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度。 2 2.1你可以合并多个补丁。 2.2你可以为一个非交互的补丁创建一个响应文件。 2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompile)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。 3 查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。 4在源文件上(所有层)运行pre-clone,使用RMAN复制(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone 。 手工步骤(可能会更多): 4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。 4.2 修改工作流和并发管理器表。 4.3更改打印机。 5 AutoConfig 使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个文件,在$APPL_TOP/admin 目录下,进行集中式的存储。 当你运行AutoConfig 的时候,它读取XML文件,并且创建所有的AutoConfig 管理配置文件。 对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。 6 6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。 6.2查看apache/jserv是否启动了。 6.3运行IsItWorking, FND_.PING, aoljtest等。 7很有可能是FNDFS监听器停止了。看看 FND_CONCURRENT_REQUESTS 表中的OUTFILE_NODE_NAME 和 LOGFILE_NODE_NAME 的数值。看看FND_NODES 表。看看tnsnames.ora 中的FNDFS_ entry 。 8日志问卷爱女的位置是由$APPLCSF/$APPLLOG 参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT 决定的。 9 9.1追踪这个会话(用等待)并且使用tkprof 来分析追踪文件。 9.2生成statspack 报告并进行分析。 9.3使用top/iostat/sar/vmstat 监控O/s 。 9.4通过ping这类基本的测试结果来判断网络的瓶颈。 10 10.1 使用FNDCPASS 来更改APPS密码。 10.2 手工修改wdbsvr.app/CMD.dat 文件。 10.3 更改所有从其他环境指过来的数据库链接。 11 11.1位置:$FND_TOP/secure directory 11.2 重要性:在其他事务中指向数据库。 11.3 应用程序通过使用“Applications Database Id.”来了解DBC文件的名字。 |