收藏
[@more@]
关于Oracle10g - Private Strand Flush Not Complete
今天抽空做了一下Oracle 10gR2的Data Guard测试,结果在Alert Log中发现了“Private Strand Flush Not Complete”信息,感觉有点怪。
先描述一下系统环境,
1>服务器 IBM p55A上的两个LAPR
# oslevel -s
5300-04-00
2>数据库 Oracle 10gR2
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Productio
NLSRTL Version 10.2.0.1.0 - Production
当在Primary Database端执行日志切换时,发现Alert Log里报“Private Strand Flush Not Complete”
SQL> alter system switch logfile;
System altered.
Alert Log中的相应信息:
Tue Oct 31 02:12:49 2006
Thread 1 cannot allocate new log, sequence 27
Private strand flush not complete
Current log# 2 seq# 26 mem# 0: /oradata/oracle/oradata/tktst/redo02.log
Thread 1 advanced to log sequence 27
Current log# 3 seq# 27 mem# 0: /oradata/oracle/oradata/tktst/redo03.log
“Private strand flush not complete”的大致意思是说在发生日志切换时(Switch Logfiile),没有将所有的Redo信息写到Redo Log中。有点类似“Checkpoint not Complete”
“Strand”(Oracle 10g中的新东东),个人理解就是Redo中的Latch机制,可以提高Redo Buffer系统并发性。(在Oracle9i 中使用log_parallelism参数) Private strand”,系统有也有Shared Strand。
相对于传统的实时(Real-Time)记录Redo信息,Oracle10g中提供类似批处理(Bulk)处理机制,可以将Redo记录在事务提交时(commit)批量写入Log Buffer。
那么在Oracle10g的Alert Log中发现“Private Strand Flush Not Complete”信息,这是与Oracle系统的内部Redo缓存管理相关。
总之,如果“Private Strand Flush Not Complete”不是频繁出现,就当为普通信息好了,其他一切照旧。
关于Oracle10g中的“Strand”,可以查metalink上的Note:372557.1
“Strand”的分配数量于机器的CPU相关,启动是有两个Strands,其中一个Strand服务于Active Redo。相对于Alert Log中的“
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7318139/viewspace-896593/
,如需转载,请注明出处,否则将追究法律责任。