日期:2014-05-16  浏览次数:20507 次

DBA 经典面试题(2)
三、备份恢复类
 
================================================================================
 
1:备份如何分类
 
  逻辑备份:exp/imp
 
  物理备份:
 
  RMAN备份
 
  full backup/incremental backup(累积/差异)
 
  热备份:alter tablespace begin/end backup;
 
  冷备份:脱机备份(database shutdown)
 
 
 
2:归档是什么含义
 
  关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。
 
  其对数据库备份和恢复有下列用处:
 
  数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
 
  在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
 
  
 
   数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式数据库。
 
   在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。
 
 
 
3:如果一个表在2004-08-04 10:30:00被drop,在有完善的归档和备份的情况下,如何恢复?
 
  手工拷贝回所有备份的数据文件
 
  sql> startup mount; 
 
  sql> alter database recover automatic until time’2004-08-04:10:30:00’; 
 
  sql> alter database open resetlogs;
 
 
 
4:rman是什么,有何特点?
 
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库, RMAN可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件,也可以用来执行完全或不完全的数据库恢复。
 
RMAN有三种不同的用户接口:COMMAND LINE方式、GUI方式(集成在OEM中的备份管                                理器)、API方式(用于集成到第三方的备份软件中)。
 
  具有如下特点:
 
  1)功能类似物理备份,但比物理备份强大N倍; 
 
  2)可以压缩空块; 
 
  3)可以在块水平上实现增量; 
 
  4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集; 
 
  5)备份与恢复的过程可以自动管理; 
 
  6)可以使用脚本(存在Recovery catalog中) 
 
  7)可以做坏块监测
 
 
 
5:standby的特点
 
  备用数据库(standby database):ORACLE推出的一种高可用性(HIGH AVAILABLE)数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份
 
  可以实现快速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用服务器。
 
 
 
9i中的三种数据保护模式分别是:
 
  1)、MAXIMIZE PROTECTION:最大数据保护与无数据分歧,LGWR将同时传送到备用节点,
 
  在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。
 
  2)、MAXIMIZE AVAILABILITY:无数据丢失模式,允许数据分歧,允许异步传送。
 
  正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,
 
  主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。
 
  3)、MAXIMIZE PERFORMANCE:这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,
 
  无数据同步检查,可能丢失数据,但是能获得主节点的最大性能。9i在配置DATA GUARD的时候默认就是MAXIMIZE PERFORMANCE
 
 
 
6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略
 
Rman  :  每月一号level 0
 
         每周末/周三level 1
 
         其它每天level 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
四:系统管理类
 
================================================================================
 
1:对于一个存在系统性能的系统,说出你的诊断处理思路
 
1做statspack收集系统相关信息
 
了解系统大致情况
 
确定是否存在参数设置不合适的地方
 
查看top 5 event
 
查看top sql等
 
 
 
2查v$system_event/v$session_event/v$session_wait
 
 从v$system_event开始,确定需要什么资源(db file sequential read)等
 
 深入研究v$session_event,确定等待事件涉及的会话
 
 从v$session_wait确定详细的资源争用情况(p1-p3的值:file_id/block_id/blocks等)
 
3通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值     较大的SQL
 
 
 
2:列举几种诊断IO、CPU、性能状况的方法
 
  top/vmstat
 
  statspack
 
  sql_trace/tkprof
 
  查v$system_event/v$session_event/v