Oracle数据库 加入小组

54个成员 55个话题 创建时间:2021-01-15

Oracle数据库DBA面试题目及答案

发表于2021-04-13 2204次查看

有很多朋友向我要一些简单的oracle面试题,我发到这篇帖子里,方便大家翻阅!

 

Oracle 数据库DBA面试题目及答案

 

  1. 请说明一下oracle数据库正常启动所经历的几种状态

答:1STARTUP NOMOUNT --数据库实例启动阶段;(此时数据库启动SGA和后台进程)

2STARTUP MOUNT --数据库装载阶段; (此时数据库会根据参数文件来导入控制文件)

3START OPEN --数据库打开状态;(此时数据库开启)

  1. 请比较在oracle数据库中truncatedelete命令的异同?

答:相同之处:两者都可以用来删除数据表中的记录;

不同之处:truncateDDL操作,它移动HWK(高水位线)无需记录到rollback segment(回滚段);

Delete属性DML操作需要记录回滚日志(rollback segment),因此当所要删除的数据表过大时,会占用大量系统资源。

  1. 请列举几个oracle常用的后台进程并说明一下他们的作用
  1. PMON :负责将死掉的进程杀掉。
  2. SMON:做资源回收(清理临时空间,合并空闲空间等)、数据库崩溃时自我修复(执行RAC中失败节点的实例恢复,收缩回滚段)。
  3. DBWn:将内存(数据缓冲区)中的脏数据块(修改过的数据块)写入数据文件;
  4. LGWR:在DBWR之前把数据顺序的写入日志文件
  5. LMON(锁监视器):监视集群中的所有实例,检测实例是否有失败.在实例离开或重新加入 集群时重新配置锁和其他资源。
  6. LMD(锁管理器守护进程):它为全局缓存服务(保持块缓冲区在实例间一致)处理锁管理器 服务请求.
  7. LMSn(锁管理器服务器进程):主要维持SGA块缓冲区缓存在各个RAC实例间相互保持一致.
  8. LOCK(锁进程):LMD相似,但它处理所有全局资源的请求.

注:说出前4个即可,后4个为rac的进程;

 

  1. 请简述一下oracle SGA的内存结构

   答:SGASystem Global Area)系统全局区域由多个内存组件组成,这些内存组件包括Database Buffer Cache(数据库缓冲区)、Redo Log Buffer(日志缓冲区)、In-Memory Column Store(内存列存储)、Shared Pool(共享池)、Large Pool(大池)、Java PoolStreams Pool

  1. 如何查看oracle rac 的集群状态

答:可以使用命令 crs_stat -t 

 crsctl stat res -t 

或者使用srvctl config 查看相应的服务或资源状态

  1. Oracle DataGard有几种工作模式

最大保护(Maximum Protection

这种模式提供了最高级别的数据保护能力;
2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;
3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现;
4)优点:该模式可以保证备库没有数据丢失;
5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击。

最高可用(Maximum Availability

1)该模式提供了仅次于最大保护模式的数据保护能力;
2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;
3)主库找不到合适的备库写入时,主库不会关闭,而是临时降低到最大性能模式模式,直到问题得到处理;
4)优点:该模式可以在没有问题出现的情况下,保证备库没有数据丢失,是一种折中的方法;
5)缺点:在正常运行的过程中缺点是主库的性能受到诸多因素的影响。

最高性能(Maximum Performance
1)该模式是默认模式,可以保证主数据库的最高可用性;
2)保证主库运行过程中不受备库的影响,主库事务正常提交,不因备库的任何问题影响到主库的运行;
4)优点:避免了备库对主数据库的性能和可用性影响;
5)缺点:如果与主库提交的事务相关的恢复数据没有发送到备库,这些事务数据将被丢失,不能保证数据无损失;

  1. Oracle数据库冷备与热备的区别及各自特点?

答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。

冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。

冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

  1. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决

答:需要重建控制文件,可以用带backup control file 子句的recover 命令恢复数据库

 

  1. 请列举一下你所知道的获取执行计划的几种方法

答:1)explain plan for获取

2)set autotrace on 

3)statistics_level=all;

4)通过dbms_xplan.display_cursor输入sql_id参数直接获取

5)10046 trace跟踪

6)awrsqrpt.sql

  1. 请简单说明一下oracle RAC的启停过程

答:

-----关闭RAC数据库-----

1).关闭监听(grid用户),阻止新的程序在连接进来 
    srvctl stop listener 
2).
写脏块 
    alter systerm checkpoint
;(多执行几次) 
3).
关闭数据库(grid用户下) racdb指的是数据库全局唯一名。执行时间会较长,不要终止 
    /u01/app/11.2.0/grid/bin/srvctl stop database -d racdb -o immediate 
4).
关闭集群件(root用户) 
    /u01/app/11.2.0/grid/bin/crsctl stop cluster -all 
5).
查看资源状态 
    /u01/app/11.2.0/grid/bin/crsctl status resource -t

-----------启动RAC数据库----- 
1).
默认情况下,集群软件会随着操作系统的启动而启动(root)。 
    
检查集群资源:/u01/app/11.2.0/grid/bin/crsctl status resource -t   --所有都    需要是online状态 
    
启动集群资源:

/u01/app/11.2.0/grid/bin/crsctl start cluster -all 
2).
启动数据库(grid 
    srvctl start database -d racdb 
3).
查看监听状态。默认情况下监听会随着集群软件启动(grid) 
    srvctl status listener   --
查看监听状态 
    srvctl start listener    --
启动监听 
4).
登录plsql进行连接测试。

 

发表回复
你还没有登录,请先 登录或 注册!