oracle中数据丢失的问题? 如果使用shutdown abort强制关闭数据库。那redo log里面的信息如果没有被覆盖,数据还是不会丢失的对吗?那redo log里面的信息如果被覆盖了,又没有归档,那数据库就会永久的丢失对吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、在数据没有完整性保证前,比如写入数据文件和UNDO(不管是否提交),重做日志不会覆盖。当然正常情况下不会丢失数据(这里的异常情况是指异常关机可能导致的数据坏块)。2、不会产生你说的这种情况。理由是,日志切换会触发检查点,检查点会触发DBWR写入数据文件(可能包含已提交和未提交的数据),所以,只有相关数据完成之后(达到一致),然后才允许切换日志。如果这时异常关机,数据库重启后,SMON将利用重做日志先前滚,前滚完成如果发现有未提交的事务,然后利用UNDO信息进行回滚。附:LGWR和DBWR的触发条件:触发LGWR进程: 1. 用户提交 2. 有1/3重做日志缓冲区未被写入磁盘 3. 有大于1M的重做日志缓冲区未被写入磁盘 4. 3秒超时 5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。 触发DBWR进程:1. DBWR超时,大约3秒2. 系统中没有多余的空缓冲区来存放数据3. CKPT 进程触发DBWR 新手求教ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 江湖救急 oracle改名风波 使用PL\SQL连接oracle10g数据库出现错误,求指教~~! 如何计算两个时长的距离 sql优化 数据库和数据库实例 关于字符串查找问题!谢谢 如何用语句写出某用户的所有表与表的结构?? 在线等待 一个很菜的问题,送分! Oracle存储过程的测试问题 非常奇怪的问题
重做日志不会覆盖。当然正常情况下不会丢失数据(这里的异常情况是
指异常关机可能导致的数据坏块)。2、不会产生你说的这种情况。理由是,日志切换会触发检查点,检查点
会触发DBWR写入数据文件(可能包含已提交和未提交的数据),所以,只
有相关数据完成之后(达到一致),然后才允许切换日志。如果这时异常
关机,数据库重启后,SMON将利用重做日志先前滚,前滚完成如果发现有
未提交的事务,然后利用UNDO信息进行回滚。附:LGWR和DBWR的触发条件:
触发LGWR进程:
1. 用户提交
2. 有1/3重做日志缓冲区未被写入磁盘
3. 有大于1M的重做日志缓冲区未被写入磁盘
4. 3秒超时
5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。 触发DBWR进程:
1. DBWR超时,大约3秒
2. 系统中没有多余的空缓冲区来存放数据
3. CKPT 进程触发DBWR