知识大全 归档可用的缓冲大小和数量调整

Posted 索引

篇首语:如烟往事俱忘却,心底无私天地宽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 归档可用的缓冲大小和数量调整相关的知识,希望对你有一定的参考价值。

调整归档时第一件需要确保的事是LGWR没有等待ARCn完成归档一个日志文件 第二个需要考虑的是ARCn活动时的影响对前台进程最小化 而这两个方面通常是刚好相对的 因此最好的目标就是调整ARCn使其足够快 并在可以证明其影响了前台进程时降低其速度 主要包括以下原则 另外还包括归档可用的缓冲大小和数量的调整 以及归档进程的数量

  

  缓冲的大小

  ARCn每次从日志文件读取 _log_archive_buffer_size(以块为单位) 并写入归档目的地 因此如果_log_archive_buffer_size设置为OS下最大的可能值 那么ARCn的性能将最大化并且其在I/O子系统上的负载将最小化 如果该参数在OS上为UNLIMITED 那么设置为最大的物理I/O大小的几倍 效果将最好

  

  缓冲的数量

  如果_log_archive_buffers可用并且可以从日志文件异步读取 那么ARCn将使用aio_read()系统调用并行读取日志到多个缓冲 如果多个日志成员可用 将使用并行异步读每个日志文件成员以扩展磁盘I/O负载 如果使用了软件/硬件镜像进行日志文件传播 类似的负载平衡将会自动由软件/硬件使用 因此 可以考虑使用并行归档读 使用与每个日志文件相同多的磁盘 镜像或者传播 然后配置_log_archive_buffers最多为

  需要注意的是 不能通过设置多个_arch_io_slaves来模麓尤罩疚募稍辈⑿幸觳蕉痢RCn通常自己执行该任何并仅使用I/O服务器来写操作

  为了在可能时进行异步归档写 至少需要设置两个_log_archive_buffers 以并行从日志文件读取 但是如果系统达到了cpu负载颈瓶并且归档期间前台进程受到了影响 并且没有归档聚集的威胁 应该考虑减少缓冲数量 分散cpu负载

  

  进程数量

  如果产生的重做持续过高或者需要归档到多个位置 通常需要多个ARCn进程 从Oracle i开始 可以通过设置log_archive_max_processes参数 也可以通过定期调度ALTER SYSTEM ARCHIVE LOG ALL 如果没有归档聚集 该命令的影响是很小的 但是如果有 该命令会迅速产生额外的arcn帮助赶上聚集

  为了防止LGWR赶上归档聚集运行多个ARCn是最大的保险 但是为了使该策略有效 恰当的配置在线日志和归档终点的磁盘是很重要的

  因为也可以使用手工归档 Oracle在归档期间将在任何在线日志文件上保留一个排斥的WL(等待日志)队列锁 而忽略log_archive_max_processes的设置 这些队列上的操作由archive control latch保护 归档活动可以从STATSPACK等报告中的该LARCHE上的gets列得到

  

  影响归档进程性能的两个威胁

  在RAC环境下 在实例没有启动时 其线程是可用的 如果一个关闭的 启用的线程的当前SCN落后于force scn 那么在那个线程上将发生强制的日志切换并且活动实例的ARCn为未活动的实例归档日志文件 这使得arcn进程转移到那个实例中工作而不是执行其自己的工作 然而如果ARCn被其自己的lgwr唤醒归档其自己实例的日志 那么ARCn将会刮起这个归档 这应该通过保持空闲实例启动或者禁用其重做线程完全避免

  归档在前项滚动期间将被完全禁用 因此应该确保干净的关闭 保持重做产生最小化

  

  

  

  通用的索引块头

  

  header address = x c c

  

  kdxcolev

  

  KDXCOLEV Flags =

  

  kdxcolok

  

  kdxcoopc x : opcode= : iot flags= is converted=Y

  

  kdxconco

  

  kdxcosdc

  

  kdxconro

  

  kdxcofbo = x

  

  kdxcofeo = x

  

  kdxcoavs

  

  kdxcolev 索引级别( 代表页块)

  

  kdxcolok 标示结构块事块是否发生

  

  kdxcoopc 内部操作码

  

  kdxconco 索引列数量 包括ROWID

  

  kdxcosdc 块中索引结构改变的数量

  

  kdxconro 索引条目的数量 不包括kdxbrlmc指针

  

  kdxcofbo 块中空闲空间的开始位置

  

  kdxcofeo 块中空闲空间的结束位置

  

  kdxcoavs 块中的可用空间数量(kdxcofbo kdxcofeo)

  

  分支头区域

  

  kdxbrlmc = x

  

  kdxbrsno

  

  kdxbrbksz

  

  kdxbrlmc 如果索引值小于第一个值(row# ) 则为该索引值所在的块地址

  

  kdxbrsno 最后更改的索引条目

  

  kdxbrbksz 可使用的块空间

  

  叶块头区域

  

  kdxlespl

  

  kdxlende

  

  kdxlenxt = x b

  

  kdxleprv = x d

  

  kdxledsz

  

  kdxlebksz

  

  kdxlespl 块拆分时被清除的未提交数据的字节数

  

  kdxlende 被删除的条目数

  

  kdxlenxt 下一个页块的RBA

  

  kdxleprv 上一个页块的RBA

  

  kdxlebksz 可使用的块空间(默认小于分支的可用空间) 分支条目

  

  row# [ ] dba: = x

  

  col ; len ; ( ): c

  

  col ; TERM

  

  row# [ ] dba: = x

  

  col ; len ; ( ): c

  

  col ; TERM

  

  行号 [块中的起始位置] dba

  

  列号 列长度 列值

  

  brach中的每个entry有 个columns:

  一个是child blocks中的最大值 另一个是指向的下一层block的address

  

  但是某些时候可能会有一些比较奇怪的结果

  

  row# [ ] dba: = x c

  

  col ; len ; ( ):

  

   …

  

  col ; len ; ( ):

  

   end of branch block dump

  

  

  叶条目

  

  row# [ ] flag: S lock: len=

  

  col ; len ; ( ): c

  

  col ; len ; ( ): db a

  

  row# [ ] flag: DS lock: len=

  

  行号[在块中的开始位置] 各种标记(锁信息 删除信息)

  

  索引列号 长度 值 其中 个字节的为ROWID号 将其转换为二进制 算法结果为

  

  前 bit代表了file_id

  中 bit代表了block_id

  后 bit代表了row_id

  

  通过文件号和块号算出的结果为创建该索引的表的块

  

  奇怪的是 为什么索引中的rowid不能直接找到obj_id?

  因为索引段对应的数据段在 一开始就知道 因为是先知道数据段才找到索引段 然后

  

  根据索引段内容去搜索数据段内容 所以索引段中 rowid 不必包含 data_object_id 信息

  

  如果索引是建立在非分区表上 或者是分区表上的 LOCAL 索引 使用的是 bytes的 Restricted ROWID 如果索引是建立在分区表上的 GLOBAL index 则使用 bytes 的 Extended ROWID 这样可以区分索引指向哪个分区表

  

  

  更新/重用索引条目

  

  当更新了索引条目后 DUMP如下

  

  kdxconco

  

  kdxcosdc

  

  kdxconro

  

  kdxcofbo = x

  

  kdxcofeo = x f

  

  kdxcoavs

  

  kdxlespl

  

  kdxlende

  

  kdxlenxt = x

  

  kdxleprv = x

  

  kdxledsz

  

  kdxlebksz

  

  row# [ ] flag: D lock: => deleted index entry

  

  col ; len ; ( ): f

  

  col ; len ; ( ): a

  

  row# [ ] flag: lock:

  

  col ; len ; ( ): a => new index entry

  

  col ; len ; ( ): a

  

  更新后 将包含一个删除的条目 一个新的条目 在随后的插入中 如果新插入的索引条目能够放到被删除的索引条目的位置上 就会直接重用这个条目 根据索引值来决定

  

  所谓重用 是对row 的重用 而不是对row所在物理存储(或说物理位置)的重用 索引是按照indexed value对row进行排序的 有新的row被插入 首先按照value排序 将他放在合适的row list中 如果他的位置正好原来有个row被删掉了 则重用这个row在row list中的位置 至于物理存储上 则可能根据版本不同会有不同 在 中 我做的测试并没有向下开辟空间

  

  结论:

  

  ·到叶块中的任何插入都将移除所有被删除的条目

  

  ·删除的空间在随后的写中被清除

  

  ·删除的空间在延迟块清除中被清除

  

  ·全空块被放在空闲列表 可以重用

  

  

  

  索引统计

  

  ·dba_indexes

  

  ·dbms_stats

  

  ·index_stats

  

   analyze index index_name validate structure;

  

   分析资源 锁

  

  ·v$segment_statistics

  

  statistics_level = typical (or all)

  

  注意事项

  

  blevel (dba_indexes) vs height (index_stats)

  

  blocks allocated 但未必使用

  

  lf_rows_len包含行负载(单列索引 个字节)

  

  pct_used索引结构中当前使用的空间 (used_space/btree_space)*

  

  绝大多数索引统计包含删除的条目

  

  non deleted rows = lf_rows – del_lf_rows

  

cha138/Article/program/Oracle/201311/16904

相关参考

知识大全 数据库自我调整介绍

  一自我调整检查点  在以前的文章中笔者谈到过Oracle数据库中有存储缓冲区其包括三部分内容一种叫做脏缓冲存储区这个缓冲存储区中存储的是已经被修改的数据一般情况下这个数据不会马上被写入到数据文件中

知识大全 知道IP和子网掩码,如何计算可用IP数量和可用的IP地址?

知道IP和子网掩码,如何计算可用IP数量和可用的IP地址?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 巧用数据库归档技术解决性能下降问题

许多数据库管理员都会遇到这样的困惑伴随着业务的不断进行数据库文件的大小也在逐渐的增大由此给数据库管理工作带来很大的困难一方面要为在线业务提供越来越大的高性能磁盘容量另一方面数据库的工作性能却越来越差一

中证100指数成份股调整

中证100指数成份股调整定期调整指数成份股原则上每半年调整一次,一般为1月初和7月初实施调整,调整方案提前两周公布。每次调整的比例不超过10%。样本调整设置缓冲区,排名在80名内的新样本优先进入,排名

知识大全 分区大小调整完全手册

  环境    服务器安装有一个G的硬盘目前已经划分为//home/chroot和/swap详细的分区信息如何下所示      Command(mforhelp):p    Disk/dev/hda:

样本股调整

样本股调整中证500指数的样本股原则上每半年调整一次。每次调整的样本比例一般不超过10%。样本调整设置缓冲区,排名在400名内的新样本优先进入,排名在600名之前的老样本优先保留。特殊情况下将对中证5

知识大全 excel表格里单元格插入图片,有什么方法能让图片自动适应单元格大小么,每次都调整图片大小很麻烦

excel表格里单元格插入图片,有什么方法能让图片自动适应单元格大小么,每次都调整图片大小很麻烦不行的。。虽然格片格式里有一个自动根据单元格来改变大小和位置。但不能实现和单元格一样的。因为你图片有估定

知识大全 复测土石方工程数量与设计土石方工程数量偏差在5%内是否作调整,请问查什么规范,谢谢

复测土石方工程数量与设计土石方工程数量偏差在5%内是否作调整,请问查什么规范,谢谢不作调整,按照目前管理,合同签订时已经考虑了,位置因素所带来的影响、5%不在调整范围,看看《FIDIC》的具体说明部分

知识大全 oracle各后台进程介绍

  后台进程用来执行保证数据库运行所需的实际维护任务如某个后台进程维护缓冲区缓存根据需要将块写出到数据文件  另个进程负责在线重做日志文件写满时将它自己复制到一个归档目标  可以通过查询v$bgpro

邓小平曾经指出:“我们国家,国力的强弱,经济发展后劲的大小,越来越取决于劳动者的素质,取决于知识分子的数量和质量。”这启

邓小平曾经指出:“我们国家,国力的强弱,经济发展后劲的大小,越来越取决于劳动者的素质,取决于知识分子的数量和质量。”这启示我们_____。A、要坚持改革开放B、对外开放是我国的基本国策C、在社会主义建