informix数据库操作实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查看数据库实例名:

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)导出数据库中所有的表结构到文件

$>dbschema -d your_database -t all

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

$>dbschema -d your_database -f all

3)导出数据库中的所有对象(包含表,存储过程,触发器。。。)到文件$>dbschema -d your_database

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

$>dbschema -d your_database_name -t your_table_name

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

$>dbschema -d your_database_name -f your_procedure_name

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

$>dbschema -d your_database_name -ss

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 >

dbschema -t tablename >

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

\

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

数据库的导入:

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

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

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

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

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

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

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

法一:

第一步:

[

内容如下

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

INSERT INTO table1;

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

INSERT INTO table2;

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

INSERT INTO table3;

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

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

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

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

&

法二:

第一步:编写导入脚步()

load from DELIMITER '|' INSERT INTO table1;

load from DELIMITER '|' INSERT INTO table2;

第二步:

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

二、数据库的导出

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

三、导入导出操作

备份表结构

dbschema -d database >

?

dbschema -t tablename -d >

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

导出数据库 dbexport:

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

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

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

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

导入数据库 dbimport:

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

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

然后在这个子目录的上层运行 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-;user=dccenter;password=sjjh151;DB_LOCALE=;CLIENT_LOCAL E=;DBDATE=mdy4;

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

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

相关文档
最新文档