informix数据库常用操作

转载至: http://dcrpp.iteye.com/blog/714774 

根据个人工作经验的以及网上找的资料整理汇总,感谢网上网友提供的资料。

 

 

查看数据库实例名:

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来解决这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值