`

一个资深DBA提出的面试题及答案

阅读更多

1. 数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?

答:触发dbwr的执行,dbwr会把和这个日志相关的所有脏队列写到数据文件里,缩短实例恢复所需要的时间。另外,当日志文件被覆盖的时候一定要确保相关dirty buffer一定被写入 数据文件, 所以日志的切换必须引起 检查点。

2. 表空间管理方式有哪几种,各有什么优劣。

答:字典管理方式和本地管理方式,本地管理方式采用位图管理extent,减少字典之间的竞争,同时避免了碎片。

本地管理表空间与字典管理表空间相比,其优点如下:

1).减少了递归空间管理;

2).系统自动管理extents大小或采用统一extents大小;

3).减少了数据字典之间的竞争;

4).不产生回退信息;

5).不需合并相邻的剩余空间;

6).减少了空间碎片;

7).对临时表空间提供了更好的管理。


3. 本地索引与全局索引的差别与适用情况。

答:对于local索引,每一个表分区对应一个索引分区,当表的分区发生变化时,索引的维护由Oracle自动进行。对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维护操作时,通常会导致全局索引的INVALDED,必须在执行完操作后REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES语句,可以使在进行分区维护的同时重建全局索引。

4. 一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么?

答:这个要考虑到rowid所占的字节数,假设char总是占用2字节的情况,比较rowid,另外,table和index在segment free block的管理也有差别。


5. Oracle9i的data guard有几种模式,各有什么差别。

答:三种模式:
最大性能(maximize performance):这是data guard默认的保护模式。primay上的事务commit前不需要从standby上收到反馈信息。该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小。
最大可用(maximize availability):在正常情况下,最大可用模式和最大保护模式一样;在standby不可用时,最大可用模式自动最大性能模式,所以standby故障不会导致primay不可用。只要至少有一个standby可用的情况下,即使primarydown机,也能保证不丢失数据。
最大保护(maximize protection):最高级别的保护模式。primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果所有standby不可用,则primary会挂起。该模式能保证零数据丢失。

6. 执行计划是什么,查看执行计划一般有哪几种方式。

答:执行计划是数据库内部的执行步骤:
set autotrace on
select * from table
alter session set events '10046 trace name context forever,level 12 ';

execute sys.dbms_system.SET_SQL_TRACE_IN_SESSION(sid,serial#,true);

一般采用pl/sql developer,再加个explain plan , v$sql_plan.


7. 简单描述一下nest loop与hash join的差别。

答:nest loop适用于返回结果比较小的情况。
for in 1...n loop
对小表进行遍历
根据小表的结果遍历大表(大表需要索引)
end loop
hash join适用在返回大结果集的情况。

8. db file sequential read与db file scattered read等待的差别,如果以上等待比较多,证明了什么问题?

答:db file sequential read-DB文件顺序读取,这一事件通常显示与单个数据块相关的读取操作(如索引读取)。如果这个等待事件比较显著,可能表示在多表连接中,表的连接顺序存在问题,可能没有正确的使用驱动表;或者可能说明不加选择地进行索引。在大多数情况下我们说,通过索引可以更为快速的获取记录,所以对于一个编码规范、调整良好的数据库,这个等待很大是很正常的。但是在很多情况下,使用索引并不是最佳的选择,比如读取较大表中大量的数据,全表扫描可能会明显快于索引扫描,所以在开发中我们就应该注意,对于这样的查询应该进行避免使用索引扫描。

db file sequential read-DB文件分散读取,这种情况通常显示与全表扫描相关的等待。当数据库进行全表扫时,基于性能的考虑,数据会分散(scattered)读入Buffer Cache。如果这个等待事件比较显著,可能说明对于某些全表扫描的表,没有创建索引或者没有创建合适的索引,我们可能需要检查这些数据表已确定是否进行了正确的设置。然而这个等待事件不一定意味着性能低下,在某些条件下Oracle 会主动使用全表扫描来替换索引扫描以提高性能,这和访问的数据量有关,在CBO 下Oracle 会进行更为智能的选择,在RBO 下Oracle 更倾向于使用索引。当这个等待事件比较显著时,可以结合v$session_longops 动态性能视图来进行诊断,该视图中记录了长时间(运行时间超过6 秒的)运行的事物,可能很多是全表扫描操作(不管怎样,这部分信息都是值得我们注意的)。

9. library cache pin与library cache lock是什么地方的等待事件,一般说明什么问题?

答:library cache pin和library cache lock都是与库高速缓存并发性有关的等待事件。
前者是当会话正在编译或分析PL/SQL过程和视图时产生;
后者是当会话尝试在库高速缓存中修改或检查给定对象时产生。

当要对一个过程或者函数进行编译时,需要在library cache中pin该对象。在pin该对象以前,需要获得该对象handle的锁定,如果获取失败,就会产生library cache lock等待。如果成功获取handle的lock,则继续在library cache中pin该对象,如果pin对象失败,则会产生library cache pin等待。

可能发生library cache pin和library cache lock的情况:
1、在存储过程或者函数正在运行时被编译;
2、在存储过程或者函数正在运行时被对它们进行授权、或者移除权限等操作;
3、对某个表执行DDL期间,有另外的会话对该表执行DML或者DDL;
4、PL/SQL对象之间存在复杂的依赖性。


10. 在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。
答:不能确定,是否可以采用先建索引后建约束:
create index idx_w1 on w_1 (a,b,c) online;
alter table w_1 add constraint uni_w1 unique (a,b,c) novalidate;

11. 如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。

答:1).用vmstat,iostat命令查看系统的负载(I/O读写是否严重,CPU是否空闲).

2).用top工具查看有哪些进程CPU占用率过高;

3). 查询v$session_wait,看看会话都在等待什么资源。

12. 说明一下对raid5与raid01/10的认识。

答:raid5采用校验信息,硬盘的利用率n-1/n, 以RAID5(4D+P)为例子来讲,使用4块磁盘存放数据位,使用1块磁盘存放校验位。其基本原理是这样的:根据条带化的数据4D(使用四位数据)生成一位的校验信息,存放在第五块磁盘中。

raid10先采用先镜像在进行条带化,是最高效的硬盘利用方式,硬盘的利用率50%,是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。

13. 列举5个10g的新特性。

答:1).自动共享内存(SGA)管理
2).自动存储管理(ASM)
3).ADDM和查询优化器
4).闪回表(flashback table)
5).Data Pump(expdp、impdp)

分享到:
评论

相关推荐

    Oracle数据库DBA面试题50道及答案.pdf

    以下是针对给定的Oracle数据库DBA面试题的知识点详细解析: 1. **冷备份和热备份的区别及其优点**: - **热备份**:在数据库运行时(归档模式下)进行备份。优点是可以使用数据库,且可将数据库恢复到任意时间点。...

    OracleDBA面试题及参考答案

    ### Oracle DBA 面试题及参考答案详解 #### 1. 如果信息采集管理系统(ICM)崩溃了怎么办? **解析:** ICM (Information Collection Manager) 是 Oracle E-Business Suite 中的一个关键组件,用于管理和控制其他并发...

    Oracle DBA面试题及答案(for Oracle E-Business Suite DBA)

    Oracle DBA 面试题及答案(for Oracle E-Business Suite DBA) Oracle DBA 面试题及答案是 Oracle E-Business Suite DBA 面试的重要备考资料,本文收集了十一道技术问题和答案,涵盖了 Oracle E-Business Suite DBA ...

    DBA面试题 oracle

    DBA面试题 Oracle 本文总结了 Oracle 数据库管理员(DBA)面试中的一些重要知识点,从表连接方式、执行计划、CBO 和 RBO、SQL 调整、索引、绑定变量、执行计划、排序等方面进行了详细的解释。 一、表连接方式 在 ...

    Oracle数据库DBA面试题50道及答案

    datablock是数据库中最小的逻辑存储单元,当需要更多物理存储空间时,连续的datablocks组成一个extent,一个数据库对象的所有extents则构成该对象的segment。 5. 检查表结构的方法 可以通过DESCRIBE命令来查看表的...

    国外DBA面试题

    国外DBA面试题 Oracle DBA面试题

    Oracle DBA面试题及参考答案

    【Oracle DBA面试题及参考答案】 在Oracle数据库管理(DBA)领域,面试通常涉及到解决实际问题和优化数据库性能的能力。以下是一些可能出现在Oracle DBA面试中的问题及其详细解答: 1. **如果信息采集管理系统(ICM)...

    Oracle DBA面试题

    Oracle DBA面试题涵盖了许多关键领域,这些都是评估潜在DBA能力的重要方面。以下是对这些面试问题的详细解答: 1. **冷备份与热备份**:冷备份是在数据库关闭后进行的,适合所有模式的数据库,操作简单,恢复时无需...

    阿里巴巴DBA面试题

    阿里巴巴DBA面试题涵盖了许多关键的数据库管理领域,如SQL优化、数据库基本概念、备份恢复、系统管理和综合性问题。以下是对这些知识点的详细说明: **SQL优化类:** 1. **表连接方式**:包括内连接(INNER JOIN)...

    DBA面试题集及答案

    ### DBA面试题集及答案解析 #### 一、冷备份和热备份的不同点以及各自的优点 **冷备份**: - 冷备份是指在数据库处于关闭状态时进行的数据备份方式。 - 在执行冷备份期间,数据库不能被访问,因为任何对数据的操作...

    MySQL DBA面试题和答案 高手总结 仅供参考

    2. **半同步复制**:在MySQL 5.5中引入,它确保事务在写入Master和至少一个Slave后才返回给客户端,从而减少了数据丢失的可能性。如果Slave宕机,Master会等待超时,然后切换到异步复制模式。 3. **无损半同步复制*...

    Oracle数据库面试题及答案

    Oracle 数据库面试题及答案 Oracle 数据库是关系数据库管理系统的领导者,本文总结了常见的 Oracle 数据库面试题,旨在帮助尚在找工作的大蛱们。下面是详细的知识点解释: 1. 如何判断数据库的时区? 答案:SELECT...

    Oracle+DBA笔试及面试题基础篇

    Oracle+DBA笔试及面试题基础篇,里面有DBA考试题库及面试题库

    oracle dba 面试题总结

    "Oracle DBA 面试题总结" Oracle DBA 面试题总结是 Oracle 数据库管理员需要掌握的重要知识点的汇总。本文将从 SQL 调优、执行计划、索引、绑定变量、执行计划稳定性、排序相关内存等方面对 Oracle DBA 面试题进行...

    一份ORACLE DBA面试题

    一份ORACLE DBA面试题,给找工作 的朋友看看

    DBA常见理论面试题

    DBA常见理论面试题 以下是对给定文件的知识点总结: 数据库基础概念 * char、varchar、nvarchar之间的区别:char是固定长度字符串,varchar是可变长度字符串,nvarchar是unicode字符集的可变长度字符串。它们的...

    SQL_Server_DBA_名企面试问题及答案

    ### SQL Server DBA 名企面试问题及答案 #### 1. 磁盘柜配置与数据库物理部署 **问题背景**:给定一个磁盘柜,包含14块73G的磁盘,需要配置以支持一个200G大小(含日志文件)的数据库。 **解决方案**: - **RAID...

    国外公司的oracledba面试题.pdf

    国外公司的oracledba面试题.pdf

Global site tag (gtag.js) - Google Analytics