informix能在那些系统运行平台平台上运行

IBM Informix Dynamic Server 11 系统管理(918 考试)认证指南,第
IBM Informix Dynamic Server 11 系统管理(918 考试)认证指南,第
  开始之前  关于本系列  您打算获得 IBM IDS 11 系统管理(考试 918)的认证吗?如果是这样,本系列正好适合您。这个分 8 部分的 IDS 认证准备教程系列 覆盖了在参加考试之前需要了解的所有主题。即使您不打算马上参加认证考试,这个教程系列也可以帮助您了解 IDS 11 中的新特性。  关于本教程  对 IDS 数据库进行调优和配置是一个复杂的过程,有时候会让经验不足的 DBA 感到棘手。但是,IDS 中有许多工具、功能和应用程序可以简化这个任务。  本教程将介绍 IDS 11 提供的监视工具,并讲解如何使用这些工具监视数据库系统的运行状态。在这个教程中,您将:  了解自动监视的工作方式  学习如何通过管理 API 使用 SQL 命令监视系统活动  学习如何在调度程序中创建任务和传感器(sensor),以及如何收集数据  了解如何使用系统监视接口收集数据  学习如何使用 onstat 和 oncheck 实用程序监视系统  学习如何使用消息日志诊断系统问题  本教程是这个分 8 部分的 系列教程 的第 2 部分,这个系列可以帮助您准备 IBM IDS V11 系统管理认证考试(考试 918)。本教程中的资料主要涉及考试第 2 部分 &System Activity Monitoring& 中的目标。  目标  在学习完本教程之后,您应该能够:   使用自动监视  使用系统监视接口  使用 onstat 实用程序  使用 oncheck 实用程序  在调度程序中创建和修改任务  使用操作系统命令进行监视  先决条件  这个教程系列的 第 1 部分 中讨论了 IDS 11 的安装。如果您还没有安装 IDS 11,那么应该考虑下载和安装 IBM IDS 11 的一个拷贝。安装 IDS 会帮助您理解 IBM IDS V11 系统管理认证考试中涉及的许多概念。   系统需求  学习本教程并不一定需要 IDS 的拷贝。但是,如果在学习本教程时用 IBM IDS 11 的 免费试用版 来完成本教程的学习,您将会收获更多。   自动监视和纠正操作  可以使用管理 API、调度程序和 sysadmin 数据库中存储的信息来管理自动维护、监视和管理任务。Dynamic Server 的这些组件可以简化复杂系统中的信息收集和服务器维护。  管理 API  SQL 管理 API 让管理员能够使用各种 SQL 命令执行远程管理,比如管理空间、管理配置、运行日常作业和系统检验。  可以使用 EXECUTE FUNCTION 语句调用内置的 admin( ) 或 task( ) 函数来执行管理任务,这相当于执行 Dynamic Server 的各个管理实用程序。  在 EXECUTE FUNCTION 语句中,参数列表中的值指定实用程序及其命令行参数。例如,下面的 SQL 语句(它相当于 oncheck -ce 命令)要求数据库服务器检查区段(extent):
  EXECUTE FUNCTION admin('check extents');  sysadmin 数据库  sysadmin 数据库中的一些表存储任务属性。使用任务属性(而不是配置参数)来定义调度程序收集的信息以及调度程序运行的语句。   sysadmin 数据库还包含:  内置的 task() 函数   内置的 admin() 函数  command_history 表  表 1. sysadmin 数据库表
表描述PH_TASK包含每个任务执行时间和执行方式的相关信息。PH_ALERT包含必须监视的错误、警告或信息性消息的列表。PH_GROUP包含组名的列表。每个任务都是一个组的成员。PH_RUN列出任务,并包含数据库服务器如何和什么时候执行每个任务的相关信息。PH_THRESHOLD 包含定义的阈值的列表。如果满足一个阈值,任务可以决定采用另一个操作,比如在 PH_ALERT 表中插入一个警告。  ph_task 表中的每行都是一个单独的任务(定义为单独的监视事件),每列都是一个任务属性。任务属性指定的内容包括什么时候执行 SQL 语句、存储过程或 UDR,以及如何处理这个任务等等。例如,在每个星期一的午夜自动运行某个作业。  调度程序  调度程序让数据库服务器能够在预定义的时间执行数据库函数和过程,也可以由服务器自己决定执行的时间。通过使用一个基于 SQL 的管理系统和一组任务,这些函数和过程可以收集信息并监视和调整服务器。   调度程序管理和执行那些安排好的维护、监视和管理任务。可以使用这个工具监视服务器的活动(例如,空间管理,或者以指定的时间间隔自动地备份上一次日志备份之后的所有新日志数据),还可以创建自动运行的纠正操作。  调度程序管理:  任务,可以在特定的时间或者按照特定的时间间隔运行特定的任务。  传感器,可以收集并保存信息。   启动任务,只在数据库服务器启动时运行一次。   启动传感器,只在数据库启动时运行一次。   一组任务属性控制着调度程序,这些属性定义需要收集什么信息或执行什么操作。任务属性存储 sysadmin 数据库的 ph_task 表中。  这个表中的每行都是一个单独的任务,每列都是一个任务属性。任务属性指定的内容包括什么时候运行 SQL 语句、存储过程或函数,以及如何处理这个任务等等。  例如,可以定义一个任务,在每天的 9:00:00 到 19:00:00 之间每小时检查空闲的日志空间。  只使用任务属性(而不是配置参数)来定义调度程序要收集什么信息或执行什么操作。调度程序在预定义的时间执行任务,也可以根据数据库服务器的需要决定执行的时间。  表 2. 内置的任务
任务描述mon_command_history清空命令历史表。mon_config保存 ONCONFIG 文件中的任何修改。mon_config_startup在每次服务器启动时保存 ONCONFIG 文件。mon_vps收集虚拟处理器信息。mon_checkpoint保存关于检查点的信息。mon_table_profile保存表的配置信息,包括表上发生的更新、插入和删除操作的总数。mon_table_names保存表名以及表的创建时间。mon_users保存每个用户的配置信息。check_backup检查备份操作是否已经运行。  可以修改这些任务并设置更多的任务。  设置任务  要想设置任务,首先需要进行计划。需要掌握以下信息:  对所监视的任务的描述  用来存储数据的表  用来捕捉数据的 SQL 命令、存储过程或函数  运行任务的时间和时间间隔   如下面的示例所示,可以使用 SQL 在 ph_task 表中插入一行。还可以包含显示在表列中的值。  清单 1 中的示例创建一个称为 mon_chunkio 的表,并使用一个存储过程收集和存储数据。这个任务指示数据库服务器每 5 分钟执行一次存储过程 chunkio 来收集数据。使用默认的调度策略(例如,在每个工作日的 8:00 A.M. 到 5:00 P.M.),但是 7 天之后数据过期并被删除。  清单 1. 创建一个表并使用存储过程收集和存储数据
  INSERT INTO ph_task 
tk_description, 
tk_result_table, 
tk_create, 
tk_execute, 
tk_frequency, 
tk_delete 
"Chunk I/O counts and space usage", 
"mon_chunkio", 
"create table mon_chunkio (ID integer, chunknum smallint, 
  free integer, size integer, reads integer, pagereads integer, 
  writes integer, pageswritten integer)", 
"chunkio", 
"0 0:05:00", 
"7 0:00:00" 
);   设置传感器  传感器是专门用来收集和保存数据的任务。创建传感器的方法就是在 ph_task 表中插入一行,但是要提供一些额外信息。  要想设置新的传感器,首先需要进行计划。需要掌握以下信息:  对传感器的描述   用来保存收集的数据的结果表   用来收集数据的 SQL 命令、存储过程或函数   运行传感器的时间和时间间隔   清单 2 中的示例显示了一个传感器的代码,它收集关于正在使用的内存量的信息,并将这些信息存储在 mon_memory_system 表中。如果这个表不存在,就创建它。这个任务每 30 分钟运行一次,并删除 mon_memory_system 表中超过 30 天的数据。  清单 2. 收集关于正在使用的内存量的信息,并将这些数据存储在 mon_memory_system 表中
  INSERT INTO ph_task 
(tk_name, tk_type, tk_group, tk_description, tk_result_table, tk_create, 
tk_execute, tk_stop_time, tk_start_time, tk_frequency, tk_delete ) 
("mon_memory_system", 
"SENSOR", 
"MEMORY", 
"Server memory consumption", 
"mon_memory_system", 
"create table mon_memory_system (ID integer, class smallint, size int8, 
   used int8, free int8 )", 
"insert into mon_memory_system select $DATA_SEQ_ID, seg_class, seg_size, 
   seg_blkused, seg_blkfree FROM sysmaster:sysseglst", 
INTERVAL ( 30 ) MINUTE TO MINUTE, 
INTERVAL ( 30 ) DAY TO DAY);   修改任务  修改任务的方法是修改 sysadmin 数据库中以 ph_ 开头的表中的行。  进入 sysadmin 数据库中的 ph_task 表或需要修改的其他表。手工修改任务信息。  命令历史表  sysadmin 数据库中的 command_history 表包含在这个数据库服务器上执行过的 SQL 管理 API 命令的历史信息。   系统监视接口  系统监视接口(system-monitoring interface,SMI)表是由数据库服务器管理的特殊的表,其中包含关于数据库服务器状态的动态信息。可以对这些表使用 SELECT 语句,从而了解关于数据库服务器的几乎任何信息。   buildsmi 脚本  在首次运行数据库服务器时,它运行一个称为 buildsmi 的脚本(这个脚本在 $INFORMIXDIR/etc 目录中)。这个脚本构建支持 SMI 的 sysmaster 数据库和表。数据库服务器需要大约 1750 个空闲的逻辑日志空间页面来构建 sysmaster 数据库。   如果收到一个错误消息,指示您运行 buildsmi 脚本,那么可能是数据库服务器在构建 SMI 数据库、表和视图时发生了问题。执行 buildsmi 脚本时,会删除并重新创建现有的 sysmaster 数据库。   bldutil.sh 脚本  OnBar 在 sysutils 数据库中存储它执行的每个备份/恢复操作的相关信息。每个 dbspace 和逻辑日志的备份信息也存储在这里。在执行热恢复时,OnBar 会使用这些表。   在首次初始化数据库服务器时,它运行一个称为 bldutil.sh(在 UNIX& 上)或 bldutil.bat(在 Windows& 上)的脚本。这个脚本构建 sysutils 数据库。如果脚本运行失败,数据库服务器会在 tmp 目录中创建一个输出文件。输出文件是 bldutil.process_id(在 UNIX 上)或 bldutil.out(在 Windows 上)。这个输出文件中的消息说明在脚本执行期间发生了什么错误。   sysmaster 数据库  sysmaster 数据库是一个 &伪数据库&。这意味着它的大多数表不是磁盘上的普通表,而是指向 IDS 引擎中的共享内存结构的指针。sysmaster 数据库包含的表超过 120 个。Informix Dynamic Server Administrators Guide 中只描述了其中一部分表。其他表没有文档记录,这意味着它们是供内部使用的。   IDS 11 中引入了下面这些新的表。对于其他许多 sysmaster 表,可以在手册中找到更多的详细信息。   表 3. 新的 sysmaster 表
表描述syscheckpoint关于检查点和相关统计数据的信息。systcblst修改了现有的表,增加了等待统计数据。sysenvses查看 Informix 的会话环境变量。sysenv查看服务器环境变量。sysonlinelog查看服务器的 online.log。sysscblst经过改进,可以查看会话使用的内存。sysnetworkio查看数据库会话产生的网络 I/O。sysdualOracle 兼容性特性。syssqlcacheprof显示每个 SQL 缓存的配置信息。syssqltrace系统上最近执行的 SQL 语句。syssqltrace_itrSQL 语句的迭代器的列表。syssqltrace_info关于 SQL 跟踪的一般信息。sysnetglobal全局网络信息。sysnetclienttype基于客户机类型的网络信息。sysbaract_logOnBar 活动日志文件。sysrstcb经过改进,可以查看 I/O 和锁等待信息。  了解 SMI 表  SMI 由数据库服务器自动维护的表和伪表组成。尽管 SMI 表在用户看起来像是表,但是它们并不像普通表那样存储在磁盘上。相反,数据库服务器在需要时根据共享内存中当前的信息在内存中构建这些表。在您查询 SMI 表时,数据库服务器从这些共享内存结构读取信息。因为数据库服务器不断更新共享内存中的数据,所以可以通过 SMI 提供的信息了解数据库服务器的当前状态。   SMI 表提供以下方面的相关信息:   审计  磁盘使用率  用户配置   数据库日志记录状态   表   块(Chunk)   块 I/O   Dbspace   锁   区段   SQL 语句缓存统计数据   虚拟处理器 CPU 利用率   系统配置  随着用户访问和修改数据库服务器管理的数据库,SMI 表中的数据会动态地改变。   访问 SMI 表  任何用户都可以使用 SQL SELECT 语句查询 SMI 表,但是标准用户不能执行 SELECT 之外的其他语句。尝试这么做会导致权限错误。管理员可以执行 SELECT 之外的其他语句,但是这些语句的结果是无法预测的。   Dynamic Server 提供 sysadtinfo 和 sysaudit 表。只有 UNIX 上的用户 informix 或者 Windows 上的 Informix-Admin 组成员可以查询 sysadtinfo 和 sysaudit 表。   不能在 sysmaster 数据库中的任何表上使用 dbschema 或 dbexport。如果这样做,数据库服务器会生成下面的错误消息:   Database has pseudo tables - can't build schema   只要可以对普通表使用 SELECT 语句(DBAccess、SPL 例程、ESQL/C 等),都可以对 SMI 表使用 SELECT 语句,但是有一个限制:在查询 SMI 表时,不能引用 rowid。使用 rowid 的 SELECT 语句不会返回错误,但结果是无法预测的。  所有标准的 SQL 语法对 SMI 表都是有效的,包括表之间的连接、输出的排序等等。例如,如果希望连接一个 SMI 表和一个非 SMI 表,那么用以下标准语法命名 SMI 表:   sysmaster[@dbservername]:[owner.]tablename   示例  目标:列出打开数据库的用户,以及他们用来连接数据库的工作站。   onstat -u 实用程序会报告哪些用户连接到了这个服务器,但是并不报告他们正在使用哪个数据库以及工作站。   Onstat -g ses 会报告用户和工作站,但是不报告数据库。   Onstat -g sql 会报告会话 ID 和数据库,但是不报告用户名和工作站。   清单 3. 示例
  QUERY SELECT sysdatabases.name database, syssessions.username, 
syssessions.hostname, syslocks.owner sid FROM syslocks, sysdatabases, outer 
syssessions WHERE syslocks.tabname = "sysdatabases" AND syslocks.rowidlk = 
sysdatabases.rowid AND syslocks.owner = syssessions. 
OUTPUT database stores_demo username informix hostname istation1 sid 27 
database sysmaster username informix hostname istation1 sid 29  onstat 实用程序  onstat 实用程序提供了一种从命令行监视数据库服务器共享内存的方法。onstat 实用程序从共享内存读取数据,并报告执行这个命令期间的精确统计数据。也就是说,onstat 提供那些在处理期间动态改变的信息,包括缓冲区、锁、索引和用户方面的变化。   监视数据库服务器的状态  onstat 输出的标题表示数据库服务器的状态。当数据库服务器被阻塞时,onstat 在标题行后面显示下一行:所有 onstat 输出都包含一个标题。onstat - 选项只显示输出标题,这可以用来检查数据库服务器模式。标题采用以下形式:   Version--Mode (Type)--(Checkpnt)--Up Uptime--Sh_mem Kbytes  语法  清单 4. Onstat 语法
  &&-onstat-------------------------------------------------------& 
.-----------------------------. V (1) 
&--+-+-----------------+----+-------------------------+-+------+-& 
'-filename_source-' +- -a---------------------+ +- -b---------------------+ 
+- -B---------------------+ +- -c---------------------+ +- 
-C---------------------+ +- -d---------------------+ +- 
-D---------------------+ +- -f---------------------+ +- 
-F---------------------+ +- -g--Monitoring options-+ +- 
-G---------------------+ +- -i---------------------+ +- 
-k---------------------+ +- -K---------------------+ +- 
-l---------------------+ +- -m---------------------+ +- 
-o--+---------------+--+ '-filename_dest-' +- -O---------------------+ +- 
-p---------------------+ +- -P---------------------+ +- 
-r--+---------+--------+ '-seconds-' +- -R---------------------+ +- 
-s---------------------+ +- -t---------------------+ +- 
-T---------------------+ +- -u---------------------+ +- 
-x---------------------+ +- -X---------------------+ '- 
-z---------------------' +- 
---------------------------------------------------------+ '- 
---------------------------------------------------------  注意:每个选项只能出现一次。在一个 onstat 命令调用中可以指定多个选项。  表 4. Onstat 选项
元素用途-显示输出标题。--显示所有 onstat 选项及其功能。-a解释为 onstat -cuskbtdlp;以这个次序显示输出。-b显示关于当前使用的缓存区的信息,包括缓冲池中的常驻页面数量。-B获得关于所有数据库服务器缓冲区(而不只是当前使用的缓存区)的信息。参见 -b。-c显示 ONCONFIG 文件:* $INFORMIXDIR/etc/ $ONCONFIG(在 UNIX 上) * %INFORMIXDIR%etc %ONCONFIG% (在 Windows 上)。-C输出 B-tree 扫描器信息。-d显示每个存储空间中的块的信息。-D显示每个 dbspace 中前 50 个块的页面读和页面写信息。-f列出当前受 DATASKIP 特性影响的 dbspace。-F显示将页面刷新到磁盘的每种写操作类型的计数。-g 提供监视选项。-G输出全局事务 ID。-i使 onstat 实用程序进入交互模式。-j显示活动的 onpload 进程的交互状态。-k显示关于活动的锁的信息。-l显示关于物理和逻辑页面的信息,包括页面地址。-m显示数据库服务器消息日志中最近的 20 行。-o将共享内存段的拷贝保存到文件。-O显示关于 Optical Subsystem 内存缓存和 blobspace 缓冲区的信息。-p显示配置计数。-P显示所有分区的分区号,以及属于这个分区的缓冲池页面的拆分情况。-r以指定的时间间隔重复执行附带的 onstat 选项。默认值是 5 秒。-R显示关于 LRU 队列、FLRU 队列和 MLRU 队列的详细信息。-s显示一般的锁存器信息。-t显示活动的 tblspace 的 tblspace 信息,包括驻留状态。-T显示所有 tblspace 的 tblspace 信息。-u输出用户活动的配置。-x显示关于事务的信息。-X获得关于正在共享和等待缓冲区的线程的精确信息。-z将配置计数设置为零。filename_dest为共享内存段的拷贝指定目标文件。filename_source 指定 onstat 对于请求的信息读取的信息源文件。监视选项指定要使用的 onstat -g 监视选项。秒数指定每次执行 onstat -r 命令之间间隔的秒数。
  onstat g 监视选项  下面的 onstat -g 选项只用于支持和调试。在每个 onstat -g 命令中只能包含其中一个选项。更多信息参见 IBM Informix Performance Guide。   表 5. onstat -g 选项
onstat -g 选项主题或功能-g act活动的线程。输出示例见 onstat -g act 选项。-g afr pool name session id显示为指定的会话或共享内存池分配的内存段。每个会话获得一个共享内存池。获得池名称的方法见 -mem 选项。输出示例见 onstat -g afr pool name session id 选项。-g all输出所有多线程信息。-g ath输出所有线程。sqlmain 线程代表客户机会话。rstcb 值对应于 onstat -u 命令的用户字段。输出示例见 onstat -g ath 选项。关于使用 onstat -g ath 输出 Enterprise Replication 线程的信息,参见 IBM Informix Dynamic Server Enterprise Replication Guide。-g cat [modifier]输出 Enterprise Replication 全局编目中的信息。全局编目包含企业中每个服务器上定义的服务器、复制和复制集的汇总信息。更多信息和输出示例见 onstat -g cat 选项。-g cac agg显示缓存中当前的用户定义的聚合定义。-g cac stmt显示 SQL 语句缓存的内容。输出与 -g ssc 语句相同。-g con输出条件和等待者。输出示例见 onstat -g con 选项。-g ddr输出 Enterprise Replication 数据库日志读取程序的状态。如果日志读取被阻塞,那么在问题解决之前,无法复制数据。更多信息和输出示例见 onstat -g ddr 选项。-g dic table如果不带任何参数,就会为共享内存词典中缓存的每个表输出一行信息。如果提供一个表名作为参数,就输出这个表的内部 SQL 信息。更多信息见 IBM Informix Performance Guide。输出示例见 onstat -g dic table 选项。-g dis输出数据库服务器列表及其状态,以及关于每个数据库服务器、INFORMIXDIR、sqlhosts 文件、ONCONFIG 文件和主机名的信息。输出示例见 onstat -g dis 选项。-g dll输出已经装载的动态库的列表。输出示例见 onstat -g dis 选项。-g dri输出数据复制信息。参见 IBM Informix 管理员指南中关于监视高可用性数据复制状态(High-Availability Data-Replication)的内容。输出示例见 onstat -g dri 选项。-g dsc输出数据分布缓存信息。输出示例见 onstat -g dsc 选项。-g dss [modifier]输出关于各个数据同步线程的活动和用户定义数据类型的详细统计信息。更多信息和输出示例见 onstat -g dss 选项。-g dtc输出关于删除表清理器的统计数据,删除表清理器会从删除表中删除不再需要的行。更多信息和输出示例见 onstat -g dtc 选项。 -g env输出数据库服务器当前使用的环境变量值。更多信息见 onstat -g env 选项。-g ffr pool name session id输出一个共享内存池的空闲段。输出示例见 onstat -g ffr pool name session id 选项。-g glo输出全局多线程信息。这些信息包括虚拟处理器的 CPU 使用信息、会话的总数和其他多线程全局计数器。在 Windows 上,虚拟处理器就是操作系统线程。'pid' 字段下显示的值是线程 id,而不是进程 id(Windows)。输出示例见 onstat -g glo 选项。-g grp [modifier]输出 Enterprise Replication 分组程序的统计数据。该分组程序计算日志记录、用日志记录重新构建原来的事务、对事务进行打包、把事务放入发送队列中。更多信息和输出示例见 onstat -g grp 选项。-g his输出关于 SQLTrace 配置参数的信息。-g imc输出关于连接到数据库服务器的 MaxConnect 实例的信息。如果 MaxConnect 没有连接到数据库服务器,那么这个命令显示 &No MaxConnect servers are connected&。-g ioa输出来自 -g ioq 和 -g iov 的组合信息。输出示例见 onstat -g ioa 选项。-g iob输出大缓冲区使用信息汇总。输出示例见 onstat -g iob 选项。-g iof按照块或文件,输出异步 I/O 统计数据。这个选项与 -D 选项相似,但是它还显示非块、临时和分类工作文件的信息。输出示例见 onstat -g iof 选项。-g iog输出 AIO 全局信息。输出示例见 onstat -g iog 选项。-g ioq queue name 输出特定队列中未完成的 I/O 操作。如果给出 gfd 或 kaio 队列名,就为每个 CPU VP 显示一个队列。如果省略队列名,就显示所有队列的 I/O 统计数据。输出示例见 onstat -g ioq queue name 选项。-g iov按照虚拟处理器,输出异步 I/O 统计数据。输出示例见 onstat -g iov 选项。-g ipl输出索引页面日志状态。-g lmx输出所有锁定的互斥(mutex)。输出示例见 onstat -g lmx 选项。-g lsc显示关于 light scan 的信息。-g mem pool name session id输出一个内存池的统计数据。还显示池名称、包含这个池的共享内存段类型、池的地址、池的总大小、它包含的空闲内存的字节数,以及池中空闲和已分配的内存段数量。如果不提供参数,就显示所有池的信息。块池在主池列表后面的部分单独列出。还可以使用 ISA 获得关于内存池的详细信息。如果运行的 SQL 查询从 PER_STMT_EXEC 和 PER_STMT_PREP 内存池中分配内存,onstat -g mem 会显示关于 PRP.sessionid.threadid 池和 EXE.sessionid.threadid 池的信息。输出示例见 onstat -g mem pool name session id 选项。更多信息见 IBM Informix DataBlade API 程序员指南。-g mgm输出 Memory Grant Manager 资源信息。输出示例见 onstat -g mgm 选项。-g nbm输出非常驻段的块位图,每个 8 KB 块对应一位。位设置为 1 就表示这个块是空闲的。输出示例见 onstat -g nbm 选项。-g nif [modifier]输出网络接口的统计数据。可以通过这些信息判断数据为什么没有复制。更多信息和输出示例见 onstat -g nif 选项。-g nsc client id按照客户机 id,输出共享内存状态。如果省略客户机 id,就显示所有客户机状态。这个命令输出与 nss 命令相同的状态数据。输出示例见 onstat -g nsc client_id 选项。-g nsd输出轮询线程(poll thread)线程的网络共享内存数据。输出示例见 onstat -g nsd 选项。-g nss session id按照会话 id,输出共享内存状态。如果省略会话 id,就显示所有会话状态。这个命令输出与 nsc 命令相同的状态数据。-g nta输出来自 -g ntd、-g ntm、-g ntt 和 -g ntu 的组合网络统计数据。如果安装了 MaxConnect,就可以使用这个命令提供的统计数据进行 MaxConnect 性能调优。-g ntd按照服务,输出网络统计数据。输出示例见 onstat -g ntd 选项。-g ntm输出网络邮件统计数据。输出示例见 onstat -g ntm 选项。-g ntt输出网络用户时间。输出示例见 onstat -g ntt 选项。-g ntu输出网络用户统计数据。输出示例见 onstat -g ntu 选项。-g pos输出 $INFORMIXDIR/etc/s.DBSERVERNAME 文件(UNIX)或 %INFORMIXDIR%s.DBSERVERNAME 文件(Windows)。输出示例见 onstat -g pos 选项。-g ppf partition number 0输出特定分区的分区配置;如果使用 0,就输出所有分区的配置。如果 TBLSPACE_STATS 配置参数设置为 0,就显示:Partition profiles is disabled。输出示例见 onstat -g ppf partition number 0 选项。-g prc输出关于 SPL 例程缓存的信息。输出示例见 onstat -g prc 选项。-g qst输出队列统计数据。-g que输出高层队列接口(这是 Enterprise Replication Queue Manager 的所有队列的通用接口)的统计数据。更多信息和输出示例见 onstat -g que 选项。-g rbm输出常驻段(通信消息区域)的块位图。输出示例见 onstat -g rbm 选项。-g rcv [serverid]输出关于接收管理器的统计数据。接收管理器是接收队列和数据同步之间的一组服务例程。更多信息和输出示例见 onstat -g rcv 选项。-g rea显示已经做好准备的线程。输出示例见 onstat -g rea 选项。-g rep [replname]输出调度管理器队列中的事件。更多信息和输出示例见 onstat -g rep 选项。-g rqm [modifier]输出由 Reliable Queue Manager(RQM)管理的低层队列(每个单独的队列)的统计数据和内容。更多信息和输出示例见 onstat -g rqm 选项。-g rwm输出读/写互斥。输出示例见 onstat -g rwm 选项。-g sch输出每个虚拟处理器的信号量操作、旋转(spin)和忙等待的数量。在 Windows 上,虚拟处理器就是操作系统线程。&pid& 字段下显示的值是线程 id,而不是进程 id(Windows)。输出示例见 onstat -g sch 选项。-g seg输出共享内存段统计数据。这个选项显示数据库服务器当前使用的共享内存段的数量和大小。输出示例见 onstat -g seg 选项。-g ses sessionid按照会话 id,输出会话信息。如果省略会话 id,就为每个会话输出一行汇总信息。更多信息见 onstat -g ses 选项。-g sle显示所有休眠的线程。输出示例见 onstat -g sle 选项。-g smb option输出关于 sbspace 的详细信息。更多信息见 onstat -g smb 选项。-g smxoption显示服务器多路复用器组的连接信息。-g spi输出虚拟处理器请求过 10,000 次以上的 旋转锁。这些旋转锁称为 longspin。longspin 的总数显示在 glo 命令输出的最前面。longspin 过多就意味着系统负载过大,同一个计算机或节点具有过多的虚拟处理器,或者出现了内部问题。要想减少 longspin,可以减少虚拟处理器的数量(通常对 CPU 分类)、减少计算机上的负载或者使用不会过时的或处理器亲合性特性。-g sql session id按照会话 id,输出 SQL 信息。如果省略会话 id,就为每个会话输出一行汇总信息。更多信息见 onstat -g sql 选项。-g ssc监视数据库服务器读取缓存中的 SQL 语句的次数。输出示例见 onstat -g ssc 选项。它显示与 onstat -g cac stmt 相同的输出。更多信息见 IBM Informix Performance Guide 中的 improving query performance。-g ssc all报告 key-only 缓存项以及完整缓存的语句。如果 hits 列中的值小于 STMT_CACHE_HITS 值,这个缓存项就是 key-only 缓存项。更多信息见 IBM Informix Performance Guide 中有关内存使用的信息。-g ssc pool报告 SQL 语句缓存的所有内存池的使用情况。输出显示内存池的名称、类、地址和总大小。更多信息见 IBM Informix Performance Guide 中有关改善查询性能的信息。-g stk tid all显示线程 ID 指定的线程的堆栈,或者是所有线程的堆栈。这个选项并未在所有平台上都得到支持,而且输出不一定精确。输出示例见 onstat -g stk tid 选项。-g stm [session id]显示每个 SQL 预备语句使用的内存。输出示例见 onstat -g stm 选项。更多信息见 IBM Informix Performance Guide 中有关 内存使用和改善查询性能的信息。-g sts输出每个线程的最大和当前堆栈使用量。输出示例见 onstat -g sts 选项。-g sync显示哪个同步是活跃的。输出示例见 onstat -g sync 选项。-g tpf tid输出特定线程 ID 的线程配置。输出示例见 onstat -g tpf tid 选项。-g ufr pool name session id输出分配的段。-g vpcache返回关于 CPU VP 内存块缓存的统计数据。-g wai显示正在等待的线程;包括所有等待互斥或条件的线程和正在生成的线程。-g wmx显示所有互斥以及等待者。输出示例见 onstat -g wmx 选项。-g wst输出等待统计数据。
  从源文件调用的统计数据  通过使用 filename_source 参数和其他选项标志,可以从 filename_source 包含的共享内存段中获得 onstat 统计数据。首先,必须使用 onstat -o 命令创建一个包含共享内存段的文件。  示例  清单 5. 从源文件调用统计数据
  Creating a snapshot of the shared memory for further analysis 
onstat -o myfile 
Checking some information, for example dbspace information 
onstat -d myfile 
Dbspaces 
address number  flags   fchunk  nchunks pgsize  flags  owner  name 
ad357e8 1    0x60001  1    1    2048   N B  informix rootdbs 
b62a5b0 2    0x60001  2    1    4096   N B  informix dbsp1 
2 active, 2047 maximum 
address chunk/dbs offset page Rd page Wr pathname 
ad35948 1   1  0   493   5803  /local0/engines/ol_tuxedo/ifmxdata/rootdbs 
b62a710 2   2  0   4    20   /local0/engines/ol_tuxedo/ifmxdata/dbsp1 
2 active, 32766 maximum 
NOTE: The values in the "page Rd" and "page Wr" columns for DBspace chunks are 
   displayed in terms of system base page size. 
Expanded chunk capacity mode: always   交互式执行  要想让 onstat 实用程序进入交互模式,应该使用 -i 选项。在交互模式下,可以一个接一个地输入多个选项,而不必退出程序。关于使用交互模式的更多信息,参见 onstat -i。  连续执行 onstat  通过使用 seconds 参数和 -r 选项标志,可以让其他所有标志以指定的时间间隔反复执行。  oncheck 实用程序  oncheck 实用程序显示关于数据库磁盘配置和使用情况的信息,比如一个表使用的页面数量、保留页面的内容和一个表中的区段数量。   通过执行 oncheck 命令调用 oncheck 实用程序。这个命令最简单的形式见清单 6:  清单 6. Oncheck 语法
  oncheck 
&-option& 
&database | database:owner.table | tablespacenum logical pagenum ... & 
 -x Places a shared lock on the table when you check and print an index 
 -n Indicates that no index repair should be performed, 
      even if errors are detected Use with the index repair options 
      (-ci, -cI, -pk, -pK, -pl, and -pL). 
 -y Repairs indexes when errors are detected.   选项  表 6. Oncheck 选项
选项描述-cc检查指定的数据库的系统编目表-cd读取所有页面,但是不包括来自指定的数据库、表或段的 tblspace 的简单大对象,并检查每个页面的一致性。还检查那些使用用户定义的访问方法的表。不检查简单大对象或智能大对象。-cD与 -cd 相同,但是还读取每个 blobpage 的头并检查一致性。检查简单大对象,但是不检查智能大对象。-ce检查每个空闲块列表(对应于空闲空间)和每个 tblspace 区段。还检查智能大对象区段和 sbspace 元数据。oncheck 进程会检查磁盘上的区段是否与当前描述它们的控制信息相符。 -ci检查与指定的表相关联的所有索引的键值次序以及横向和纵向节点链接的一致性。还检查那些使用用户定义的访问方法的索引。-cI与 -ci 相同,但是还检查与索引中的 rowid 相关联的键值是否与行中的键值相同。-cr根据几个条件,检查每个根 dbspace 保留页面。-cR检查根 dbspace 保留页面、物理日志页面和逻辑日志页面。-cs检查一个 sbspace 的智能大对象和 sbspace 元数据。 -cS检查一个 sbspace 的智能大对象和 sbspace 元数据以及区段。-pB显示统计数据,这些数据描述指定的表中 blobspace blobpage 的平均完整性。这些统计数据可以用来衡量一个数据库或表中简单大对象的存储效率。如果没有指定表或段,就显示整个数据库的统计数据。-pc与 -cc 相同,但是还显示系统编目信息(因为它会检查系统编目表),包括每个表的区段使用情况。-pd以十六进制格式显示行。 -pD以十六进制格式显示行,还显示 tblspace 中存储的智能大对象值或 sbspace sbpage 中存储的智能大对象的头信息,以及 blobspace blobpage 中存储的简单大对象。-pe与 -ce 相同,但是还显示块和 tblspace 区段信息(因为它会检查空闲块列表)、对应的空闲空间和每个 tblspace 区段。-pk与 -ci 相同,但是还显示指定表的所有索引的键值。-pl与 -ci 相同,但是还显示键值。只检查叶节点索引页面。-pL与 -cI 相同,但是还显示叶节点索引页面的键值和 rowid。-pp显示一个逻辑页面的内容。 -pP与 -pp 相同,但是要求输入块号和逻辑页面号或内部 rowid。-pr与 -cr 相同,但是还显示保留页面信息。-ps检查并显示一个 sbspace 的智能大对象和 sbspace 元数据。-pS检查并显示智能大对象和 sbspace 元数据。列出各个智能大对象的区段和头信息。 -pt显示一个表或段的 tblspace 信息。-pT与 -pt 相同,但是还按照页面类型显示索引信息和页面分配信息(针对 dbspace)。  检查和修复  oncheck 实用程序可以修复以下磁盘结构:  分区页面统计数据  位图页面  分区 blobpage  blobspace blobpage  索引  sbspace 页面   sbspace 的元数据分区  如果 oncheck 探测到其他结构中有不一致的地方,就会发出警告,但是 oncheck 无法纠正问题。  修复 sbspace 和外部空间中的索引  如果索引是使用支持 oncheck -y 选项的访问方法创建的,oncheck 就可以修复 sbspace 和外部空间中的索引。尽管 oncheck 实用程序不修复分段的索引,但是用户定义的访问方法可以修复它们。   锁和 oncheck  在以下操作期间,oncheck 实用程序会在表上放一个共享锁,所以在检查完成之前,其他用户不能执行更新、插入或删除:   在检查数据时   在检查索引时(用 -ci、-cI、-pk、-pK、-pl 或 -pL),而且表使用页面锁定   在使用 -ci、-cI、-pk、-pK、-pl 或 -pL 选项的同时指定了 -x 选项,而且表使用行锁定  如果表没有使用页面锁定,那么在用 oncheck -ci、-cI、-pk、-pK、-pl 或 -pL 选项检查索引时,数据库服务器就不会在表上放共享锁。如果在索引检查期间表上没有共享锁,其他用户就可以在检查期间更新行。  由于在索引检查期间在使用行锁的表上不放置共享锁,oncheck 实用程序的索引检查可能不准确。要想绝对保证完整的索引检查,可以使用 -x 选项执行 oncheck。使用 -x 选项执行时,oncheck 会在表上放一个共享锁,在检查完成之前,其他用户不能执行更新、插入或删除。  消息日志  数据库服务器消息日志是一个操作系统文件。数据库服务器消息日志中包含的消息通常并不要求管理员马上采取措施。   位置  指定消息日志路径的方法是设置 MSGPATH 配置参数。对 MSGPATH 的修改会在数据库服务器重新启动之后生效。  监视消息日志  应该每天查看消息日志一两次,确认服务器运行正常而且日志记录的事件都是预料中的事件。使用 onstat -m 命令获得消息日志的名称和最近的 20 个记录。使用文本编辑器查看完整的消息日志。可以使用操作系统命令(比如 UNIX 命令 tail -f)在消息出现时查看它们。  应该监视消息日志的大小,因为数据库服务器会将新的记录追加到这个文件的末尾。根据需要编辑日志,或者将它备份到磁盘上并删除它。  如果数据库服务器遇到失败,消息日志可以作为审计工具,可以用来研究哪些事件导致了问题。数据库服务器常常会在消息日志中提供问题的性质和建议的纠正措施。  在研究问题的原因时,可以仔细查看数据库服务器消息日志。但是,在日常监视中不需要这样做。  消息的类别  有四个消息类别,但是某些消息属于多个类别:   常规信息  断言失败消息  需要的管理操作  探测到的重大错误  日志消息的示例  清单 7. 常规消息的示例
  Wed Apr 18 19:01:23 2007 
22:56:00 Maximum server connections 284 
22:56:03 Level 1 Archive started on dbsherm05 
23:23:40 Logical Log 42173 Complete, timestamp: 0xeee826ad. 
23:23:41 Logical Log 42173 - Backup Started 
23:24:26 Logical Log 42173 - Backup Completed 
23:26:30 Checkpoint Completed: duration was 29 seconds, 36019 buffers not flushed. 
23:26:30 Checkpoint loguniq 42174, logpos 0x281d658, timestamp: 0xeeece592 
清单 8. 断言失败消息的示例
  19:12:26  Who: Session(33, informix@rdbms2, 0, 25da90ba8) 
 Thread(63, xchg_1.6, 25da5d308, 1) 
 File: rspartn.c Line: 2426 
19:12:26  Results: Could not complete operation on 'erv:"informix".stmy' 
19:12:26  Action: Run 'oncheck -cDI ermes:"informix".avvisi_out_tot_e2' 
19:12:26 stack trace for pid 1474 written to /appl/InformixDump/af.4274f8a 
19:12:26  See Also: /appl/InformixDump/af.4274f8a 
19:12:38 ptmap 
19:12:38 Assert Failed: ptmap 
清单 9. 需要的管理操作消息的示例
  11:05:49 Maximum server connections 4 
11:08:05 Logical Log Files are Full -- Backup is Needed 
清单 10. 重大错误消息的示例
  15:24:33 IBM Informix Dynamic Server Started. 
15:24:33 shmget: [EEXIST][17]: key : shared memory already exists 
15:24:33 mt_shm_init: can't create resident segment 
15:40:09 Assert Failed: Unexpected virtual processor termination, 
         pid = 526411, exit = 0x9   事件警告  数据库服务器可以根据数据库服务器环境中发生的事件,自动地触发管理操作。这种机制称为事件警告(event-alarm)特性。事件可以是信息性的(例如,备份完成),也可以是需要管理员注意的错误(例如,无法分配内存)。要想使用事件警告特性,需要将 ALARMPROGRAM 配置参数设置为一个可执行文件的完整路径,这个可执行文件执行必需的管理操作。  数据库服务器可以执行一个程序,每当出现某些值得注意的事件警告时,或者每当出现任何事件警告时,这个程序会执行操作。值得注意的事件警告包括数据库、表、索引、块或 dbspace 离线,内部子系统失败,启动失败,以及探测到长事务。可以通过电子邮件或 pagermail 接收事件警告的通知。  使用 表 7 中的参数指定:   事件警告程序是针对所有事件警告执行操作,还是只针对某些事件警告   当发生事件警告时执行什么操作   表 7. 事件警告参数
参数描述ALRM_ALL_EVENTS指定 ALARMPROGRAM 是针对 MSGPATH 中记录的所有事件运行,还是只针对指定的值得注意的事件运行。ALARMPROGRAM指定在发生事件警告时执行的文件的位置。  操作系统工具  UNIX 工具  系统活动报告器(SAR)  sar 命令可以用来监视 CPU 利用率、磁盘活动和内存利用率。  清单 11. sar 示例
  $ sar -u 60 10 
09:42:17  %usr %sys %wio %idle 
09:43:17  1  5  0  94 
09:44:17  1  4  0  95 
09:45:17  5  3  0  92 
09:46:17  4  6  1  89   清单 11 所示的示例以 60 秒的时间间隔监视 CPU 利用率,共执行 10 次。  要想识别潜在的或实际的性能瓶颈或问题,就需要连续地监视系统,并长期捕捉数据。   UNIX sar 命令非常适合创建和维护长期的性能历史:  在所有 IBM Informix IDS 硬件平台上都可以使用 sar。   如果在运行时指定一个输出文件,就会创建一个二进制编码的文件,以后可以从这个文件生成所有 sar 报告。  time 或 timex  time 和 timex 命令可以用来对进程进行计时。time 和 timex 报告真实的时间以及用户和系统 CPU 时间。  ps  ps 命令可以用来获得当前运行的系统进程的快照信息。  清单 12. 进程状态(ps)
  $ ps -el 
S UID  PID  PPID  STIME   TTY  TIME  CMD 
T root 0   0    08:59:54  ?  0:01  sched 
S root 1   0    08:59:57  ?  0:00  /etc/init 
S root 434  1    09:03:51  ?  0:05  oninit 
S root 435  434   09:03:53  ?  0:00  oninit 
S root 445  434   09:06:02  ?  0:00  oninit 
where PID is Process Id 
   STIME is process start time 
   TIME is accumulated CPU time for process   iostat  iostat 命令可以以很高的精度度量吞吐量、利用率、队列长度、事务处理速度和服务时间。  清单 13. iostat 命令
  $ iostat -x 5 1 
                 extended device statistics 
device r/s  w/s  Kr/s  Kw/s  wait  actv  svc_t  %w  %b 
sd0  6.2  0.0  21.5  0.0  0.0  0.1  24.1  0  15 
sd1  1.8  0.0  14.3  0.0  0.0  0.1  41.6  0  7 
sd6  0.0  0.0  0.0  0.0  0.0  0.0  0.0   0  0 
sd30  0.2  0.2  25.7  0.2  0.0  0.1  22.5  0  13   vmstat  vmstat 命令提供关于进程状态、内存利用率、分页统计数据、系统活动和 CPU 利用率的信息。  清单 14. iostat 命令
  $ vmstat 5 4 
procs    memory      page       disk  faults 
r b w  swap   fre  re mf pi  po ... d0 d1 d2 in sy ... 
4 1 0  104512  1792  8  0  288 192 ... 4 6 1 23 15 ... 
2 3 0  105184  1952  4  0  96  128 ... 0 2 1 14 15 ... 
3 2 0  106688  1952  7  0  256 224 ... 4 4 12 29 21 ... 
4 2 0  104672  6240  4  0  384 32 ... 3 1 3 2 75 ... 
where w is processes swapped out page outs 
   swap is Kbytes of swap space available 
   d0 is # of disk operations/sec 
   p0 is pageouts 
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-

我要回帖

更多关于 电子商务系统运行平台 的文章

 

随机推荐