想请教一下,如果一个事务非常大,已经写满了所有redo log files了,接下来会怎样?
解决方案 »
- 表中插入一列常量
- oracle9i数据库放在防火墙后面就不能访问,但防火墙开了1521端口,请各位指教!
- 开始学习,求教
- 用sql怎么拼出带%的结果?
- pb9+sqlserver2000转到oracle9i ,应该学习什么书,推荐本经典的。
- SQL Server中的 update from 子句在Oracle中对应语法是什么?
- 关于oracle表空间迁移问题
- oracle8.1.7备份的时候发生断电,再检查数据时出现database error code:1578
- 一个很菜的初级问题
- oracle9i For Solaris 8安装的时候数据库实例不能创建
- 求教pl/sql 循环中出现异常捕获异常并继续执行循环的方法
- 请问各位oracle是否支持表的某一列上的触发器
其实检查点发生后,就是lgwr和dbwr写buffer到磁盘文件的过程,但是两者的读写速度时不同的,dbwr写buffer到数据文件的过程相对较慢,因为dbwr写过程是一个随机读取存储的过程。Lgwr写buffer到redo文件的过程比dbwr要快很多,因为lgwr是顺序读取写入的。由于以上lgwr和dbwr写操作的速度不同,就产生了一个等待问题。即当lgwr
轮循一圈后,要进行日志切换,覆盖redo log file,但是此时dbwr还没有写完,那么lgwr就会出现等待,oracle也会hang在那里,同时alter文件中会提示一个相应的提示checkpoint not complete。等检查点完成后数据库自动恢复正常。
当log switch时,会触发检查点,标记检查点时,DBWR要把log file中covered by the log being checkpointed的数据写入到数据文件上,如果Dbwr没有写完,那么前一个logfile是不能被覆盖的。因此必须等检查点完毕,也可以说是将要被覆盖的日志相关的数据块全部写入数据文件后,该日志文件才能被覆盖!
> 每3秒一次.
> 无论何时有人提交请求.
> 要求LGWR切换日志文件.
> 重做缓冲区1/3满,或者包含了1 MB的缓存重做日志数据 ;
日志文件是会重复切换写的的!有没有出现:ORA-01555:snapshot too old