Informix数据库培训教材(上)
第九章 informix_online 动态服务器数据移动
Informix的数据移动工具主要有下面几种:
卸载(unload): (dbexport、onunload)
加载(load): (dbimport,onload,dbload)
一、 dbexport
将整个数据库的数据卸载为ascii 形式的文件 语法形式:
dbexport [--c] [--q] [--d] --o 目录 数据库存[--v]
dbexport [--c] [--q] [--d] --t 磁带设备名 --b 块大小 --s 磁带大小 数据库名 --
dbexport [--cqd] --t 磁带设备名 --b 块大小 --s 磁带大小 --f 文件名 数据库名 --ss
其中: --c : 跳过其中的小I/O错误 --q : 屏蔽回显的错误信息 --d :卸载 blob 数据 --v :产生版本信息
--ss:同时生成日志模式、表的初始 extent大小、表的锁模式等。
常用格式举例:
1)、dbexport --o /mnt stores 7
2) 、 dbexport --c –q --t /dev/rmt0 --b 16 --s 24000 stores7
3) 、 dbexport --c --t /dev/rmt0 --b 16 --s 24000 --f /tmp/xx.sql stores7 --ss 将数据库卸载至磁带,并将模式文件卸载为/tmp/xx.sql。
注意: A、下载的数据库必须存在,且用户对其可读;
B、指定的目录必须存在,且用户对其可写;
C、卸载之后,在卸载指定目录或设备产生一个存放卸载信息的子目录,目录名为数据库名加上后缀exp。此目录下将产生数据库名加sql后缀的文件存放模式文件,表名加unl后缀的文件存放每个表的数据。
二、dbimport
将卸载下来的数据加载到数据空间中
31
Informix数据库培训教材(上)
语法形式:
dbimport [--c] [--q] --I [--d dbspace 名] 数据库名
dbimport [--c] [--q] --t 磁带设备 --b 块大小 --s 磁带大小 [--f 文件名] [--d dbspace 名] 数据库名
常用格式举例:
1)、dbimport --i/mnt stores7
2) 、 dbimport --c --I /app/bankstar/define --l buffered single
3) 、 dbimport --c --q --d dbspace2 --t /dev/rmt0 --b 16 --s 24000 stores7
A 、当前数据库空间中不存在与 databasename 同名的数据库;
B、环境污染变量必须设置正确,主要有:
DBDATE、INFORMIXDIR、PATH等。
三、dbload:
用命令文件装入数据
语法形式:
dbload [--r] --d 数据库名 --c 命令文件 [--行数] --l 错误日志文件:
dbload --s 输入结晶文件名
参数项: --c 指定dbload 命令文件的文件名或路径名
--d 指定接收数据的数据库名
--l 指定错误日志文件的文件名或路径名
--r 在装入数据库期间允许其他用户修改表中数据
--s 检查命令文件中语句的语法
dbload 实用程序的功能是将一至多个 ASCII文件中的数据传送到一至多个已有的表中。 使用dbload之前应首先创建ASCII命令文件,该命令文件命名输入数据的文件盒接收数据 的表并将一至多个输入文件的字段映射到数据库中一至多个表
的列上。命令文件的内容只包括FILE语句盒INSERT语句。每条FILE语句命名一个输入数据
文件,并定义该输入文件要插入表中的数据字段。每条INSTERT语句命名一张接收数据库
32
Informix数据库培训教材(上)
表,并定义dbload如何将FILE语句中描述的数据插入到表的列中。
FILE 语句在命令文件中的两种形式:
1.分隔符形式
语法:FILE 文件名 DELIMITER “字段分隔符” 数据行字段数
例: FILE stock.unl DELIMITER "︱"6;
INSERT INTO stock;
2.字符- 位置形式
语法:FILE filename ([fielden start-end [:start-end] [null=null string]])
参数项:
filename 文件名
fileden 数据字段名
start 数据行中某个字段的起始安符位置
-end 以连字符开头,数据行中字段结束字符位置
五、 onunload
以页单位传送二进制数据
onunload 实用程序的功能是将数据库或表写表磁带上,但不能写到一个文件中。该程序采用二进制形式,以磁盘页为单位卸载数据。以这种方式卸载的数据效率高于有dbexport卸下的数据。
读由 onunload实用程序创建的磁带只能使用onload实用程序,接收数据的机器盒创建磁带
的机器必须具有相同的页面大小。
语法形式:
onunload [指定磁带参数] 数据库名
onunload [指定磁带参数] 属主.名表
onunload 指定磁带参数:--l --b 块大小 --s 磁带大小 --t 磁带设备
参数项: --l 指示onunload 从逻辑日志备份参数中分别读取磁带设备、块大小、磁 带大小、磁带大小的值。
33
Informix数据库培训教材(上)
--d 指定磁带设备块大小(以KB)为单位
--s 指定磁带所能存储的数据量
--t 命名安装有输入磁带的磁带设备路径名
如果不指定磁带参数,则onunload 缺省为档案磁带参数。
只有具有数据库DBA特权的用户才可以卸下新数据库或表。若不能获得排他锁则返回出错信息。
五、onload
创建数据库或表
onload 实用程序在指定的dbspace中创建数据库或表,并从输入磁带装入数据,该输入磁带由onunload创建。
语法形式:
onload [指定磁带参数] [创建任选项] 数据库名
onload [指定磁带参数] [创建任选项] 属主.表名
onload 指定磁带参数: --l --b 块大小 --s 磁带大小 --t 磁带设备 参数选项与onunload实用程序相同
onload 创建任选项 --d dbspace --I 原有索引 新索引
参数项: --d dbspace 指定数据库或表的dbspace
--I 原有索引 新索引 指示 onload 存储表索引时为其重新命名(命 令行中需指定表名)
数据库装入之后,运行onload的用户成为属主,而数据库(表、视图、和索引)的属主仍和作onunload 卸出到磁带上的数据库一样。
第十章 informix_online 动态服务器监控命令
34
Informix数据库培训教材(上)
监控ONLINE 系统启动情况的工具主要有以下三类:
●系统监控接口(SIM)
●onstat
●oncheck
一、 系统监控接口(SIM):
系统监控接口(System Monitoring Intetface) ●数据库中包括指向系统共享内存结构数据字典信息 ●提供时的系统性能和状态信息 ●提供sql界面了解数据字典信息 ●用于执行重复性监控任务
系统监控接口是一种基于SQL界面的系统工具,我们通过SQL命令可以非常方便的通过操作online 的内部数据库sysmaster中的内部表/结构,来获取有关的维护信息。Sysmaster 是在online 初始化时,系统自动创建的,每一个系统包括一个Sysmaster 数据库。该数据库中大部分是虚表,是指向共享内存中数据结构的指针。
注:使用SMI有如下限制:
●不能对SMI中的表加锁或使用隔离级别。
●不允许使用insert,delete,update等语句(只读)
●不能使用dbschema,dbexport等命令
●使用selete rowid语句将会产生不可预料的结果
主在的SMI表有:
sysdatabases:online中的数据库信息 systabnames:某数据库中所有表的信息 syslogs:逻辑日志信息 sysdbspaces:数据库信息 syschunks,syslocks等
例1:显示处于脱机(offline) 状态的chunk的序号和所在数据库空间
select chknum.,dbsnum from syschunks where is _offline=l or misline-! 例2:显示满chunk的信息
select chknum, dbsnum from syschunkd where nfree=0
35