Objects
1.明确Oracle数据库中可能发生的错误类型;
2.描述实例恢复的方法;
3.明确checkpoints,redologfiles和archivelogfiles的重要性;
4.配置快速闪回区;
5.配置归档模式;
PartofYourJob
DBA的职责就是要保证数据库是可使用的而且是高效的;
1.避免数据库发生常规错误:比如用户无权限,表空间不足等等;
2.增加MTBF(MeanTimeBetweenFailures),即两次发生故障的时间间隔;
3.使用冗余方式保护关键组件,主要是硬件冗余的方式:比如使用RAC,DG等技术;
4.减少MTTR(MeanTimeToRecover),即发生错误时的恢复时间;
5.最小化数据丢失,提交的数据保留,未提交的数据丢失:使用archivelogfiles,flashbacktechnology,dataguard技术;
CategoriesofFailure
1.语句级别错误:比如select,insert,update,delete错误;
2.用户进程错误:比如一个数据库的会话失败了;
3.网络错误:数据库的连接丢失;
4.用户错误:比如删除了一个表,删除了一个用户等等;
5.实例错误:比如数据库突然宕机;
6.媒体错误:比如因为磁盘损坏或者OS级别删除而丢失了数据库文件;
StatementFailure
1.试图往表中插入非法数据:需要程序前端做验证,或者让用户修改数据;
2.尝试执行某个操作时权限不足:需要dba授权某个对象权限或者系统权限;
3.尝试分配空间失败:开始可重新开始的空间分配,增加用户的磁盘配额,对表空间添加空间;
4.应用程序中的逻辑错误:需要开发人员去修改程序错误;
TIPS:这个过程大部分是因为设计错误,例如安全机制和配额规则;需要DBA参与进来处理错误,比如为用户添加权限,分配空间,同时也要参与查看逻辑错误的过程;
UserProcessFailure
用户突然中断连接,异常结束或者是程序错误导致的会话中断:不需要DBA去处理,实例后台进程会回滚未提交的改变并释放相关的锁;
PMON后台进程会阶段性的检查ServerProcesses,并检查他们的会话是否连接;如果PMON发现某一个ServerProcess不再连接了,则会恢复增在进行的事务(回滚未提交事务和释放相关的锁);
如果是少量的错误则不需要关心,只需要让用户重新做一次相关操作即可;如果是大量的连接错误,则需要检查是不是设置的processes参数太小了,或者对用户进行培训;
NetworkFailure
1.监听失败:配置一个备用的的监听器进行连接超时的故障转移;
2.NIC失败:配置多个网卡;
3.网络连接失败:配置备用的网络连接;
解决的方式就是通过做冗余来提供高可用;
UserError
1.用户无意(inadvertently)删除或者修改了数据:如果没有提交的话,不需要任何处理;否则需要使用闪回或者回退表;
2.用户误删除了一个表:从回收站恢复;如果使用了purge选项的话,则需要使用基于时间点的恢复(PITR,Point-in-timeRecovery)来还原表;
FlashbackTechnology
1.查看数据之前的状态;
2.使数据在一个时间段内反复的回放,类似于磁带一样可以前后倒带(backandforth,反复的,来回的)
3.帮助用户做错误分析和恢复;
4.ErrorAnalysis:
-FlashbackQuery:闪回查询,可以查看表中过去一个时间点已提交的数据;使用ASOF子句;
-FlashbackVersionsQuery:闪回版本查询,可以查看表中已提交的数据各个版本变化的过程;
-FlashbackTransactionQuery:闪回事务查询,可以查看事务级别数据库的改变;
5.ErrorRecovery:
-FlashbackTransactionBackout:事务回退,可以回退指定的事务和它依赖的事务;
-FlashbackTable:删回表,可以回退一个或者多个表的内容到之前的一个时间点,而不影响其它的数据库对象;
-FlashbackDrop:从回收站中恢复已删除的表;
-FlashbackDatabase:使整个数据库都回退到过去的某个时间点
InstanceFailure
1.典型的错误有断电,硬件出错,核心的后台进程出错,紧急关机等;一般不需要DBA的干预,在实例启动时会自动进行实例恢复的过程;
2.需要实例恢复时因为数据库实例在关闭的之前没有把内存中的数据和数据文件进行同步;
UnderstandingInstanceRecovery:CKPTProcess
1.检查点事件由CKPT后台进程触发,当检查点发生时,CKPT进程会负责通知DBWR进程将脏数据(DirtyBuffer)写出到数据文件中;CKPT进程的另外一个职责是负责更新数据文件头和控制文件上的检查点信息;
2.检查点分为增量检查点和全量检查点两种;
3.日志切换的过程中,CKPT进程也会把检查点信息写入到数据文件头中;
4.检查点存在的原因:
-保证内存中修改的数据块定期写入磁盘,以至于在系统失败或者数据库失败的时候不会丢失数据;(数据有修改就写入,影响性能)
-减少实例恢复的时间;(如果一直不写入,效率高)
-保证关机的时候所有已提交的数据都写入到了数据文件中
5.检查点信息包括检查点的位置,SCN,RBA(RecoveryBlockAddress)和日志的信息等等
UnderstandingInstanceRecovery:RedoLogFielsandLogWriter
1.什么是事务;
ACID特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持续性(Durability);
事务是数据库内的逻辑单元,是有一条或者多条sql语句组成;
在实例返回给用户北京专业治白癜风的医院白癜风又快又好的偏方