INFORMIX数据库常用命令

INFORMIX数据库常用命令

一、onstat命令集 1、onstat -

说明:查看数据库当前的状态 用法:onstat -

2、onstat -c

说明:查看数据库的配置文件 用法:onstat -c

3、onstat -d

说明:查看数据库空间的使用情况 用法:onstat -d

4、onstat -l

说明:查看数据库逻辑日志的备份情况及逻辑日志的状态 用法:onstat -l

5、onstat -m

说明:查看最近的数据库日志信息 用法:onstat -m

6、onstat -g sql

说明:查看数据库的所有客户端的连接情况 用法:onstat -g sql

7、onstat -g sql <sid>

说明:查看一个指定的客户端连接执行的SQL语句 用法:onstat -g sql <sid>

二、oncheck命令集

1、oncheck -cc [数据库名]

说明:检查一个或所有的数据库的系统目录 用法:oncheck -cc [数据库名]

2、oncheck -cD 数据库名[:表名]

说明:检查一个数据库或数据库中的一个表的数据 用法:oncheck -cD 数据库名[:表名]

3、oncheck -cI 数据库名[:表名]

说明:检查一个数据库或数据库中的一个表的索引 用法:oncheck -cI 数据库名[:表名]

4、oncheck -pt 数据库名:表名

说明:检查一个表所占用的空间大小(EXTENT数) 用法:oncheck -pt 数据库名:表名

三、备份相关命令

1、onbar

说明:备份数据库的数据或日志到磁带库中 用法:

全备份: onbar -b -w -L 0

备份逻辑日志:onbar -b -l

2、dbschema

说明:生成数据库的库表结构 用法:

整个数据库:dbschema -d 数据库名 -ss 脚本文件名

一个数据库中的表:dbschema -d 数据库名 -t 表名 -ss 脚本文件名

3、dbexport

说明:手工备份一个数据库到磁盘中 用法:dbexport -ss 数据库名

四、其他命令

1、oninit

说明:启动一个数据库服务器 用法:oninit

2、onmode -ky

说明:停止一个数据库服务器 用法:onmode -ky

3、onmode -z <sid>

说明:停止一个数据库的客户端连接(SESSION) 用法:onmode -z <sid>

查看数据库实例名:

dbaccess,然后选择database,在选择select,数据库名@符号后面的即为数据库实例名

新建数据库:

1、使用dbaccess进入informix交互环境

2、选择Database,回车

3、选择 Create,回车

4、输入数据库名:uniacctr,回车

5、选择 Dbspace(表空间) ,回车

6、选择跟局数据数据库bureaudb一样的表空间,回车

7、选择 Log ,回车

8、选择 Log,回车(选择日志模式,其他不支持事务)

9、选择 Exit,回车

10、选择 Create-new-database ,回车。

此时数据库应该已经建立。

查看某个数据库的表空间:

1、使用dbaccess进入informix交互环境

2、选择Database,回车

3、选择 Select,回车

4、选择局数据数据库bureaudb,回车

5、选择Info,回车

6、选择dBSpace,回车

图中rootdbs位置显示的即是表空间

关键字: dbschema工具:

1)导出数据库中所有的表结构到文件db.sql

$>dbschema -d your_database -t all db.sql

2)导出数据库中所有的存储过程到文件db.sql

$>dbschema -d your_database -f all db.sql

3)导出数据库中的所有对象(包含表,存储过程,触发器。。。)到文件db.sql

$>dbschema -d your_database db.sql

4)导出数据库中一个表的结构到文件db.sql

$>dbschema -d your_database_name -t your_table_name db.sql

5)导出一个存储过程定义到文件db.sql

$>dbschema -d your_database_name -f your_procedure_name db.sql

6)如果导出更多的表的信息(EXTENT...)

$>dbschema -d your_database_name -ss db.sql

7)导出数据库中对用户或角色的授权信息

$>dbschema -d your_database_name -p all

$>dbschema -d your_database_name -r all

8)导出数据库中的同义词

$>dbschema -d your_database_name -s all

导出数据库表结构:

dbschema -d database > database.sql

dbschema -t tablename >tablename.sql

-d表示导出整个数据库的表结构,-t表示导出某一个数据表的表结构。

数据库及数据表导入导出操作:

数据库的导入:

1. 在dbaccess工具环境环境下建立数据库(如:gdxy)

注意:此步操作一定不要直接在dbvis工具上建立,否则后期的脚步总是运行报错,因为在命令行环境下建的数据库里面会有设置数据库的临时空间和log文件。

2.开始导入建表的sql脚本(如:createtab.sql

在dbaccess工具环境下直接输入 dbaccess gdxy < createtab.sql

3.导入表中的数据(通常导出时为txt格式)

一:对于单个表格,可以采用在dbaccess工具环境直接输入:load from table1.txt insert into table1;

二:对于使用unload导出的多个文件,可以通过编写命令文件的方式,批量的插入到数据库中。

法一:

第一步:

内容如下

FILE table1.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table1;

FILE table2.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table2;

FILE table3.txt DELIMITER '|' 3;(此处的数字为表各中对应的字段数目)

INSERT INTO table3;

生成好了这个命令文件,则可以通过输入如下的dbload命令批量的导入三个表格数据:

首先进入到导入文件所在的目录,例如 c:\bak

dbload -d test(数据库名字) -c c:\bak\load.txt -l aaa(随便输入的日志名字)

即可以将三个文件对应的数据导入到指定的表格中

法二:

第一步:编写导入脚步(load.sql)

load from table1.txt DELIMITER '|' INSERT INTO table1;

load from table2.txt DELIMITER '|' INSERT INTO table2;

第二步:

在dbaccess工具环境下直接输入 dbaccess gdxy < load.sql、

二、数据库的导出

1、单个表格导出:unload to fileName.txt select * from tableName

三、导入导出操作

备份表结构

dbschema -d database > database.sql

dbschema -t tablename -d >tablename.sql

-d表示导出整个数据库的表结构,-t表示导出某一个数据表的表结构。

导出数据库 dbexport:

dbexport在使用前必须保证该数据库未被别人打开。

在实际环境中,因为很多业务正在运行,应用程序的连接尚未断开,所以不能直接运行dbexport 。

我一般使用 onmode -ky 关闭数据库,然后再用 oninit 启动数据库,立即执行 dbexport 数据名,即可将数据导入。

假设数据库名为 test ,导出完成后,可以看见 dbexport.out 的日志文件和一个 test.exp 文件夹,这个文件夹里即包含了test 这个库的建库脚本和所有的数据文件。

导入数据库 dbimport:

导出来的数据拷贝到测试环境中,注意,如果只拷贝文件过来,dbimport 是不认识的,

我们需要建立一个刚才那样的文件夹即 test.exp ,

然后在这个子目录的上层运行 dbimport ,才能将数据导入。

命令很简单,只需执行 dbimport test 即可。

此时要保证你的数据库中没有 test 这个库,如果这个库存在,运行 dbimport 会导致失败。

倒库之后没日志文件

  运行 dbimport 后,库倒是建起来了,可是日志文件没有了。这是因为 dbexport 将会导致数据库的日志模式丢失,不用担心,我们可以用 ontape 这个命令来解决,具体步骤如下:

  a. 修改配置文件,在 $INFORMIXDIR/etc/onconfig 文件里,将 TAPEDEV 设置为 /dev/console ,然后重启数据库(我是执行onmode -ky 和 oninit 命令)

  b. 运行 ondblog buf test 这个命令意思是先打上一个标志。将数据库日志设置为 buffer 模式。

  c. 运行 ontape -s -L 0 test 即可,在转换数据库模式前,必须先做一个0级备份。

  d. 好了,重启数据库,看看数据库日志模式已经改过来了。另外,还有一个 onmonitor 命令,也是相当的有用,命令记不得,就可以用这个东西来实现。

JDBC连接informix出现的异常:Unable to load locale categories:

昨天连接时出现了这个异常:

首先连的库为中文库时才会出现这个异常,故可以判断是其unix环境的问题。

后来查了下资料,修改jdbc的URl如下:

jdbc:informix-sqli://10.203.68.151:8898/jiangqh:INFORMIXSERVER=onjz1;user=dccenter;password=sjjh151;DB_LOCALE=zh_cn.gb;CLIENT_LOCALE=zh_cn.gb;DBDATE=mdy4;

红色字为后加的。即解决了此问题

因为环境默认是英文的,所以通过修改URL来解决这个问题

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值