Informix培训资料

上传人:飞*** 文档编号:47746983 上传时间:2018-07-04 格式:PDF 页数:16 大小:88.09KB
返回 下载 相关 举报
Informix培训资料_第1页
第1页 / 共16页
Informix培训资料_第2页
第2页 / 共16页
Informix培训资料_第3页
第3页 / 共16页
Informix培训资料_第4页
第4页 / 共16页
Informix培训资料_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《Informix培训资料》由会员分享,可在线阅读,更多相关《Informix培训资料(16页珍藏版)》请在金锄头文库上搜索。

1、城市综合业务网络系统(湖北版)优化Informix 培训李 涛第1页1998/3/18 第一章Informix动 态 可 伸 缩 体 系 结 构 (DSA : Dynamic Scalability Architecture)1、Informix OnLine 系统组成Informix OnLine数据库系统由以下部分组成:1.1 共享内存部分共享内存部分包括:长驻内存部分、虚拟内存部分、消息区。长驻内存部分主要是用于磁盘数据在内存的缓冲、系统数据等等 (buffers,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 ) 。消息区主要用于应用(client)和数据库引擎(server)之间的信息交换。1.2 硬盘数据空间部分 1.3 数据库引擎 虚拟处理器 VP(Virtual Processors)2、Informix OnLine 多线索体系结构Online 7.0 改变了 OnLine5.0 中一对一的客户/服务器模式:由原来的一个数据库请求启 动一个 sqlexec

3、 数据库引擎服务的Client/Server 方式转变为对于所有数据库请求由多个数量固定(除非动态调整)的数据库引擎(即VP 虚处理器)。OnLine7.0 把数据库引擎按照功能划分为多个VP,这些 VP 是长驻内存的oninit 进程。对于每一个数据库服务请求都将被切割成多个可并行的线索,由不同 VP 并行服务。 线索( thread)可以定义为一段顺序执行的程序。虚处理器VP 可以定义为完成一定数据库服务功能的数据库进程。VP 包括以下类型: CPU , PIO(负责写物理日志) ,LIO(负责写逻辑日志) ,AIO(负责磁盘I/O)等等。 线索运行在VP 上,线索的调度由CPU VP完成

4、。从这一点来看,VP 类似与硬件上的CPU,线索类似与运行其上的进程。多线索体系机构的优点:(1)fan in :对于多个应用请求,数据库只用一定数量的VP 服务,并可以根据需要动态调整 ; (2)fan out:多个数据库VP 服务一个应用请求;(3)数据库内部的线索切换比操作系统的进程切换速度快、效率高;城市综合业务网络系统(湖北版)优化Informix 培训李 涛第2页1998/3/18 (4)多线索体系结构更适合于多CPU 的体系机构,如:affinity 特性。3、Informix OnLine 磁盘数据结构3.1 数据存储概念3.1.1page page是 OnLine 的最基本数

5、据存储单位。Online 的数据页面包含以下内容:(1)24 个字节的页头(包含4 个字节的时间戳(timestamp) ); (2)数据区;(3)槽表( slot table)每个 4 字节。页面中的槽表个数存放在页头的一个字节中,所以一个数据页面最多存放255 个记录。(4)时间戳;3.1.2extent extent 是多个物理连续page(最少 4 个)的组合。数据库表的存储空间分配是以extent为单位的。3.1.3tbspace tbspace是 extent 的逻辑组合。 tbspace由分配给一个表的所有extent 组成。一个tbspace只可能在一个dbspace中,但可能

6、跨越多个chunk。3.1.4chunk chunk 是分配给OnLine 的一块物理存储空间,可以是 unix 文件,也可以是原始生设备。3.1.5dbspace、blobspace dbspace是 chunk 的逻辑组合。数据库管理员可以为dbspace创建、增加chunk,从而增加数据库的存储空间。创建dbspace时必须首先指定它的primary chunk 。3.2 日志( log )数据库日志是用于维护数据库数据一致性的手段。OnLine 的日志分为物理日志 (physical log)和逻辑日志( logical log ) 。物理日志用于维护数据库的物理一致性,在每次修改数据

7、之前,该数据所在的数据页面都将存储在物理日志中,所以物理日志也称为“前镜像”(before images) 。逻辑日志用于维护数据库的逻辑一致性,在每次变动数据库时,所有变动情况都将记录在逻辑日志中。物理日志在每次checkpoint 之后将被自动清空;逻辑日志必需是已经备份,而且日志中包含的事务都已提交,并且不是最后一个日志文件才能被释放。长事务指那些尚未结束,但数据库逻辑日志文件已经被事务日志记录充满的事务。这样一来逻辑日志文件既不能被释放重用,同时事务日志记录也写不进逻辑日志文件。这种情况下, Online 会阻塞数据库请求,同时“回滚”长事务。4、Informix 的容错4.1 che

8、ckpoint checkpoint 是 Online 的一个重要系统功能。Online 利用 checkpoint 来保证共享内存中的数据与物理磁盘上的数据保持一致。它包括以下步骤:城市综合业务网络系统(湖北版)优化Informix 培训李 涛第3页1998/3/18 (1)挂起临界区;(2)刷新共享内存中的物理日志缓冲到物理磁盘上的物理日志文件;(3)刷新共享内存缓冲区中发生修改的页面到物理磁盘页面上;(4)写 checkpoint 记录到逻辑日志文件和系统保留页中;(5)清空物理日志文件;(6)刷新逻辑日志缓冲区到物理磁盘的逻辑日志文件中。4.2 fast recovery Online

9、 利用 fast recovery 功能来保证数据库每次重起时快速恢复到数据库shutdown 时的一致性状态。它包括以下步骤:(1)恢复物理日志文件中的数据到共享内存的缓冲区和磁盘的物理页面上;(2)在逻辑日志文件中定位系统最后一个一致点 checkpoint 点;(3)根据系统最后的一致点以后的逻辑日志记录“回滚”( rollback )尚未提交的事务和“重做”(undo)已经提交的事务城市综合业务网络系统(湖北版)优化Informix 培训李 涛第4页1998/3/18 第二章并发控制并发是指多个用户在同一时间操作相同数据。由于并发操作就带来了数据一致性的问题。 Online 是通过锁(

10、 lock)技术来保证并发数据的一致性的。1、锁的类型1.1 共享锁( shared lock) 共享锁可以防止其他用户修改被锁住的目标,但多个用户对同一目标可以施加共享锁。1.2 排它锁( exclusive lock)排它锁锁住的对象将谢绝所有其他用户的访问。1.3 提升锁( promotable lock/update lock)提升锁是用户在使用update 游标时使用的锁。提升锁在数据修改之前是一个共享锁,当数据修改时,共享锁提升为一个排它锁。下面是一张锁冲突表:A S X U none B S y n y y X n n n y U y n n y 说明: S:共享锁X:排它锁U:

11、提升锁A:持有锁的用户B:申请锁的用户 y:锁申请成功n: 锁申请失败2、锁的粒度( granularity)锁粒度是指被加锁对象的大小或范围。锁的粒度越大, 并发程度越低, 锁资源开销越小;锁的粒度越小,并发程度越高,锁资源开销越大。2.1 数据库级锁( database lock)database dbname exclusive/share ;默认情况下,Informix 对数据库使用共享锁,如用户打开数据库:database dbname 。2.2 表级锁( table lock )lock table tabelname in exclusive/share mode; 当做如下操作

12、时,informix 将自动对操作的表施加排它锁:(1) alter index (2) alter table (2) create index (3) drop index (4) rename column (5) rename table 城市综合业务网络系统(湖北版)优化Informix 培训李 涛第5页1998/3/18 表级共享锁锁住的表将谢绝其他用户对该表数据的任何修改,但其他用户可以读该表的数据。表级排它锁锁住的表将谢绝其他用户的任何访问(除非使用“脏读”方式)。对于一个表的大量数据修改操作可以考虑使用表级排它锁。2.3 页面锁( page lock ) 、记录锁( row

13、lock ) 、键值锁( key lock ) 页面锁锁住的对象是一个Informix数据页面,记录锁锁住的对象是一个记录。用户在创建表时可以选择对该表操作时使用页面锁或者记录锁。OnLine 建表时默认的锁方式是页面锁。:create table tablename ( ) lock mode page/row; 当 Informix 试图对该表的记录加锁时,它将根据创建该表时定义的锁类型加锁。键值锁是Informix用来锁住不存在记录的方法,实际上是锁住该记录在表中的位置不被他用。例如: Informix 在事务中删除一个表中的某一记录时,它将锁住该记录对应索引的键值,以免其他用户同时插入

14、同一记录。3、锁的生命周期数据库级锁只有在关闭数据库时才被释放。对于表级锁, 记录锁、 键值锁的生命周期依赖于所进行的数据库操作:select,update,delete 等和数据库事务是否使用。如果数据库没有使用日志,那么只有当用户显式释放该锁时(unlock table tablename) ,Informix 才释放表级锁。总之:当数据库事务结束时,它将释放所有在本事务中使用的锁;事务中对数据库数据修改时所加的锁将保持到事务结束。4、锁的隔离等级( isolation level )隔离等级是指在并发环境下,一个应用隔离其他并发应用的等级。通过使用隔离等级,应用可以在读数据时指定使用锁资

15、源的方式。使用隔离等级必须打开数据库日志。4.1 set isolation to dirty read; 指定应用读数据时,对所读对象不施加任何锁。应用读数据时将不检查是否其他应用正在操作该数据。仅仅考虑系统开销,这种方式读数据是效率最高的。4.2 set isolation to commited read; 指定应用读数据之前,首先对所读数据检查是否有其他应用正在修改该数据,以确保本应用所读数据是已经提交的数据。但这种方式在读数据时,并不对数据施加任何类型的锁,所以用户正在读的数据有可能其他用户正在修改。这种方式是Informix默认的读数据方式。4.3 set isolation to

16、 cursor stability ; 指定应用读数据时,如果使用“游标”,则对所读数据施加共享锁,该共享锁在读取下一记录时将被释放掉,也就是只对所读当前一条记录保持共享锁;如果不使用 “游标”,该种读数据的方式与上一种相同。城市综合业务网络系统(湖北版)优化Informix 培训李 涛第6页1998/3/18 4.4 set isolation to repeatable read; 指定应用读数据时,对所读数据全部施加共享锁,所有的锁资源在事务结束才被释放。使用这种方式,所有扫描过的数据全部施加共享锁,即使部分数据不满足读数据条件,但在扫描过程中扫描过。(如果全表扫描,则这种方式与使用表级锁效果是一样的)。5、锁冲突模式当应用由于锁资源引起冲突时,可以通过设置锁冲突来解决。 5.1 set lock mode to wait; 这种方式下,应用遭遇锁冲突时,将无限制等待下去直到申请到所需锁资源为止。5.2 set lock mode to no wait; 这种方式下,应用遭遇锁冲突时,将立即返回应用:数据库操作错,如:107:Record

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号