IDS(Informix Dynamic Server)的基本概念总结

本文详细介绍了IDS(Informix Dynamic Server)的体系结构,包括关系型数据库的三种体系结构,IDS的系统组成,多线索体系结构的优势,客户/服务器连接方式,磁盘数据结构,IDS的容错处理机制,如checkpoint和fast recovery,以及IDS的监控工具。文章还探讨了并发控制中的锁机制、索引策略和并行数据查询(PDQ)技术。通过对数据分片的介绍,阐述了其在提高I/O效率、可靠性和备份恢复中的作用。最后,讨论了ESQL/C的使用,包括prepare语句、插入游标、滚动游标、更新游标和存储过程的优劣及应用场景。
摘要由CSDN通过智能技术生成

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 Layer Interface)。采用网络连接方式的客户端与服务器端必须使用相同的网络通讯协议(TCP/IP协议或者IPX/SPX协议),但是客户端使用 socker接口,而服务器端使用tli接口。 
2、基于共享内存方式的客户服务器连接 
3、基于TCP/IP协议的客户服务器连接 
(1)在客户端和服务器端的/etc/hosts文件中指定连接方式。 
(2)在客户端和服务器端的/etc/services文件中指定通讯端口和网络协议。 
(3)在客户端和服务器端的$INFORMIXSQLHOSTS文件中指定如何访问服务器,包括服务器名称、服务器网络地址、服务器网络访问方式(协议和端口号)。 
(4)检查网络系统安全文件,包括/etc/hosts.equive、$HOME/.rhosts文件。 
(5)在客户端和服务器端设置环境变量,包括INFORMIXSERVER,INFORMIXSQLHOSTS。 
五、IDS磁盘数据结构 
1、数据存储概念 
(1)page 
page是OnLine的最基本数据存储单位。OnLine的数据页面包含一下内容: 
(1)24个字节的页头(包含4个字节的时间戳(timestamp))。 
(2)数据区 
(3)槽表(slot table) 
每4个字节。前2个字节存放记录在页面的偏移量,后2个字节存放该记录的大小。一个页面中的槽表个数最多不超过255,所以一个数据页面最多存放255个记录。 
(4)时间戳。 
(2)extent 
extent是多个物理连续page(最多4个)的组合。数据库表的存储空间分配是以extent为单位的。 
(3)tbspace 
tbspace是extent的逻辑组合。Tbspace由分配给一个表的所有extent组成。一个tbspace只可能在一个dbspace中,但可能跨越多个chunk。 
(4)chunk 
chunk是分配给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、checkpoint 
checkpint是IDS的一个重要系统功能。IDS利用checkpoint来保证共享内存数据缓冲区中的数据与物理磁盘上的数据保持一致。它包括一下步骤: 
(1)挂起临界区; 
(2)刷新共享内存中的物理日志缓冲到物理磁盘上的物理日志文件; 
(3)刷新共享内存缓冲区中发生修改的页面到物理磁盘页面上; 
(4)写checkpoint记录到逻辑日志文件和系统保留页中; 
(5)逻辑清空物理日志文件; 
(6)刷新逻辑日志缓冲区到物理磁盘的逻辑日志文件中。 
注意:IDS在刷新内存中的页面到物理磁盘之前,必须先将物理日志缓冲区的数据刷新到硬盘上的物理日志文件中。 
2、fast recovery 
IDS利用fast recovery功能来保证数据库每次重起时快速恢复到数据库shutdown时的一致性状态。 
它包含一下步骤: 
(1)恢复物理日志文件中的数据到共享内存的缓冲区和磁盘的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值