oracle触发redo写的四个条件
当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。
总结一下Redo写的触发条件:
1,每三秒钟超时(timeout):
当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。
2.阀值的达到:
Redo log buffer 1/3 满;
Redo log buffer 拥有 1MB 的脏数据;
参数_log_io_size的设置很重要,一般为log_buffer的1/3大小
3.用户提交:
当一个transaction提交的时候,在Redo stream中将记录一个提交标志。在这些Redo被写到磁盘上之前,这个transaction是不能恢复的。所以,在transaction返回成功标志之前,必须等待LGWR写的完成。进程通知LGWR写,并且以log file sync事件开始休眠。超时为1秒
4.在DBWn写之前:
如果DBWR将要写出的数据的高RBA超过LGWR的on-disk RBA,则DBWR将通知LGWR执行写的操作,在Oracle8i之前,此时DBWR将等待Log file sync事件。从Oracle8i开始,DBWR把这些block(将要写出的block,这种block的高RBA超过了LGWR的on-disk RBA)放入defer队列中,同时通知LGWR执行Redo写出。
注:log buffer space等待事件说明log buffer空间不够用了。
相关文档:
oracle数据库同步
在两台oracle数据库之间测试成功,下面就总结一下吧:
需求:
现有两台oracle数据库服务器A和B(A,B可以是在同一内网,也可以是在互联网上的两台独立机器)。A和B里有都有testable表,结构一样,现需要当A库中的testable表变化时,B库里的testable也相应变化数据
我的解决方案:
在A中建立到B库的 ......
实践第一讲:
名词解释:
dataguard:呵呵 ORACLE高可用体系中三架马车之一(RAC、STREAM)。干嘛用???就是异地备份、容灾什么的。什么原理??==聊哈。
primary:数据母体
standby:数据母体的拷贝或备份或克隆(只能克9个 为什么 要问ORACLE 为什么 log_archive_dest_n 这个你N的上限是10喽)
实践第二件:
实践检 ......
当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。ORACLE有许多种数据类型以满足你的需要。数据类型大约分为:character, number, date, LOB, 和RAW等类型。虽然ORACLE8i也允许你自定义数据类型,但是它们是最基本的数据类型。在下面的文章中你将了解到他们在oracle 中的用法、限制以及允许值。
......
1 oracle 实例
安装--全局数据库名:可以加扩展名:比如test.com.cn(而数据库实例名为test)
数据库口令:为数据库系统帐户:sys,system,sysman,dbsnmp提供密码
高级安装:为每个用户提供不同的密码
sys: change_on_install
system:manager
sysman:oem_temp
dbsnmp:dbsnmp
internal: orcale
scott:tiger
demo: ......
■ 开发前要求配置
■ Select XML格式数据
■ Insert XML格式数据
■ Updata XML格式数据
■ Delete XML格式数据
开发前要求配置
必须安装Oracle客户端
把Classpath指向
classes111.zip ......