oninit
语法 oninit [-s] [-i] [-p] [-y]oninit将系统从off-line模式变为on-line模式oninit -s 将系统从off-line模式变为quiescent模式oninit -i 初始化系统oninit -p 在共享内存初始化时,不搜索,删除临时表oninit -y 对提示自动回答yesoninit -v 加入这个选项显示oninit处理过程###########################################1)$>oninit -i 这个命令将初始化磁盘空间,是很危险的参数,在你使用数据库的过程中,只能在刚安装完做一次,否则。。。2)$>oninit -p 数据库不正常宕掉时,数据库中会留有临时表,这些表会占据一定的磁盘空间,一般我们重起数据库时,数据库会自动删除临时表,但我们也可以使用该命令保留这些临时表。3)$>oninit -s 将数据库服务器启动到单用户模式,就同操作系统的单用户一样,这时你可以做一些维护工作,而不受其它想连上数据库的用户干扰。4) $>oninit 正常启动数据库。5)$>oninit -v 正常启动数据库,并且显示启动的过程信息。oninit-- 键入此命令可以获得使用帮助oninit命令用来改变系统的运行模式。其中-i选项用于初始化系统的root dbspace。注意,root-dbspace一旦被初始化,则等于整个数据库系统被初始化。如果用户希望在计算机启动时自动自动启动动态服务器系统,请在系统初启文件(在许多UNIX系统中为/etc/rc)中加入oninit命令(不加任何选项)。
onmode
语法: onmode [-k] [-m] [-s] [-u] [-y]onmode -k 执行立即shutdown,将系统变为off-line模式onmode -m 将系统从quiescent模式变为on-line模式onmode -s 执行graceful shutdownonmode -u 执行immediate shutdwononmode -y 对提示自动回答yesonmode 命令同样用于改变动态服务器的运行模式。除了上述选项外,onmode还有很多与改变系统运行模式无关的选项。
onspaces命令创建数据空间
语法: onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t]-c 创建blobspace或dbspace-b blobspace blobspace名-d dbspace dbspace名-g page size blobpages大小-m mirror 镜像设备设的全路径名和偏移量(KB)-o offset 偏移量(KB)-p pathname chunk设备的全路径名-s sizedbspace大小(KB)-t 创建临时dbspaceonspaces 命令用于创建数据空间、临时空间和存储blob数据的空间(blobspace)。键入onspaces--可以获得该命令的联机帮助。利用onstat -D或onstat -d可以看到系统中的关于数据空间的重要信息。包括:chunk的状态、空闲、每一chunk读写的次数。系统中可能包括的多个系统空间,特别当进行数据分片后,我们建议用户最好能利用命令行来创建数据空间。可以利用如下命令创建数据空间:onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000可以用如下的方式创建临时数据空间:onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000在系统中,临时数据空间非常重要,通常情况下,应将多个临时数据空间分布在独立的物理设备上。
onspaces命令删除数据空间
增加或删除chunks语法: onspaces -a -d [-m] [-o] [-p]-a spacename 为dbspace新增chunk-m pathname镜像设备的全路径名和偏移量(KB)-o offset 主设备的偏移量(KB)-p pathname chunk设备的全路径名-s sizechunk大小-d spacename 删除chunk-o offset chunk设备的偏移量(KB)onspaces不仅能创建数据空间还能删除数据空间、临时数据空间或存储blob数据的空间。在删除数据空间时,必须首先保证它是无用的,即该数据空间上无数据库或表。如需删除数据空间,请键入如下命令:onspaces -d dbspace_name /blobspace_name数据空间最初由一个chunk(first chunk)构成,一旦其空间用尽,用户必须追加chunk为了提高系统性能,用户在为数据空间分配chunk时需要计算以保证它的大小能适应未来的需要,否则在追加chunk的时候,它与先前的chunk在物理上不一定相邻,导致增加读取数据的时间。关于如何计算空间需求将在以后章节中阐述。利用onspaces命令可以对数据空间增加或者删除chunk,除此之外,利用该命令还可以完成如下任务:启动镜像、中止镜像或改变chunk的状态。例如可以用如下命令为数据空间增加chunk:onspaces -a -d datadbs1 -0 60002 -p /dev/rrvol3 -s 60000再如可以用如下方式从数据空间中删除chunk:onspaces -d datadbs1 -o 60002 -p /dev/rrvol3 -s 60000
onparams 命令
语法:onparams -a -d -p [-d] [-s] [-l]-a 新增逻辑日志-d dbspace 指定日志存放的dbspace-s size 新增逻辑日志的大小(KB)-d 删除逻辑日志-l logid 指定删除一个逻辑日志-p 改变物理日志-d dbspace 新物理日志存放的dbspace名-s size物理日志大小(KB)系统在初始化时自动地在root dbspace中创建逻辑日志和物理日志。在DBMS系统中,尤其在OLTP环境下,数据库的操作非常频繁,日志中必须记录大量的信息,所以用户最好能将多个日志文件分布在不同的设备上。有一种非常简单的方法:即按所需大小创建逻辑日志,同时创建一个较小的物理日志,系统初始化完毕后,再将物理日志移至其它设备。关于如何确定所需的物理日志的大小,将在以后的章节详述。 利用onstat -l命令可以看出系统中所有新增的逻辑日志被标识为A。这些逻辑日志只有在系统进行归档后才会真正被使用。为了激活这些逻辑日志有一种简单的方法:执行一次"伪"归档。具体步骤如下:将参数TAPEDEV设置为/dev/null然后运行一次ontape -s。也可以执行onbar -F命令。由于伪归档并不真正归档系统信息,所以千万要适时地对系统进行真正的归档操作。只有在逻辑日志真正无用时才能将其删除。利用onstat -l 可以看出所有的空闲日志被标记为F。如果逻辑日志中包含事务回滚或快速恢复所需的信息,该逻辑日志是不能被删除的。利用onstat -l命令可以看出接受当前事务的日志被标记为C。如果逻辑日志包括最后一个检查点记录,它也是不能被删除的,只有当检查点记录被写入下一个日志忠并且上一个日志被备份后,该日志才能被删除。利用onstat -l命令可以看出包含最后一个检查点记录的日志被标记为L。用户可以利用onmode -c命令强制写检查点记录直至最后一个检查点记录被写入所要求的日志为止。
onstat 工具
显示动态服务器共享内存中的信息涉及少量磁盘I/O操作将对系统性能的影响极小提供关于系统有价值得信息命令行交互式监控系统在本章中将讲解onstat 的各种重要选项,请熟悉它们的使用onstat 命令是一种非常有用的系统实时监控工具。该命令直接从共享内存的数据结构中读取信息,报告当时的系统状况。通常onstat 命令不会进行磁盘I/O操作,也不会对系统资源加锁,所以它对系统性能的影响减少到最小。简言之,onstat是informix提供的一种交互式的系统监控工具。
onstat 的一些常用选项:onstat -- 列出所有选项onstat -i 设置进入交互模式onstat - 显示运行模式和数据库引擎状态onstat -g sub_option 运行多线索选项onstat -r <value> 每隔<value>秒后重复选项onstat -g act 显示系统中所有的活动线索onstat -g ath -r 2 每隔两秒显示系统中所有的活动的线索系统监控界面sysmaster数据库在系统初始化时,自动创建数据库中包括指向系统共享内存结构数据字典信息,提供瞬时的系统性能和状态信息,提供SQL界面了解数据字典信息,允许管理员将系统管理工作自动化用于执行重复性的监控任务系统监控界面(system Monitoring Interface --SMI)是一种基于SQL的系统工具,用户通过SMI可以非常方便地获取系统信息。系统在初始化时,自动地在root dbapace创建sysmaster系统数据库。每一系统包括一个sysmaster数据库,该数据库中的大部分表为虚表,是指向共享内存中数据结构的指针。利用SMI可以自动监控系统,特别是在执行重复任务时。sysmaster数据库是只读的,即不允许对其进行INSERT UPDATE,或DELETE操作。所有用户都拥有对该数据库的查询权限。在系统初始化后,用户一定要注意检查sysmaster数据库是否建立成功。创建sysmaster数据库的信息都保存在消息日志文件中(online.log)请注意由于所有的DDL语句都将被记录在日志中,所以一定要在日志文件中留出足够的空间以保证创建sysmaster所需。sysmaster数据库模式记录在$INFORMIXDIR/etc/sysmaster.sql文件中。
oncheck 命令
检查动态服务器磁盘上的数据结构定位并修补损坏的索引和数据,有磁盘I/O操作一些操作在处理时将在表上加锁oncheck命令用于修复磁盘上损坏的索引和数据页,该命令也可用于检查并打印系统的数据结构。在使用oncheck时一定要当心,因为改命令的某些选项会对表加共享锁,例如:oncheck -pt为防止对系统的损坏,系统会对所有共享内存中的数据进行一次一致性检查。一旦发现数据页出现一致性错误或发现索引错误,系统将把问题和可能的解决方案(利用oncheck)写入消息日志文件,并返回isam错误代码105。如果发现一致性错误信息,用户应该立即关闭系统并按消息日志文件中的提示运行oncheck。如果oncheck运行失败,则应尝试卸出表再重新装入;如果是索引得问题,则应先删除索引再重建之。如果所有这些步骤都失败了,只有根据原有的系统归档备份来恢复系统。下面的命令可以提供extend信息:oncheck -pe
dbexport
dbexport <database> [-X] [-c] [-q] [-d] [-ss][{ -o <dir> | -t <tapedev> -b <blksz> -s <tapesz> [-f <sql-command-file>] }]NOTE: arguments to dbexport are order independent.参数详解: -X 如果某个字符串字段中包含二进制数据,加上该参数后,dbexport将重新组织这些数据。 -c 除非很严重的错误dbexport才中断,这些错误如下: 不能打开你指定的磁带设备;不能写磁带设备或文件;不正确的命令行参数;不能打开数据库或没有连接数据库的权限; -q 不用将导出过程输出到屏幕上 -d 让dbexport只导出BLOB字段的描述符,而不导出BLOB数据 -ss 能够生成更详细的信息,比如: 初始和附加extent的尺寸;表的分片信息;对表的锁的模式(行锁或页锁);表所在的dbspace或BLOB数据所在的space; -o <dir> 可以将数据库导入到你指定的目录下 -t <tapedev> -b <blksz> -s <tapesz> 将数据导入到磁带 -f <sql-command-file> dbexport在导出数据的同时会产生一个DDL的文件,你可以指定一个绝对路径的文件 例: 1) 将数据库stores导出到当前目录下$>dbexport stores 2) 将数据库stores导出到当前目录下,不将过程输出到屏幕,并且忽略小错$>dbexport stores -q -c3) 将数据库stores导出到指定目录下$>dbexport stores -q -c -o /tmp4)将数据库stores导出到磁带上$>dbexport stores -t /dev/tape -b 2048 -s 2000000 -f /tmp 5)将数据库stores导出前目录下,并且加上额外的信息$>dbexport stores -ss
ontape
usage:{ -a |-c |-l |-p |-r [-D DBspace_list] |-s [-L archive_level] [-A database_list] [-B database_list] [-N database_list] [-U database_list] }-a Automatic backup of logical logs-c Continuous backup of logical logs-l Logical restore-p Physical restore for HDR-r Full restore DBspaces/BLOBspaces as listed-s Archive full system-A set the following database(s) to ansi logging-B set the following database(s) to buffered logging-N set the following database(s) to no logging-U set the following database(s) to unbuffered logging与该工具有关的几个参数,在$ONCONFIG文件中:。。。# System Archive Tape DeviceTAPEDEV /dev/tapedev # Tape device pathTAPEBLK 16 # Tape block size (Kbytes)TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)# Log Archive Tape DeviceLTAPEDEV /dev/tapedev # Log tape device pathLTAPEBLK 16 # Log tape block size (Kbytes)LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)。。。其中LTAPEDEV为备份逻辑日志的磁带设备,TAPEDEV为零级备份的设备。它们也可以指向同一个设备名。例:1)零级(一级或二级)备份$>ontape -s$>ontape -s -L 0$>ontape -s -L 1$>ontape -s -L 22)逻辑日志备份$>ontape -a3)连续逻辑日志备份(日志文件满一个备份一个,你可以插盘磁带到磁带机上,让IDS自动备份)$>ontape -c4)备份恢复(对应零级备份或一级备份或二级备份)$>ontape -r 5)备份恢复几个DBSPACE(一定要存在逻辑日志备份,否则物理恢复完后,还是不能用)$>ontape -r -D dbs1 dbs2 。。。6)配置HDR时使用的物理恢复$>ontape -p7)修改数据库日志模式$>ontape -s -B db_name 修改为buffer_log$>ontape -s -U db_name 修改为unbuffer_log$>ontape -s -N db_name 修改为无日志模式$>ontape -s -A db_name 修改为ansi logging模式,从这个模式无法改到其它模式,因此一般不要用该项。另外,我们改完日志后需要做一个零级备份,这时我们可以将TAPEDEV设置为/dev/null ,然后再接着做,就可以了,但作完后一定要将该参数改回来,注意修改LTAPEDEV和TAPEDEV都不用重新启动数据库,改完存盘就能用了。如果我们不想要逻辑日志备份,我们可以将LTAPEDEV设为/dev/null ,那么逻辑日志会满一个自动备份一个,不用我们去管理了。