Alert Log Messages: Private Strand Flush Not Complete [ID 372557.1]

本文解析了Oracle 10g中出现的“私有线程刷新未完成”日志消息的原因及解决办法。此问题通常发生在日志切换过程中,当所有重做信息未能及时写入日志时触发。文章还介绍了Oracle 10g中为提高重做效率而引入的多线程机制,并给出了调整参数缓解该问题的建议。

Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 11.1.0.7 - Release: 10.2 to 11.1
Information in this document applies to any platform.
"Checked for relevance on 04-Dec-2007"


Private strand flush not complete

Symptoms

"Private strand flush not complete" messages are being populated to the alert log for unknown
reasons.

ALERT LOG EXAMPLE:
>>>
Fri May 19 12:47:29 2006
Thread 1 cannot allocate new log, sequence 18358
Private strand flush not complete
Current log# 7 seq# 18357 mem# 0: /u03/oradata/bitst/redo07.log
Thread 1 advanced to log sequence 18358
Current log# 8 seq# 18358 mem# 0: /u03/oradata/bitst/redo08.log
<<<


>>

Cause

The message means that we haven't completed writing all the redo information to the log when we are trying to switch. It is similar in nature to a "checkpoint not complete" except that is only involves the redo being written to the log. The log switch can not occur until all of the redo has been written.

A "strand" is new terminology for 10g and it deals with latches for redo .

Strands are a mechanism to allow multiple allocation latches for processes to write redo more efficiently in the redo buffer and is related to the log_parallelism parameter present in 9i.

The concept of a strand is to ensure that the redo generation rate for an instance is optimal and that when there is some kind of redo contention then the number of strands is dynamically adjusted to compensate.

The initial allocation for the number of strands depends on the number of CPU's and is started with 2 strands with one strand for active redo generation.

For large scale enterprise systems the amount of redo generation is large and hence these strands are *made active* as and when the foregrounds encounter this redo contention (allocated latch related contention) when this concept of dynamic strands comes into play.

There is always shared strands and a number of private strands .

Oracle 10g has some major changes in the mechanisms for redo (and undo), which seem to be aimed at reducing contention.

Instead of redo being recorded in real time, it can be recorded 'privately' and pumped into the redo log buffer on commit.

Similary the undo can be generated as 'in memory undo' and applied in bulk.

This affect the memory used for redo management and the possibility to flush it in pieces.

The message you get is related to internal Cache Redo File management.

You can disregard these messages as normal messages.

When you switch logs all private strands have to be flushed to the current log before the switch is allowed to proceed.

Solution

These messages are not a cause for concern unless there is a significant gap in seq# between the "cannot allocate new log" message and the "advanced to log sequence" message.


This issue is infact not a bug and is expected behavior.

In some cases, this message can be resolved by increasing db_writer_process value. 

外卖服务、同城跑腿、同城配送、代客下单、线下当面付、多商家入驻、配送员管理、店员权限管理、用户充值、积分体系、优惠券营销、会员等级升级、配送会员卡、顾客分层等级、天天特价、分享有礼、页面 DIY 装修、外卖催单、扫码点餐、餐桌预定、排队等号、新用户福利、下单奖励、积分商城、实体会员卡、活动海报制作、平台推广、分销员体系、区域代理、多平台配送对接(达达 / UU 跑腿 / 闪送 / 点我达 / 顺丰同城 / 蜂鸟 / 美团 / 饿了么 / 快跑者)、外卖采集、商户广告投放、套餐红包、店铺业务员、同城帖子发布、砍价活动、拼团抢购、商家入驻、区域购、准时宝、超值换购、隐私号保护、智能客服、商户会员卡、多风格模板、商户独立结算、公众号对接、配送员考核、商户自主发单、商户考核机制、多段式配送、拼好饭、抽奖开奖、云喇叭播报、货币汇率兑换、流失客户精准营销、多语言适配(简体中文 / 繁体中文 / 维文)、多元红包玩法(通用红包 / 分享红包 / 专享红包 / 会员红包)、专属商品、积分签到、第二份半价、任务红包、消息通知中心、多种支付方式(支付宝 / 余额 / 找人代付 / 微信 / 货到付款 / 微信分账 / 头条支付)、商户线上进件、店内点餐、桌台预约、门店呼叫服务、到店排队、门店新客活动、满减 / 满赠 / 进店领券 / 下单返券 / 下单返现、配送费优惠、自提折扣、门店代金券、门店装修、打印设备对接、预订外卖、服务费设置、多渠道消息通知(短信 / 订阅消息 / 模板消息 / 语音)、服务范围划定、图片资源管理、平台资讯、微信直播、跑腿参数配置、全球化汇率、权限分级管理、商户费率设置、配送员与商户奖惩制度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值