一、数据库状态与启停命令

命令

用途

用法示例/说明

onstat -

查看数据库当前运行状态。这是最基础的状态检查命令。

onstat -
输出状态包括:
- On-Line:联机状态,正常服务。
- shared memory not initialized:脱机状态,数据库已关闭。
- Fast Recovery:快速恢复状态(启动过程)。
- Quiescent:静止模式。

oninit

启动数据库

oninit -vy:以详细模式启动到在线模式-v verbose,-y 对所有确认回答yes)。
oninit -s:启动到静止模式(维护模式)。
oninit -j:启动到单用户模式
oninit -sy:以静默方式启动到静止模式(《实操题3-带答案.docx》)。

onmode

改变数据库运行模式或关闭数据库

onmode -m:从静止模式切换到在线模式。
onmode -s:从在线模式切换到静止模式。
onmode -j:切换到管理模式(单用户模式)。
onmode -ky正常关闭数据库-k 关闭共享内存,-y 确认)。
onmode -k:立即强制关闭(危险)。

二、数据库连接与交互命令

命令

用途

用法示例/说明

dbaccess

连接数据库并进行交互式SQL操作

dbaccess <数据库名> -:以交互模式连接指定数据库,可直接执行SQL。
dbaccess:以菜单模式启动,通过图形化菜单选择数据库和操作。

isql

测试ODBC连接

isql <数据源名称> <用户名> <密码>
示例:isql gbase username username

三、监控与诊断命令 (onstat 系列)

命令

用途

用法示例/说明

onstat -g ses

显示当前所有会话(session)信息

onstat -g ses:列出所有会话的ID、终端、进程号等。
onstat -g ses <sesid>:查看指定会话的详细信息(如当前数据库、SQL类型、隔离级别等)。

onstat -g sql

显示当前所有会话正在执行的SQL语句

onstat -g sql:查看所有会话的SQL。
onstat -g sql <sesid>:查看指定会话的SQL。

onstat -d

显示数据库表空间(dbspaces)和数据块(chunks)信息

用于查看存储空间使用情况,包括大小、剩余空间、状态等。

onstat -l

显示物理日志和逻辑日志信息

查看日志大小、使用状态(A-新增,B-已备份,C-当前使用等)。

onstat -g seg

查看数据库使用的共享内存段信息

显示共享内存段的地址、大小、所有者等。常与 ipcs -m 结合使用,计算总共享内存大小。

onstat -g cfg

查看当前数据库正在使用的配置参数值

参数来自 onconfig 配置文件。

onstat -m

查看数据库消息日志(online.log)摘要

可配合 tail 命令查看日志文件最后N行,如:onstat -m | grep online | awk '{print "tail -100 " $4}' | sh

四、数据库对象与结构操作命令

命令

用途

用法示例/说明

dbschema

导出数据库对象的结构(DDL)

dbschema -d <数据库名> -t <表名> [输出文件.sql]:导出指定表的建表语句。
dbschema -d <数据库名> -f <存储过程名> -ss:导出存储过程的脚本。

dbexport

导出整个数据库(包括所有对象和数据)

dbexport -d <数据库名>:将整个数据库导出为文本文件。

dbimport

导入由 dbexport 导出的数据库

dbimport <数据库名>:导入数据,服务器会自动创建该库。

五、数据导入导出命令(SQL语句)

命令

用途

用法示例/说明

UNLOAD TO

将表数据导出到文本文件

UNLOAD TO ‘/tmp/t1.unl’ SELECT * FROM t1;
默认以竖线 `[5](@context-ref?id=13)

LOAD FROM

从文本文件导入数据到表

LOAD FROM ‘/tmp/t1.unl’ INSERT INTO t1;
文件格式需与 UNLOAD 导出的一致。

六、表空间管理命令 (onspaces)

命令

用途

用法示例/说明

onspaces -c

创建新的DBspace(表空间)

onspaces -c -d <dbspace名> -k <页大小> -p <chunk路径> -o <偏移量> -s <大小>
-t:创建临时表空间。
-m:创建镜像chunk。

onspaces -d

删除DBspace

onspaces -d <dbspace名> -y:删除空DBspace。
onspaces -d <dbspace名> -D -y:强制删除非空DBspace(危险!)。

onspaces -a

向现有DBspace添加新的chunk(扩容)

onspaces -a <dbspace名> -p <新chunk路径> -o <偏移量> -s <大小>
-m:同时添加镜像chunk。

onspaces -m

修改DBspace的状态

onspaces -m <dbspace名> -s <状态>
状态:online(上线)、offline(下线)、temp(转换为临时)。

onspaces -l

查看DBspace信息

onspaces -l:列出所有DBspace。
onspaces -l -d <dbspace名>:查看特定DBspace的详细信息。

七、数据库备份与恢复命令 (ontape)

命令

用途

用法示例/说明

ontape -s -L 0

执行数据库0级(全量)备份

ontape -s -L 0 -t /dev/null:备份到空设备(仅用于测试或触发日志备份)。
ontape -s -L 0:备份到默认磁带设备(需先设置 TAPEDEV 参数)。

onmode -wf TAPEDEV=

临时设置备份设备路径

onmode -wf TAPEDEV=/tmp/ngzb.bak:将备份设备临时设置为文件。

八、在 dbaccess 交互模式下的常用信息查询命令

命令

用途

info tables;

显示当前数据库中的所有表。

info columns for <表名>;

显示指定表的所有字段结构。

info indexes for <表名>;

显示指定表上的索引。

database <数据库名>;

切换到另一个数据库。

select current from sysmaster:sysdual;

显示系统当前时间。

九、数据库用户权限管理命令(SQL语句)

命令

用途

用法示例

GRANT

授予用户权限

grant dba to username;
grant resource to username;
grant connect to username;

总结表:核心命令速查

操作类别

核心命令

主要用途

状态与启停

onstat -, oninit -vy, onmode -ky

检查状态、启动、关闭数据库。

连接与交互

dbaccess <dbname> -, isql

连接数据库执行SQL、测试ODBC连接。

会话监控

onstat -g ses, onstat -g sql

查看所有会话及正在执行的SQL。

存储监控

onstat -d, onstat -l

查看表空间、日志使用情况。

内存监控

onstat -g seg, onstat -g cfg

查看共享内存、当前配置参数。

结构导出

dbschema -d db -t tab

导出表或存储过程的结构。

全库备份

dbexport -d db, dbimport db

逻辑备份和恢复整个数据库。

数据操作

UNLOAD TO ..., LOAD FROM ...

表级数据的快速导出和导入。

表空间管理

onspaces -a, onspaces -l, onspaces -d

扩容、查看、删除表空间。

物理备份

ontape -s -L 0

执行数据库0级(全量)备份。

权限管理

GRANT ... TO ...

授予用户数据库权限。

注意

  1. 大部分命令需要在 informix 用户或具有相应权限的用户下执行。

  2. 数据库配置文件通常位于 $INFORMIXDIR/etc/ 目录下,如 onconfig.gbasesqlhosts.gbase

  3. 关键环境变量包括 INFORMIXDIR(安装路径)、INFORMIXSERVER(服务名)、ONCONFIG(配置文件)。