重庆oracle认证培训机构

新闻分类

产品分类

热门关键词

联系我们

企业名称:重庆科禄德科技有限公司

联系人:冷老师

手机:17754917523

邮箱:93865813@qq.com

网址:www.cqora.com

地址:重庆石桥铺高创锦业

甲骨文数据库仓库,LGWR,CKPT,ARCH触发条件

您的当前位置: 首 页 >> 新闻资讯 >> 行业新闻

甲骨文数据库仓库,LGWR,CKPT,ARCH触发条件

发布日期:2021-06-17 作者: 点击:

甲骨文数据库仓库,LGWR,CKPT,ARCH触发条件

一、DBWR写入磁盘数据的触发条件

1.当进程扫描辅助LRU链表和主LRU链表以找到可以覆盖的缓冲区头时,如果扫描的缓冲区头的数量达到某个限制(由隐藏参数决定:db_block_max_scan_pct),则触发DBWR进程。_db_block_max_scan_pct表示已扫描的缓冲区标头数占整个LRU链表缓冲区标头总数的百分比。此时,搜索可用缓冲区标头的过程被挂起,这在v$session_wait中显示为等待“frdd缓冲区等待”事件,并增加v$sysstat中“已检查的脏缓冲区”的值。(可以通过x$kvit查询)

2.当DBWR在主LRUW链表中搜索已经更新并等待写入数据文件的缓冲区头时,如果找到的缓冲区头的数量超过某个限制(由隐藏参数:db_writer_scan_depth_pct决定),DBWR将不会继续向下扫描,而是转向辅助LRUW链表,将其上的脏数据块写入数据文件。_db_writer_scan_depth_pct表示已扫描的脏数据块数量占整个主LRUW链表缓冲区头总数的百分比。

3.如果主LRUW链表和辅助LRUW链表上的脏数据块总数超过一定限制,也会触发DBWR进程。该限制由隐藏参数决定:_db_large_dirty_queue。

4.当增量检查点或完整检查点出现时,将触发DBWR。

5.每三秒启动一次DBWR。

6.当表空间设置为脱机状态时,会触发DBWR。

7.发出命令:改变表空间…开始备份,从而在表空间设置为热备份状态时触发DBWR。

8.当表空间设置为只读状态时,将触发DBWR。

9.删除对象时(如删除表),会触发DBWR。

二、LGWR写联机日志文件触发条件

1、超时(timeout)

当LGWR处于空闲状态时,它依赖于rdbms ipc message等待,处于休眠状态,直到3秒超时时间到。如果LGWR发现有redo需要写出,那么LGWR将执行写出操作,log file parallel write等待事件将会出现。

2、阈值达到只要一个进程在log buffer中分配空间,已经使用的Log buffer的数量将被计算。如果使用的块的数量大于或等于_log_io_size参数设置,那么将会触发LGWR写操作。如果此时LGWR未处于活动状态,那么LGWR将被通知去执行后台写操作。缺省的_log_io_size等于1/3 log buffer大小,上限值为1M,此参数在X$KSPPSV中显示的0值,意为缺省值。也就是,LGWR将在Min(1M,1/3 log buffer size)时触发。 注意此处的log buffer size是以log block来衡量的。此值通常为512 bytes.

3、提交当一个事物提交时,在redo stream中将记录一个提交标志。在这些redo被写到磁盘上之前,这个事务是不可恢复的。所以,在事务返回成功标志给用户前,必须等待LGWR写完成。进程通知LGWR写,并且以log file sync事件开始休眠,超时时间为1秒。Oracle的隐含参数_wait_for_sync参数可以设置为false避免redo file sync的等待,但是就将无法保证事务的恢复性。注意,在递归调用(recursive calls)中的提交(比如过程中的提交)不需要同步redo直到需要返回响应给用户。因此递归调用仅需要同步返回给用户调用之前的最后一次Commit操作的RBA。存在一个SGA变量用以记录redo线程需要同步的log block number。如果多个提交在唤醒LGWR之前发生,此变量记录最高的log block number,在此之前的所有redo都将被写入磁盘。这有时候被称为组提交(group commit)。

4、在DBWR写之前如果DBWR将要写出的数据的高RBA超过LGWR的on-Disk RBA,DBWR将post LGWR去执行写出。在Oracle8i之前,此时DBWR将等待log file sync事件。从Oracle8i开始,DBWR把这些Block放入一个defer队列,同时通知LGWR执行redo写出,DBWR可以继续执行无需等待的数据写出。

三、CKPT发送CHECKPOINT信号的触发条件

1、log_checkpoint_timeout时间达到。

2、当前redo日志已经写够log_checkpoint_internavl*操作系统块大小。

3、redo log switch.

4、alter system checkpoint.

5、alter tablespace XXX begin backup,end backup的時候。

6、alter tablespace , datafile offline, shutdown immediate, direct read的時候。

四.ARCH进程日志归档的触发条件

1.如果设置了自动存档模式,当切换日志时,LGWR进程会触发arch进程进行存档。这是最常见的方式。

2.可以手动存档。使用以下命令:将系统存档日志更改为当前日志,以启动arch进程并存档当前日志文件。

3.如果ARCH进程在5分钟后没有收到LGWR通知,则会发生超时,因此ARCH会醒来检查是否有要归档的日志文件。ARCH通过读取控制文件中的信息来确定是否存档以及应该存档哪些日志文件。但是,在实例恢复或介质恢复期间,ARCH进程不会启动。


本文网址:http://www.cqora.com/news/799.html

关键词:甲骨文培训,甲骨文培训机构,甲骨文培训学校

最近浏览:

报名咨询

点击咨询报名

QQ群

赛烽达技术群

冷老师

17754917523

加微信咨询

张老师微信.jpg

93865813@qq.com