redo

时间:2024-11-05 23:07:31编辑:花茶君

redo日志的作用是什么oracle

在Oracle数据库中,有一种日志文件叫做重做日志文件,他就是大家俗称的:redolog。在redolog中又分为两种:在线重做日志与归档日志。
ONLINE Redo log
在线重做日志(online redo log )主要用于:Oracle数据库所在服务器突然掉电、突然重启或者执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库没有办法正常的启动实例。此时,在线重做日志就派上了用场,Oracle会使用在线重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。
在Oracle数据库中,默认情况下,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。
Archive redo log
归档日志(archive log)主要用于硬件级别的错误:磁盘的坏道导致无法读写、写入的失败、磁盘受损导致数据库数据丢失。这就要使用归档日志文件,通过归档日志文件,把数据库恢复到归档日志所在的时间点上然后再通过在线重做日志文件把数据库恢复到当前的时间点上。
对于归档日志文件,可以理解为在线重做日志文件的备份。即当一个重做日志文件被填满了之后,归档日志文件就会把其备份保留一份。(因为上面说了,在线重做日志文件会自动的覆盖)所以,归档日志文件就是旧的在线日志文件的备份。


red这首歌的谐音

哎哎哎哎哎 wait a minute
强苏哥无你的来 和价特若特
阿普罗魔米路带你 也米路带你 拿掐木买票
哎哎 it's red light light
皮够西甲萨瓦 某噶贾某den够记得穆拉
哎哎 it's red light light
票购含恩怒 贡嘎米苏李讷家的都red light
强习吗速力小巴 乔巴 乔巴 哎 哦哎哦
一钢降见你俺nia
怒哭给套 科技就攻击强 可就怒目桥
科目一嫩甲基个特里够亚
一闹代打 哈吉盖特古来 可啊拍毛肚
朽木来 带儿
卡就so red light 松苗呢red light
客诉苏kiao将 可楼苏 red light
毛你伽马那 强扫内了不秒 内个内幕强丧礼扑
琴家萨拉一大 阿强秒 哀求努力爬都
啊啊啊 求耨里爬都
哎哎 空搜red light light
桥楼为给恰 恰
比特罗强吉特罗明萨古
哎哎 森噶开把 把
科母我系无例外孟秋该还等更级派来
海等吗蒂姆高啦 陶拉 陶拉 耶耶 哦哎哦
搜救瓦噶恰家把
怒哭给套 科技就攻击强 就怒目桥
科目一嫩甲基个特里够亚
一闹代打 哈吉盖特古来 可啊拍毛肚
朽木来 带儿
卡就搜red light 松苗呢red light
客诉苏kiao将 可楼搜red light
卡就搜red light 粗给以red light
普及求哑巴 你夜拍red light
可交割弄呢 girl (可桥ki农您girl ongongong girl)
no木五里沟 六七吗 (可翘ki弄您girl ongongong 您girl)
塔拉物 物理ki噶料 忘黑~
控球立盲求
要不犀利萨巴外宿里得了瓦
嫩库该打
业no也配拿掐萨你了吧
米那曼带桥
邱gi集桥外力该带桥
太叫克雷
刻录慢 nice
卡就搜red light 松苗呢red light 二声部(哎 wait a minute 壳素你给位呢没嫩空寂噶
客诉苏kiao将 可楼搜red light 客诉夹也没了梅林 也没了梅林 呢red light
卡就搜red light 粗给以red light 解救个度外 接个度外 接个度外 客气业代
普及求哑巴 你夜拍red light 客气麻辣 客气麻辣)


Oracle的redo和undo的区别

  redo > undo >datafile insert一条记录时 表跟undo的信息都会放进 redo 中 在mit 或之前 redo 的信息会放进硬盘上 故障时 redo 便可恢复那些已经mit 了的数据 redo >每次操作都先记录到redo日志中 当出现实例故障(像断电) 导致数据未能更新到数据文件 则数据库重启时须redo 重新把数据更新到数据文件 undo >记录更改前的一份copy 但你系统rollback时 把这份copy重新覆盖到原来的数据 redo >记录所有操作 用于恢复(redo records all the database transaction used for recovery) undo >记录所有的前印象 用于回滚(undo is used to store unmited data infor used for rollback) redo >已递交的事务 实例恢复时要写到数据文件去的 undo >未递交的事务 redo的原因是 每次mit时 将数据的修改立即写到online redo中 但是并不一定同时将该数据的修改写到数据文件中 因为该数据已经提交 但是只存在联机日志文件中 所以在恢复时需要将数据从联机日志文件中找出来 重新应用一下 使已经更改数据在数据文件中也改过来!   undo的原因是 在oracle正常运行时 为了提高效率 加入用户还没有mit 但是空闲内存不多时 会由DBWR进程将脏块写入到数据文件中 以便腾出宝贵的内存供其它进程使用 这就是需要UNDO的原因 因为还没有发出mit语句 但是oracle的dbwr进程已经将没有提交的数据写到数据文件中去了 undo 也是也是datafile 可能dirty buffer 没有写回到磁盘里面去 只有先redo apply 成功了 才能保证undo datafile 里面的东西都是正确的 然后才能rollback 做undo的目的是使系统恢复到系统崩溃前(关机前)的状态 再进行redo是保证系统的一致性 不做undo 系统就不会知道之前的状态 redo就无从谈起 所以instance crash recovery 的时候总是先rollforward 再rollback undo 回退段中的数据是以 回退条目 方式存储 回退条目=块信息(在事务中发生改动的块的编号)+在事务提交前存储在块中的数据 在每一个回退段中oracle都为其维护一张 事务表 在事务表中记录著与该回退段中所有回退条目相关的事务编号(事务SCN&回退条目) redo 重做记录由一组 变更向量 组成 每个变更变量中记录了事务对数据库中某个块所做的修改   当用户提交一条mit语句时 LGWR进程会立刻将一条提交记录写入到重做日志文件中 然后再开始写入与该事务相关的重做信息 #事务提交成功后 Oracle将为该事备生成一个系统变更码(SCN) 事务的SCN将同时记录在它的提交记录和重做记录中   mit 提交事务前完成的工作   ·在SGA区的回退缓存中生成该事务的回退条目 在回退条目中保存有该事务所修改的数据的原始版本   ·在SGA区的重做日志缓存中生成该事务的重做记录 重做记录中记载了该事务对数据块所进行的修改 并且还记载了对回退段中的数据块所进行的修改 缓存中的重做记录有可能在事务提交之前就写入硬盘中   ·在SGA区的数据库缓丰中记录了事务对数据库所进行的修改 这些修改也有可能在事务提交之前就写入硬盘中   提交事务时完成的工作   ·在为该事务指定的回退段中的内部事务表内记录下这个事务已经被提交 并且生成一个惟一的SCN记录在内部事务表中 用于惟一标识这个事务   ·LGWR后进进程将SGA区重做日志缓存中的重做记录写入联机重做日志文件 在写入重做日志的同时还将写入该事务的SCN   ·Oracle服务进程释放事务所使用的所有记录锁与表锁   ·Oracle通知用户事务提交完成   ·Oracle将该事务标记为已完成   rollback 回退事务完成的工作   ·Oracle通过使用回退段中的回退条目 撤销事务中所有SQL语句对数据库所做的修改   ·Oracle服务进程释放事务所使用的所有锁   ·Oracle通知事务回退成功   ·Oracle将该事务标记为已完成 lishixinzhi/Article/program/Oracle/201311/16931


请问oracle的redo和undo的两点疑问,谢谢

1、停电的情况,事务不会被提交。实际上,如果细说redo apply和undo apply过程的话,是这样的:数据库先用redo恢复数据文件(包括普通permanent表空间的数据文件和undo表空间的数据文件),这就是你说的“恢复系统到失败点”,这之后开数据库实例会被打开,实例打开后,实例会根据undo中记录的信息回滚未提交的事务。
以下是原厂手册中的说明:
In the context of recovery, the undo information is used to undo the effects of uncommitted transactions, once all the datafile changes from the redo logs have been applied to the datafiles. The database is actually opened before the undo is applied.

You should not have to concern yourself with undo segments or manage them directly as part of your backup and recovery process.




2、磁盘损坏的情况,这种恢复也叫介质恢复,在恢复(recover)之前,需要使用备份先还原(restore)损坏的文件。


上一篇:樱花动漫-专注动漫的门户网站app

下一篇:没有了