现在的位置: 首页 > 综合 > 正文

INFORMIX-IDS基本知识

2014年10月21日 ⁄ 综合 ⁄ 共 6188字 ⁄ 字号 评论关闭
 

1、描述IDS数据库(database server)由哪三个主要组成部分?并解释说明各组成部分的一些主要的概念。
         IDS数据库是一个多线程结构(multithreaded architecture),由内存(shared memory)、CPU(VP)、磁盘(DISK)三个主要部分组成。
VP,IDS数据库中所有的进程统称为virtual processor(vp)。所有的vp属于一个特定的vp class,一个特定的VP CLASS 主要完成特定的一些任务。所有的VPs以root用户运行,在UNIX下对应的进程为oninit进程。
Shared Memory,划分为Resident Portion、Virtual Portion和Message Portion。
A、Resident Portion,常驻内存部分,包含BUFFER POOL和系统其他数据结构
主要用于存储buffer pool(磁盘缓冲数据),其他的结构有:locks(每个LOCK分配44个字节大小),LRU队列(包含FLRU、MLRU),Logical Log Buffers(3个BUFFER),Physical Log Buffers(2个BUFFER)。
B、Virtual Portion,虚拟内存部分,主要为线程控制信息
以pools进行分配,一个pool为8K大小。主要用于:用户SESSION数据,字典信息,存储过程,线程信息,排序等
C、Message Portion,消息内存部分,用于应用程序间通信
当系统初始化时进行分配,用于应用程序连接服务器的信息。
DISK,磁盘。IDS数据库最高层逻辑上由不同的DBSPACE组成,DBSPACE由物理上的chunk组成,chunk对应物理上的raw device或者cooked file。包含数据文件、逻辑文件(逻辑日志文件和物理逻辑文件)。表创建在dbspace上,对应的空间为tablespace,tabspace按extend进行扩展。Extend由连续的page组成,page为最基本的I/O单元。
 
2、安装IDS数据库之前需要的准备工作有哪些? 准备完成后,如何配置和初始化数据库服务器,及如何配置网络连接。
   获取IDS安装包后,安装IDS之前的准备工作如下:
A、阅读RELEASE NOTE相关
B、根据RELEASE NOTE相关信息,确认操作系统核心参数的设置正确。
C、根据RELEASE NOTE打操作系统必要的patch。
D、创建informix组和用户
   配置数据库服务器
A、设置环境变量
(1)、将INFORMIXDIR变量设置为你安装数据库服务器产品的目录
(2)、将PATH环境变量设置为包括$INFORMIXDIR/bin
(3)、设置INFORMIXSERVER,指定为缺省的数据库服务器
(4)、将ONCONFIG变量设置为有效onconfig配置文件的名称
B、准备连接文件
(1)、修改$INFORMIXDIR/etc/sqlhosts文件
C、设置配置参数
(1)、修改$INFORMIXDIR/etc/onconfig文件,配置相关参数
D、初始化和启动数据库服务器
(1)、初始化数据库服务器,oninit –i 只有第一次初始化时使用-i选项。
(2)、初始化完成后,需要修改物理日志表空间位置及大小,同时根据需要修改逻辑日志大小和数量。
(3)、根据运行情况,优化修改onconfig文件参数。
 
3、描述共享内存(shared memory)的组成部分,如何在ONCONFIG文件中进行配置?如何进行监控(监控命令的使用)?
Shared Memory,划分为Resident Portion、Virtual Portion和Message Portion。
A、Resident Portion,常驻内存部分,包含BUFFER POOL和系统其他数据结构
主要用于存储buffer pool(磁盘缓冲数据),其他的结构有:locks(每个LOCK分配44个字节大小),LRU队列(包含FLRU、MLRU),Logical Log Buffers(3个BUFFER),Physical Log Buffers(2个BUFFER)。
在onconfig文件中对应的参数情况:buffer pool—BUFFERS,locks—LOCKS,LRU队列—LRUS,Physical Log Buffers—PHYSBUFF,Logical Log Buffers—LOGBUFF
B、Virtual Portion,虚拟内存部分,主要为线程控制信息
以pools进行分配,一个pool为8K大小。主要用于:用户SESSION数据,字典信息,存储过程,线程信息,排序等
在onconfig文件中对应的参数情况:SHMVIRTSIZE SHMADD SHMTOTAL
C、Message Portion,消息内存部分,用于应用程序间通信
当系统初始化时进行分配,用于应用程序连接服务器的信息。
      常用监控命令有:
         onstat – 查看常驻内存大小
         onstat –g seg 查看各类内存的使用情况
         onstat –R 查看LRU队列情况
         onstat –u和onstat –k 查看锁情况
 
4、IDS有哪几类主要的VP,并描述如何进行正确的配置?如何进行监控(监控命令的使用)?
   IDS主要的VP类型和配置方式:
A、CPU,运行所有用户线程和一些系统线程,通过ONCONFIG文件配置NUMCPUVPS,在多CPU情况下配置为CPU个数-1;
B、PIO,负责物理日志写任务,系统自动分配1~2个VPS;
C、LIO,负责逻辑日志写任务, 系统自动分配1~2个VPS;
D、AIO,负责磁盘I/O任务;(KAIO),通过ONCONFIG文件进行配置NUMAIOVPS参数,一般配置为CHUNK的个数,当使用KAIO时,配置为2个即可;
   常用监控命令:
       onstat –g ioq 监控AIO队列,监控I/O请求队列LEN和MAXLEN来观察AIO的情况。
       onstat -g rea 监控哪个类型的VP个数不够。
       onstat –g ath 监控活动线程情况。
 
5、描述IDS的存储结构,分别写出如何采用raw device和cooked file 进行表空间的创建。写出DBSPACE的使用情况的监控方法。
   IDS的存储结构从上之下描述为:DBSPACE(CHUNK),TABLESPACE,EXTEND,PAGE。一个dbspace物理上由一个或者多个chunk组成,tablespace为一个表在dbspace上的存储空间的一个统称,tablespace以extend为单位进行扩展大小,一个extend由连续的page组成,page为IDS中最基本的I/O逻辑单位。
   Dbspace的创建分采用raw device和cooked file两种形式。创建方法类似,分别描述如下:
A、使用raw device创建DBSPACE
(1)、准备raw device
     ln –s /dev/rxy0f /dev/ifmx-raw-001
chmod 660 /dev/ifmx-raw-001
chgrp informix /dev/ifmx-raw-001
chown informix /dev/ifmx-raw-001
(2)、创建dbspace
    onspaces –c –d dbspacename –p /dev/ifmx-raw-001 –o 200000 –s 1000000
B、使用cooked file创建DBSPACE
(1)、准备cooked file
     touch /dev/ifmx-cook-001
chmod 660 /dev/ifmx-cook-001
chgrp informix /dev/ifmx-cook-001
chown informix /dev/ifmx-cook-001
(2)、创建dbspace
           onspaces –c –d dbspacename –p /dev/ifmx-cook-001 –o 200000 –s 1000000
   表空间的监控:可以使用onstat –d来查看表空间的使用情况。
 
6、解释说明IDS的逻辑日志、物理日志的作用,分别说明如何进行逻辑日志、物理日志的管理及监控?
   逻辑日志,用于记录系统中进行更新操作信息,包括DML,DDL语句。物理日志用于记录数据修改的前影信息。当系统发生故障时,可以利用逻辑日志物理日志进行恢复。
   逻辑日志的管理和监控:
   A、在onconfig文件进行初始化设置,LOGFILES用来设置逻辑日志的个数,LOGSIZE用来设置每个逻辑日志文件的大小。
   B、增加一个逻辑日志文件的方法:onparams –a –d logspace –s 100000
   C、监控逻辑日志的使用情况,onstat –l ,根据输出报告,分析逻辑日志的buffer是否设置的合理,同时可以监控到逻辑日志的当前使用情况。需要根据系统的实际情况,合理设置逻辑日志文件个数及大小的设置是否合理,一般大数据量情况下,每个逻辑日志文件大小设置为100M,个数可以根据情况设置。
   物理日志的管理和监控:
A、在onconfig文件中进行设置,当系统初始化时,使用了rootdbs,需要从rootdbs中分离,需要为物理日志单独设置dbspace。
B、使用如下命令改变物理日志的位置和大小:onparams –p –d logspace –s 1000000
C、使用onstat –l 命令查看物理日志的缓存使用情况。
  
7、系统触发CHECKPOINT的时机有哪些?发生CHECKPOINT后系统会进行哪些操作?
         Checkpoint有两种类型:full checkpoint和fuzzy checkpoint。
         FULL checkpoint的触发时机有:
A、当使用ontape 或者ON-Bar 进行备份和恢复时;
B、当fast recovery 或者full recovery结束时;
C、当数据库服务器当前逻辑日志将要切换到下一个free日志,但这个free日志包含了最后一次checkpoint信息时;
D、当使用onmode –c 命令时;
E、 当数据库服务器正常shutdown时。
FUZZY checkpoint的触发时机有:
A、当系统中的checkpoint interval时间间隔后,并且这段时间内系统中至少有一个修改操作发生时;
B、系统物理日志75%被占用时;
C、当系统检测到下一个即将成为当前逻辑日志的逻辑日志文件中包含“最新checkpoint”信息时;
D、当执行一些系统管理任务时,比如:增加一个chunk或者dbspace等;
E、 当手工执行onmode –c fuzzy命令时。
当checkpoint产生后,系统将执行如下6个步骤的任务来完成一次CHECKPOINT。
Step 1:No Threads in Critical Section,用户线程不能进入关键区域;
Step 2:Physical Log Buffers Flushed to Disk,物理日志缓存刷新到磁盘;
Step 3:Modified Buffers Flushed to Disk,修改记录从内存中刷新到磁盘;
Step 4:CheckPoint Record is Writen,CHECKPOINT信息写入到逻辑日志中;
Step 5:Logical Log Buffer Flushed to Disk,逻辑日志缓存刷新到磁盘;
Step 6:Logically Empty the Physical Log,逻辑上情况物理日志。
 
8、如何创建临时表空间,如何创建临时表,如何控制临时表的存储DBSPACE
         创建临时表空间的方法和创建普通的表空间类似,首先准备ROW DEVICE 或者COOKED FILE,再进行权限的管理chmod 660,然后使用如下命令进行添加表空间:
         onspaces –c –t –d tempdbs –p /dev/rdsk/device9 –o 10000 –s 500000
         创建临时表的方式有显示的和隐示的两种形式,显示的方式为:create temp table tabname(cols define);隐示的方式为:select * from tabname into temp tmptabname;
我们需要控制临时表的存储dbspace,若需要使用创建的临时表空间,则需要在创建临时表时使用选项:with no log。
 
9、若采用周日进行全备份,周2周4进行增量备份的备份方案。请说明具体的操作步骤?若周3系统发生故障,请说明如何利用备份进行恢复的步骤?
   备份方案:
      修改ONCONFIG文件中备份参数TAPEDEV, TAPEBLK和TAPESIZE,逻辑日志备份参数LTAPEDEV, LTAPEBLK和LTAPESIZE
      周日全备份,ontape –L 0
      周2周4增量备份,ontape –L 1
   系统恢复步骤:
      首先采用周日的全备份进行恢复到周日的时间点,ontape –r,然后采用周2的增量备份进行增量恢复到周2的时间点,再采用逻辑日志恢复到周3发生故障的时间点。
 
10、例举出IDS10,11 的5项以上的新特性。
         (1)、性能方面:
         A、可配置的页面大小,可以在ONCONFIG文件中进行不同页面大小的缓冲池的设置。通过降低数据页和索引页的IO操作次数提高存取效率。
         B、单个dbspace上的多个table fragments,降低了总的dbspace数目,分片表达式是针对同一个dbspace,提高了性能并简化了dbspace的管理。
         (2)、管理的增强
         A、ontape使用标准的I/O,可以备份到目录中;
         B、重命名dbspace;
         C、单用户模式,介入静止模式和在线模式之间的模式,DBA可以进行任何维护工作。
         D、SQL管理API
         (3)、安全的增强
         A、列级加密,内置加密函数
         B、安全环境检查,检查$INFORMIXDIR及它的目录权限,检查SQLHOSTS、ONCONFIG文件的权限;
    C、基于标签的访问控制
         (4)、可用性增强
         A、索引的变化,create index 和 drop index 在执行时可以不加独占锁;
         B、恢复表到指定的时间点,可以从0级备份中恢复一个表的部分或者全部数据到用户期望的时间点;
          (5)、开发功能增强
     A、查询的FROM 子句中的派生表
          B、索引自连接查询计划
     C、增加committed read隔离级别,增强了并发性
     D、跨服务器分布式操作中的增强数据类型,BOOLEAN,LVARCHAR
     E、新增SQL内置函数:比如:ADD_MONTHS(),NEXT_DAY,TRUNC(),SYSDATE()等,基本和ORACLE的内置函数一致,便于数据库之间的迁移。

抱歉!评论已关闭.