informix数据库操作实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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来解决这个问题