informix数据库导入导出

合集下载

INFORMIX的dbexport和dbimport使用示例说明

INFORMIX的dbexport和dbimport使用示例说明

INFORMIX的dbexport和dbimport使用示例说明INFORMIX-IDS数据库进行迁移中,我们在进行数据级别的迁移时,采用dbexport,dbimport来完成。

dbexport导出数据库中所有对象的模式脚本和表数据文件,该模式脚本中包含有表等的创建脚本,同时包含了导出的表的对于数据文件的信息。

dbimport根据模式脚本进行导入,导入过程首先根据模式脚本创建对象,如何导入相应的数据,导入数据过程类似load过程。

如要加速导入,可以首先将数据库的日志模式选择为nolog模式。

导入完成后进行日志模式的改变即可。

以下说明如何使用dbexport和dbimport进行IDS的数据库的数据级别的迁移。

1、导出,首先创建导出一个目录,示例中在/db/目录下创建sunguorong的一个文件夹dbexport dbname -c -ss -o /db/sunguorong2、导出完成后,在sunguorong目录下生成一个dbname.exp的目录,找到该目录下的dbname.sql模式脚本文件,需要利用工具(如sqleditor)来验证一下脚本的语法的正确性(导出的脚本可能存在语法上的错误),需要加以修改纠正。

3、导入,在导入之前,需要按照存储情况先划分好DBSPACEdbimport dbname -i /db/sunguorong dbname -c -l buffered -ddefault_dbspacename4、导入完成后,进行数据库级别的统计更新update statistics ;【补充资料(一)】dbexportdbexport实用程序将数据库卸出到ASCII文件或磁带。

dbimport实用程序使用dbexport产生的模式文件和数据重建数据库。

用户可以通过编辑模式文件来修改由dbimport生成的数据库模式。

dbexport实用程序的语法:-c指示如果没有致命错误,则输出全部信息。

Informix导数总结

Informix导数总结

Infoxmix命令语法总结:1)导出数据库中所有的表结构到文件db.sql$>dbschema -d your_database -t all db.sql2)导出数据库中所有的存储过程到文件db.sql$>dbschema -d your_database -f all db.sql3)导出数据库中的所有对象(包含表,存储过程,触发器。

)到文件db.sql $>dbschema -d your_database db.sql4)导出数据库中一个表的结构到文件db.sql$>dbschema -d your_database_name -t your_table_name db.sql5)导出一个存储过程定义到文件db.sql$>dbschema -d your_database_name -f your_procedure_name db.sql6)如果导出更多的表的信息(EXTENT...)$>dbschema -d your_database_name -ss db.sql7)导出数据库中对用户或角色的授权信息$>dbschema -d your_database_name -p all$>dbschema -d your_database_name -r all8)导出数据库中的同义词$>dbschema -d your_database_name -s all9)导出数据库中的Sequence。

$>dbschema -d payment -seq all cre_seq.sql10)导出表中所有数据$>unload to xxx.txt select * from tablename;11)导入数据到表中$>load from xxx.txt insert into tablename;。

informix命令使用方法

informix命令使用方法
onmode -y 对提示自动回答yes
onmode -ky offline
onmode -s graceful shutdown-->quiescent(联机到静态,让用户处理完成)
onmode -u immediate shutdown-->quiescent(联机到静态,所有用户立即终止)
根据上例中输出结果创建数据库。
3. dbload
将ASCII 文件中的数据传送到数据库中。
4. dbschema
将数据库的模式输出到文件中,可用于重建数据库或表。
5. onlog
显示系统逻辑日志的内容。常用选项有:
onlog -l 显示已经备份到磁带上的日志信息
6. 在x-windows下可以运行的程序
a) 改变文件db_name.exp/db_name.sql为db_name.exp/new_db_name.sql,“.sql”不变 ;
$ cd db_name.exp
$ mv db_name.sql new_db_name.sql
b) 改变目录db_name.exp为new_db_name.exp,“.exp”不变;
onmode -m quiescent--->online
onmode -z sid 删除某session
onmode -l 将当前正在使用的逻辑日志下移
onmode -c 强制执行检查点操作 即onmonitor->force ckpt
onmode 命令同样用于改变动态服务器的运行模式。除了上述选项外,onmode还有很多与改变系统运行模式无关的选项。
$ mv db_name.exp new_db_name.exp

informix迁移.

informix迁移.

Informix迁移工具1. 前沿总体上说,数据库迁移主要分为二进制迁移和文本迁移2. 二进制迁移二进制迁移使用的工具是ontape、on-bar、onunload等。

2.1 迁移环境源数据库版本:IBM Informix Dynamic Server Version 11.70.FC3DE目标数据库版本:IBM Informix Dynamic Server Version 11.70.FC3DE数据库名:test表名:testtable表中记录:1972124条数据2.2 迁移步骤设置备份路径✓将onconfig文件中的TAPEDEV和LTAPEDEV的路径分别设置为/home/Informix/tapedev、/home/Informix/ltapedev在源服务器上制作最终的0级备份✓ontape –s –L 0使源数据库服务器脱机✓onmode –ky将备份文件、onconfig、sqlhost以及环境变量的setenv1170文件均拷贝到目标服务器的相应位置(注意更改sqlhost文件中的ip地址栏位)在目标服务器上安装IDS软件在目标服务器上的相应位置建立与源数据库服务器相同的chunk文件并更改权限在目标服务器上使用ontape –r命令恢复数据恢复完毕之后,目标服务器自动启动到静默模式,更改使其进入联机模式 制作目标服务器的最初0级备份3. 文本迁移在数据库之间迁移,即将数据移动到不同操作系统上的数据库服务器中3.1 文本迁移中移动数据可以使用的传输工具和实用程序-dbexport和dbimport-onload和onunload-load和unload-dbload-external table-high performance loader(HPL)这些工具有各自的优点和限制。

综合考虑所有因素,选择适合环境的工具或实用程序3.2 迁移环境源数据库版本:IBM Informix Dynamic Server Version 11.50UC5目标数据库版本:IBM Informix Dynamic Server Version 11.70UC5数据库名:test表名:testtable表中记录:1972124条数据3.2 文本迁移的步骤使用on-bar on-archive或ontape来制作最终的0级备份(可选)请选择以下某一迁移实用程序集来卸载数据库:Dbexport和dbimportUnload、dbschema和loadUnload、dbschema和dbload安装并配置目标数据库服务器。

informix数据库常用备份方法

informix数据库常用备份方法

informix数据库常用备份方法informix数据库常用备份方法数据库导出dbexport和导入dbimport说明:dbexport用户导出和备份数据库,dbimport用于恢复dbexport备份的数据库;注意:dbimport导入数据库是,会创建数据库,所以不能存在与要导入重名的数据库。

利用dbexport 备份数据库时有个缺点就是要把所有和数据库操作相关的应用都要停止,而0级备份则不需要停应用。

假如我的数据库为:test_dbdbexport用法:[informix] /opt/informix/db_back>dbexport --Invalid option list.Usage:dbexport <database> [-X] [-c] [-q] [-d] [-ss [-si]][{ -o <dir> | -t <tapedev> -b <blksz> -s <tapesz> [-f <sql-command-file>] }]NOTE: arguments to dbexport are order independent.Dbexport执行后,产生一个文件dbexport.out和一个文件夹test_db.exp[里面是unl文件]如果想备份数据库以及其中的数据:[informix] /opt/informix /db_back>dbexport test_db[informix] /opt/informix /db_back>lsdbexport.out test_db.exp/dbimport用法:[informix] /opt/informix >dbimport --Invalid option list.Usage:dbimport <database> [-X] [-c] [-q] [-d <dbspace>][-l [{ buffered | <log-file> }] [-ansi]][{ -i <dir> | -t <tapedev> [ -b <blksz> -s <tapesz> ] [-f <script-file>] }]NOTE: <log-file> must be a complete patharguments to dbimport are order independent执行下面命令恢复数据库:[informix] /opt/informix/db_back>dbimport test_db -d workdbs -l bufferedFAQ1:dbimport导入数据失败错误现象如果导入的时候直接执行dbimport test_db这样的话,从建数据库后,就会出现如下错误(原因是直接恢复后,数据库日志级别不是buffer log这样就会出现下面的错误,利用-d指定恢复到哪个数据库空间,不指定的话,默认是rootdbs):[16:45:47]Error: Transaction begin failed.sqlca.sqlcode = -256[16:45:47]Error: Connect to database[evcscp_db@smp4_online_net]failed, sqlcode=-256或是:14:59:07,560 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=smp4//1, BranchQual=] errorCode=XA_UNKNOWN(0)org.jboss.resource.connectionmanager.JBossLocalXAException: Error trying to start local tx: ; - nested throwable: (org.jboss.resource.JBossResourceException: SQLException; - nested throwable:(java.sql.SQLException: Transactions not supported))解决方法方法1:导入数据库的时候,就直接指定日志类别-l buffered;方法2:通过ontape –s –B test_db –L 0 修改日志级别为buffer log;FAQ2:dbimport导入如果存在同名的数据库则会失败错误现象[informix] /opt/informix /db_back_01>dbimport test_db*** create database330 - Cannot create or rename database.100 - ISAM error: duplicate value for a record with unique key.解决方法利用informix用户登录删除该重名数据库FAQ3:dbexport导出数据库失败错误现象[informix] /opt/informix /db_back_01>dbexport test_db-425 - Database is currently opened by another user.-107 - ISAM error: record is locked.解决方法:停止所有和test_db数据库相关的应用,如果还出现上面的问题,就使用informix用户登录,查看连接该数据库的session,然后强制停止。

导出informix数据库表结构脚本

导出informix数据库表结构脚本
导出完成 将提示 dbexport completed! 导出过程可能有点慢(等待)
导出完成后将在 &lt;保存的目录&gt; 下产生一个文件夹 db_das.exp(导出的数据库名.exp)
导入数据库
输入:dbimport -c -i d:\informix db_das
select * from systables
where tabid &gt; 99
// tabname 存放表的名字
// tabtype 存放表的类型 T=表,E=外部表,V=视图......
//SQL参考指南 nrows 表中的行数 ncols 表中的列数
//*****************************************************************************
7)导出数据库中对用户或角色的授权信息$&gt;;dbschema -d your_database_name
7)导出数据库中对用户或角色的授权信息
$&gt;dbschema -d your_database_name -p all
$&gt;dbschema -d your_database_name -r all
onstat -d 看一看你的数据库空间是怎么分配的
如果你在做dbimport的时候没有指定参数,那么会把整个数据库建在rootdbs上。
如果数据库空间规划得比较细的话,应该有专用于装数据的dbspace。
//*****************************************************************************

数据库导入导出方法

数据库导入导出方法

1、在数据库新建一个表
1)在左边对象里选中“表”。

点上面“新建”选项。

2)出现一个对话框。

选“导入表”。

点“确定”。

3)出现对话框,选你要导入有Excel表。

4)导入后会出现“导入数据表向导”。

(1)选中“显示工作表”点“下一步”。

(2)选中“第一行包含列标题”点“下一步”。

(3)选中“新表中”点“下一步”。

(4)“下一步”。

(5)选中“不要主键”,点“下一步”
(6)“导入到表:”改表名,点完成。

5)左边“对象”选中“报表”,在右边点“”。

(1)在“表/查询”下选要导出的表名。

将下面“可用字段”里的选项。

按导出顺序依次选入“选定的字段”里,点“下一步”。

(2)点“下一步”,到报表布局方式,在“布局里”选“纵栏表”,方向选“纵向”。

点下一步。

(3)点“下一步”,选“修改报表设计”,点完成。

6)完成创建报表后会弹出报表修改的对话框。

(1)先删除页眉页脚。

(在表格处单击鼠标右键,点页眉页脚就可以删除。


(2)只留“主体”。

将主体中的字段调整到导出字段的大小,关闭报表保存。

7)选中报表,在工具栏里找到导出选择用WDRD导出。

(2)导出WORD后保存。

Informix数据库备份详解

Informix数据库备份详解

Informix数据库1、备份表结构Dbschema -d dbname -t all -ss(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(9)导出数据库中数据unload to *.txt select * from table_name where ...Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。

Informix-Online数据库常用的三种数据备份方式:a. 使用ontape工具进行数据备份b. 使用dbexport命令进行数据备份c. 使用Onunload命令进行数据备份一.目的与优缺点「数据库系统」可说是一个企业的心脏,许多承先启后的宝贵数据,存放在数据库中。

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

所谓中间库,就是说把从各个业务系统卸载下来的数据(通常是文本),装载到这个中间库Informix中,然后再然过ETL过程操作,最后装载到数据仓库中。

之所以要采用一个中间库,主要是为了使数据容易维护,因为从各业务系统卸载下来的数据(通常是文本),文本文件是比较难于维护的。

还有解决一些乱码问题,Informix这里可以把乱码的数据去除掉。

最后一个就是解决文本文件取定长数据的问题,很容易出错,不过这个具体我还是不是很明白。

其实也可以直接使用文本文件,就是说不经过这个中间库,然后需要解决上面说的三个问题。

Informix数据导出,也叫做卸数:unload to fileName.txt select * from tableName
语法比较简单,unload to 后面接导出的文本文件名称,select后面接你所要导出的数据的条件。

Informix数据导入,也叫做装数:load fileName.txt insert into tableName
load后面接需要导入的文本文件名称,后面insert into后面接数据表名。

备份数据库结构
dbschema -d database > database.sql
-d表示导出整个数据库的表结构,
备份表结构
dbschema -t tablename >tablename.sql
dbschema –d database –t tablename > tablename.txt
-t表示导出某一个数据表的表结构。

informix数据库表的导入和导出
使用dbaccess工具,选择相应数据库,然后执行SQL语句
导出:
unload to table1.txt select * from table1;
命令含义为:将table1表格中的数据导入到table1.txt中,此处文件名可以带路径,否则就会被导出到当前目录。

导入:
load from table1.txt insert into table1;
命令含义:
将当前目录下的table1.txt中的内容插入到表格table1中。

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

例如导出三个文件table1.txt,table2.txt,table3.txt
可以编写下面的命令文件,不妨命名为load.txt
内容如下
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(随便输入的日志名字) 即可以将三个文件对应的数据导入到指定的表格中
Informix-dbexport用法
Usage:
dbexport <database> [-X] [-c] [-q] [-d] [-ss]
[{ -o <dir> | -t <tapedev> -b <blksz> -s <tapesz> [-f <sql-command-file>] }] NOTE: arguments to dbexport are order independent.
参数详解:
-X 如果某个字符串字段中包含二进制数据,加上该参数后,dbexport将重新组织这些数据。

-c 除非很严重的错误dbexport才中断,这些错误如下:
不能打开你指定的磁带设备;
不能写磁带设备或文件;
不正确的命令行参数;
不能打开数据库或没有连接数据库的权限;
-q 不用将导出过程输出到屏幕上
-d 让dbexport只导出BLOB字段的描述符,而不导出BLOB数据
-ss 能够生成更详细的信息,比如:
初始和附加extent的尺寸;
表的分片信息;
对表的锁的模式(行锁或页锁);
表所在的dbspace或BLOB数据所在的space;
-o <dir>
可以将数据库导入到你指定的目录下
-t <tapedev> -b <blksz> -s <tapesz>
将数据导入到磁带
-f <sql-command-file>
dbexport在导出数据的同时会产生一个DDL的文件,你可以指定一个绝对路径的文件
例:
1) 将数据库stores导出到当前目录下
$>dbexport stores
2) 将数据库stores导出到当前目录下,不将过程输出到屏幕,并且忽略小错$>dbexport stores -q -c
3) 将数据库stores导出到指定目录下
$>dbexport stores -q -c -o /tmp
4)将数据库stores导出到磁带上
$>dbexport stores -t /dev/tape -b 2048 -s 2000000 -f /tmp
5)将数据库stores导出前目录下,并且加上额外的信息
$>dbexport stores -ss。

相关文档
最新文档