好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Informix动态可伸缩体系结构.docx

13页
  • 卖家[上传人]:re****.1
  • 文档编号:508270305
  • 上传时间:2023-03-20
  • 文档格式:DOCX
  • 文档大小:34.15KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第一章 Informix 动态可伸缩体系结构DSA (Dynamic Scalability Architecture)一、关系型数据库( Relational Database )系统体系结构目前比较流行的商用关系型数据库多采用一下三种体系结构:1、一请求一服务体系结构 采用对于每一数据库服务请求,数据库系统将为之分配一个数据库服务进程服务的方式 优点:可以充分隔离不同用户的数据库服务,并且可以比较容易发挥采用 SMP体系结构的机器的资源缺点:系统内存资源、 CPU资源消耗大;由于使用操作系统的进程调度,系统运行效率不高2、多线索体系结构优点:不需要频繁的操作系统的进程切换,节约内存、 CPU资源;系统并行运行程度高,运行效 率高缺点:系统比较脆弱,一个线索的误操作,可能导致系统瘫痪; 数据库自己的线索切换较操作系 统的切换简单;大数据量的操作可能引起系统资源的不均衡分布3、混合体系结构 该系统由( 1)多线索的网络监听器(2)任务分发器,包括请求 / 响应队列(3)可重用数据库服务器组成 优点:任务处理采用并行和排队的方式,系统运行效率高 缺点:负载均衡较简单二、 IDS系统组成IDS(Informix Dynamic Server) 数据库系统由一下部分组成:1、共享内存部分 共享内存部分包括:长驻内存部分、虚拟内存部分、消息区。

      1)长驻内存部分主要是用于磁盘数据在内存的缓冲、系统数据等等( bufffers,physical/logical buffers,LRUs,chunks,dbsapces,users,locks ⋯)2)虚拟内存部分主要用于 VP的管理信息和缓冲区 global pool,dictionary pools,procedure pools,sort pools,session pools,big buffer pools,MT pools )虚拟内存部分在使用过程中可以动态增长,增长大小在配置文件中定义 3 )消息区主要用于应用( client )和数据库引擎( server )之间的信息交换2、磁盘数据空间部分3、数据库引擎-虚拟处理器 VP( Virtual Processors )三、 IDS多线索体系结构Online7.0 改变了 Online5.0 中一对一的客户 / 服务器模式:由原来的一个数据库请求启动一 sqplexec 数据库引擎服务的 Client/Server 方式转变为对于所有数据库请求由多个数量固定(除 非动态调整)的数据库引擎(即 VP虚拟处理器)服务的方式。

      OnLine7.0 把数据库引擎按功能划分为多个 VP,这些 VP是长驻内存的 oninit 进程对于每一个数 据库服务请求都将被分割成多个可并行的线索,由不同 VP并行服务线索( thread )可以定义为一段顺序执行的程序虚拟处理器 VP可以定义为完成一定义数据库服务功能的数据库进程VP包括一下类型: CPU,PIO(负责写物理日志), LIO (负责写逻辑日志), AIO(负责磁盘 I/O ) 等等线索运行在 VP上,线索的调度由 CPU VP完成从这一点来看, VP类似于硬件上的 CPU,线索类似 与运行其上的进程多线索体系结构的优点:(1) fan-in :对于多个应用请求,数据库只用一定数量的 VP服务,并可以根据需要动态调整;(2) fan-out :多个数据库 VP服务一个应用请求;(3)数据库内部的线索切换比操作系统的进程切换速度快、效率高;( 4 )多线索体系结构更适合于多 CPU的体系结构,如: affinity 特性四、 IDS客户/ 服务器连接方式1、 IDS 的客户 / 服务器连接方式可采用一下方式:( 1 )共享内存连接方式( onipcshm )( 2 )管道连接方式( onipcstr )(3)网络连接方式(基于 TCP/IP协议,包括 ontlitcp,onsoctcp 或者 IPX/SPX协议,ontlispx ) 基于 TCP/IP网络协议的应用接口可以使用 SOC(Socket) 或者TLI (Transport LayerInterface )。

      采用网络连接方式的客户端与服务器端必须使用相同的网络通讯协议( TCP/IP 协议或者 IPX/SPX 协议),但是客户端使用 socker 接口,而服务器端使用 tli 接口2、基于共享内存方式的客户服务器连接3、基于 TCP/IP 协议的客户服务器连接( 1 )在客户端和服务器端的 /etc/hosts 文件中指定连接方式 2 )在客户端和服务器端的 /etc/services 文件中指定通讯端口和网络协议 3 )在客户端和服务器端的 $INFORMIXSQLHOST文S件中指定如何访问服务器,包括服务器名称、 服务器网络地址、服务器网络访问方式(协议和端口号)4)检查网络系统安全文件,包括 /etc/hosts.equive 、 $HOME/.rhosts 文件 5 )在客户端和服务器端设置环境变量,包括 INFORMIXSERVER,INFORMIXSQLHOSTS五、 IDS磁盘数据结构1、数据存储概念(1)pagepage 是 OnLine 的最基本数据存储单位 OnLine 的数据页面包含一下内容:( a) 24个字节的页头(包含 4个字节的时间戳( timestamp ))。

      b)数据区( c )槽表( slot table )每 4个字节前 2个字节存放记录在页面的偏移量,后 2个字节存放该记录的大小一个页面中的槽表个数最多不超过 255,所以一个数据页面最多存放 255个记录 d )时间戳2) extentextent 是多个物理连续 page(最多 4 个)的组合 数据库表的存储空间分配是以 extent 为单位的3) tbspacetbspace 是extent 的逻辑组合 Tbspace 由分配给一个表的所有 extent 组成一个 tbspace 只可能 在一个 dbspace 中,但可能跨越多个 chunk 4) chunkchunk是分配给 OnLine 的一块物理存储空间,可以是 unix 文件,也可以是原始设备5) dbspace 、 blobspace dbspace是chunk的逻辑组合 数据库管理员可以为 dbspace 创建、增加 chunk 、从而增加数据库的 存储空间创建 dbspace 时必须首选指定它的 primary chunk 2、日志( log )数据库日志是用于维护数据库数据一致性的手段 IDS 的日志分为物理日志( physical log )和 逻辑日志( logical log )。

      物理日志用于维护数据库的 物理一致性 ,在每次修改数据之前, 该数据所在的数据页面都将存储 在物理日志中,所以物理日志也称为“前镜像”( before images )逻辑日志用于维护数据库的 逻辑一致性 ,在每次变动数据库时, 所有 变动情况 都将记录在逻辑日 志中物理日志在每次 checkpoint 之后将被自动清空; 逻辑日志必需是已经备份, 而且日志中包含的事务都已提交, 并且不是最后一个日志文件才能被 释放长事务是指那些尚未结束, 但数据库逻辑日志文件已经被事务日志记录充满的事务 这样一来逻 辑日志文件既不能被释放重用,同时事务日志记录也写不进逻辑日志文件这种情况下, IDS会阻塞数据库请求,同时“回滚”长事务六、 IDS的容错处理1、checkpointcheckpoint 是 IDS的一个重要系统功能 IDS利用 checkpoint 来保证共享内存数据缓冲区中的数据 与物理磁盘上的数据保持一致它包括以下步骤:(1)挂起临界区;(2)刷新共享内存中的物理日志缓冲到物理磁盘上的物理日志文件;(3)刷新共享内存缓冲区中发生修改的页面到物理磁盘页面上;( 4 )写 checkpoint 记录到逻辑日志文件和系统保留页中;(5)逻辑清空物理日志文件;(6)刷新逻辑日志缓冲区到物理磁盘的逻辑日志文件中。

      注意: IDS在刷新内存中的页面到物理磁盘之前,必须先将物理日志缓冲区的数据刷新到硬盘上 的物理日志文件中2、 fast recoveryIDS利用 fast recovery 功能来保证数据库每次重起时快速恢复到数据库 shutdown 时的一致性状 态它包含以下步骤:(1)恢复物理日志文件中的数据到共享内存的缓冲区和磁盘的物理页面上; ( 2 )在逻辑日志文件中定位系统最后一个一致点 -checkpoint 点;(3)根据系统最后的一致点以后的逻辑日志记录“回滚”( rollback )尚未提交的事务和“取消”( undo )已经提交的事务3、IDS数据缓冲技术 IDS对数据库中的操作都是通过对共享内存数据缓冲区中数据的操作来完成的例如一个修改数 据库记录的操作Begin work;where fld2=?;Update tab1 set fld1=Commit work;IDS处理如下:(1)客户端连接到 IDS后( connect ⋯, database ⋯), IDS 为这个请求启动一个 sqlexec 任务进 行服务2)sqlexec 在对 SQL语句进行语法分析后,产生执行计划。

      3)sqlexec 在logical log buffer 中写入事务开始记录4) sqlexec 将请求读取某个 chunk中的某个数据页面,并申请相应锁资源5) IDS首选在内存缓冲区的 LRU队列中查找该数据页面是否在缓冲区中6)如果不在缓冲区中, IDS将在FLRU队列中查找空闲页面, 如果没有, IDS将启动一个 Forground Write 来申请一个空闲缓冲区页面 IDS 申请将该数据页面从磁盘上读入到缓冲区中 在修改数据前, IDS将该页面写入物理日志缓冲区中 然后, 进行数据修改 接下来执行步骤 ( 8) 7 )如果在缓冲区中,并且在 FLRU队列中, IDS将该页面写入物理日志缓冲区中,并进行数据修 改如果在 MLRU队列中, IDS将直接进行数据修改8)IDS向逻辑日志缓冲区中写入修改操作的逻辑日志记录 (9)IDS释放该事务申请的所有锁资源,并向逻辑日志缓冲区中写入日志结束记录七、 IDS监控1、IDS状态(1) off-line 状态(2) quiescent 状态(3) online 状态(4) shutdown 状态(5) recovery 状态2、系统阻塞原因CKPT CheckpointLONGTX Long TransactionARCHIVE Ongoing archiveMEDIA_FAILURE Media failureHANG_SYSTEM Database server failureDBS_DROP Dropping a dbspaceDDR Discrete high availability data replicationLBU Logs full high-water mark3、监控工具。

      用户可以使用 SMI( System Monitoring Interface )、 onstat 工具、 oncheck 工具完成对 IDS的监 控1)使用系统监控界。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.