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数据库常用命令介绍
华为产品维护资料汇编 TELLIN智能网维护资料数据库基础知识目录目录第1章 Informix数据库常用命令介绍 (1)1.1 概述 (1)1.1.1 oninit (1)1.1.2 dbexport (2)1.1.3 dbimport (4)1.1.4 dbload (5)1.1.5 dbschema (7)1.1.6 oncheck (8)1.1.7 onload (9)1.1.8 onlog (10)1.1.9 onmode (11)1.1.10 onparams (13)1.1.11 onspaces (13)1.1.12 onstat (14)1.1.13 ontape (19)1.1.14 onunload (21)第1章 Informix数据库常用命令介绍1.1 概述Informix数据库服务器提供了在shell提示符下直接执行管理任务功能的应用程序。
列出这些应用程序:表1-1提示符下直接执行管理任务功能的应用程序以下对这些应用程序逐一简要说明。
1.1.2 oninit1. 功能说明oninit 应用程序用于改变系统的运行模式。
数据库有六种工作模式,它们是:离线(off-line)不运行状态●静模式(quiescent)在此模式下,用户不能连接到数据库,但可用onstat等命令查看数据库信息●在线(on-line)数据库运行状态●只读(read-only)只能读数据库但不能写●恢复(recovery)是一种临时状态,存在于从离线模式到静模式之间●关闭(shutdown)是一种临时状态,存在于从在线模式到静模式或离线模式oninit命令将在离线(off-line)状态的数据库启动为在线(on-line)模式,并初始化共享内存(shared memory),在作初始化之前,应先设置环境变量INFORMIXSERVER,否则数据库不建立sysmaster表,必须以root或informix注册才能执行本命令,本命令不但能初始化共享内存,还能初始化磁盘空间。
INFORMIX-4GL实用手册
第一章 Informix环境变量的设定一.环境范例:变量名称变量说明DBDELIMITER指定由dbload在卸出数据文件中使用的字段定界符DBDATE指定在DB中想要使用的日期格式(Y4MD/,MDY4-)DBEDIT指定在程序员环境中想要使用的文本编辑器(vi)DBLANG指定在程序中所使用消息文件的存放目录DBMONEY指定在DB中想要使用的货币格式DBPATH指定DB与其它相应文件的搜索路径DBPRINT指定计算机的打印程序DBSRC指定程序调试阶段文件的搜索路径DBTEMP指定临时文件的存放目录INFORMIXDIR指定Informix文件的存放目录(/usr/informix)INFORMIXSERVER指定Informixr的数据库服务器名称FORMDIR指定Informix屏幕格式文件的存放路径DBNLS指定Informix传输汉字(DBNLS=2)LANG指定Informix可显示汉字(LANG=english.8859)ONCONFIG指定Informix-Online的配置文件(onconfig.life)PATH指定Informix可执行文件的搜索路径TERM指定Informix的终端类型(TERM=vt100)TERMCAP指定Informixr的终端类型文件二.环境范例:.profile (环境变量的等号前后不得为空格)stty -istrip -isig (防止用户非法中断)INFORMIXDIR=/usr/informixINFORMIXSERVER=ld420501_tcpONCONFIG=onconfig.lifePATH=$PATH:$INFORMIXDIR/bin:$HOME/bin:$HOME/form:$HOME/prg DBPATH=/u/cbps/form:/u/cbps/binFORMDIR=/u/cbps/formDBDATE=Y4MD/LANG=english_us.8859DBLANG=english_us.8859DBNLS=2TERMCAP=/usr/informix/etc/termcapTERM=vt100export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH DBPATH FORMDIR DBDATE LANGexport DBLANG DBNLS TERMCAP TERM环境变量的设置文件中还可加入其它Shell语句第二章 Informix产品线及DB应用开发工具简介一.Informix(英孚美)产品线简介(三大类):1.数据库服务器(Database Server):①.ODS (Informix-Online Dynemic Server)联机动态服务器,多线索,多性能的DB server(数据库服务器)②.XPS (Informix-Online Extended Parallel Server)将DSA扩展至松耦合或非共享的计算体系结构,动态可申缩性体系结构(Dynemic Scerable Architerta),适用于大型数据库的应用,并行SQL操作。
Informix数据库基本操作和常用配置
在控制台输入dbaccess,进入informix管理界面,界面的菜单就不一一解释了,选择database-create输入数据库名,以test为例,回车,dbspace选择test,回车,这一步完了用方向键移到exit选项上,退回到上级菜单,选择Create-new-database,回车即可。完成后一直exit退出管理界面,输入ontape -s -B test修改数据库test日志模式为bufferedlogging,这一步是必须的,否则数据库不支持事务,完成后即可以使用该数据库。Linux下数据库的创建和windows下的一样。简单说一下informix数据库中的四种日志模式:
1、DirtyRead(脏读)隔离
DirtyRead是最简单的隔离级,类同于无隔离级当进程在读数据据时并不对所读的数据上锁,也不管其他进程上没上锁或在做什么。
2、CommittedRead(提交后读)隔离
当进程请求CommittedRead隔离级时,OnLine保证进程得到的数据不是数据库未提交的数据即此时没有其他进程在对这些数据做修改。
U代表Unbufferd(无缓冲日志模式)
B代表bufferd(缓冲日志模式)
A代表Ansi(不常用,不能和其它日志模式转化)
还有一种是N(Nolog)(无日志模式)
各个日志模式之间用ontape -s -代码(U,B,N,A)来进行转换,但转换之前需要修改onconfig文件中的TapeDev和Ltapedev两个参数,指向/dev/null,以免在数据库模式转换的时候进行长时间的0级备份,这两个参数具体含义会在后面说到。
还有一种提高并行性的设置,使用Set Isolation to Committed Read Last Committed语句,为SET ISOLATION TO COMMITTED READ语句引入新的LAST COMMITTED关键字选项,可减少尝试读取表时发生锁定冲突的风险。采用该语句,当用户读取正在被其他用户修改的数据时不在处于锁等待状态,而是可以读取修改前最近落实版本的数据值。这样,由于不会产生锁等待,应用程序效率会显著提高,而且,由于是读取修改前最近落实版本的数据值,也不会产生读取幻象数据(phantom data)的问题,同时,也会大大减少产生死锁的现象。它只支持“行”级别锁定,它不支持以下这些表:正在被DataBlade模块(DataBlade模块是一种标准的软件模块,它可以被插入到数据库中,用以扩展其能力,使用户可以使用任何想要的数据来做任何想做的事情。用户可以融合和匹配来自第三方和Informix的DataBlade模块,或者编写自己的DataBlade模块来创建革新化的商务应用。每个DataBlade模块都包含某一特定领域数据管理的专业知识,可以简单地插入到数据库中,既可以单独使用,又可以与其他DataBlade模块一起使用。有了这种灵活性,用户就可以扩充其DBMS,来解决现在以及将来的特殊数据管理问题。)访问的表、列中具有集合数据类型的表、使用虚拟表界面创建的表、具有页面级别锁定的表、具有专用表级别锁定的表或无事务记录的数据库中的表。在跨服务器的分布式查询中,如果发出查询的会话的隔离级别具有有效的LAST COMMITTED隔离级别,但一个或多个参与操作的数据库不支持该LAST COMMITTED功能,那么整个事务符合发出该事务的会话的“已落实读”或“脏读”隔离级别,而不启用LAST COMMITTED选项。
informix命令使用方法
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数据备份技巧笔者在单位使用Unix Openserver 5.05 操作系统和Informix 7.3 数据库管理系统。
对如何做好Unix 系统Informix 数据的备份,笔者在日常工作中积累了一些技巧,现介绍给大家。
一、Informix数据备份命令1.Ontape命令:该命令可以在线进行数据备份,提供0、1、2级三种不同级别的备份方式,其0级备份是对数据空间的完整备份(包括数据库逻辑日志),其备份量较大,在此基础上的1、2级备份,是增量备份,备份量较小。
但在数据恢复时,如果0级备份出了问题,则不能进行数据恢复。
备份的数据以专用的格式存贮,对用户“不可见”,给用户一种不踏实的感觉。
2.Dbexport命令:该命令是对数据库的完整备份(包括数据结构)。
备份的数据格式是文本文件,用户可以用VI进行编辑,进行部份数据恢复。
但不能进行在线备份,需要使数据库离线。
同时要对多个数据库进行备份时,要用shell程序实现。
3.Unload命令:该命令对数据库中的一张表进行备份。
其优点是方便灵活,备份的数据格式是文本文件,用户可以用VI进行编辑,进行部分数据恢复。
能实现在线数据备份。
其缺点是如要对数据库进行完整备份,要进行编程。
通过以上介绍可知,Ontape命令面向数据空间、dbexport命令面向数据库、unload命令面向数据表,三种命令各有其长处,也有其不足。
综合考虑,笔者认为采用ontape命令进行周备份(0级备份),用unload命令进行日备份比较合理,方便灵活。
二、用unload命令备份Informix-4gl用unload命令备份Informix-4gl 的源程序如下:Define database_name Char(20)MainDefine tabname Char(18)Define tmpstr Char(100)Database database_nameLet database_name = Arg_Val(1)Declare cur_unload0 Cursor ForSelect @tabname From systablesWhere @tabid 〉=100 And @tabtype = ="T"ForEach cur_unload0 Into tabnameDisplay "Unloading ", tabname Clipped, "..."Let tmpstr = "echo Unload To ", database_name Clipped, "/", tabname Clipped, ".unl Select From ", tabname Clipped," | isql ", database_name Clipped, " -"Run tmpstrEnd ForEachClose DatabaseEnd Main程序中数据库名从命令行中获得,对数据库中的每一张表进行循环,转存成相应表名的文本文件。
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命令
dbaccess是捆绑在Informix-Online DB Server上的一套DBMS实例程序,可以做到:①.利用该工具可以做到创建和删除数据库.②.查询数据库中各种信息,编辑使用SQL语句.③.创建,更改,删除数据库基表.④.增加,删除,修改数据库中原始记录.⑤.从OS(操作系统)文件中装载数据到数据库中.⑥.将数据库中的数据卸出到一个OS(操作系统)文件中.⑦.创建回收权限.⑧.利用该工具可以创建,删除,修改Procedure(过程)。
dbexport使用dbexport命令进行数据备份1.dbexport命令简介:dbexport命令以ASCII码格式将整个数据库写到文件或备份介质上(如磁带)。
dbexport卸出的文件包括数据库模式文件和数据文件。
出错和警告信息将被写入一个称为Dbexport.out的文件中。
2.dbexport 命令语法如下:dbexport [-X] [-c] [-q] [-d] [-ss] [{-o -t -b -s [-f ]}] <database>以上命令中参数的意义如下:<>中包括的内容为必选项,[ ]中的内容为可选项。
-c:指示如果没有错误,则输出全部信息。
-q:不对SQL语句、出错信息及警告信息作出响应。
-d:仅输出blob描述符,不输出blob数据。
-ss:在模式文件中输出特定于服务器的用于创建数据库和表的信息,比如:初始的extent和附加的extent的大小、上锁方式、表所驻留的dbspace等信息。
-o:指定数据输出文件的磁盘目录。
-t:指定数据输出文件的备份介质名称。
-b:指定备份介质块大小。
-s:指定备份介质的最大存储量。
-f:用于指定存储在备份介质上的模式文件名。
database:指定备份的数据库名称。
3.使用dbexport功能及需注意的问题:1)执行dbexport命令必须是Informix用户或具有DBA访问权限的用户;2)用dbexport备份的数据必须用dbimport命令恢复;3)用户可以通过编辑模式文件来改变dbimport生成的数据库,如改变数据库名称或相关的表信息;4)dbexport以独占方式(exclusive mode)占用数据库,备份期间其他用户不能对数据库进行查询和修改及插入操作;5)模式文件不保留数据库的日志文件,用户使用dbimport命令建立数据库时必须为新建数据库选择一种日志方式(ANSI、buffered、nobuffered类型);6)用户可以使用dbexport/dbimport命令,将Informix-online和Informix-SE下的数据进行相互转换;也可以将数据在Informix-online的不同版本之间转换,这种转换对数据库服务器的结构和online的配置没有特别要求;7)使用dbexport/dbimport命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。
Informix数据库参数设置说明资料
Informix数据库参数设置说明
本说明从INFORMIX数据库的认证授权功能、安全日志功能,和其他自身安全配置功能提出安全要求。
1.账号
INFORMIX应提供账号管理及认证授权功能,并应满足以下各项要求。
编号:安全要求-设备-INFORMIX-配置-1
编号:安全要求-设备-INFORMIX-配置-2
2.口令
编号:安全要求-设备-INFORMIX-配置-4
编号:安全要求-设备-INFORMIX-配置-5
编号:安全要求-设备-INFORMIX-配置-29-可选
编号:安全要求-设备-INFORMIX-配置-6-可选
编号:安全要求-设备-INFORMIX-配置-7-可选
3.授权
编号:安全要求-设备-INFORMIX-配置-9
4.日志
编号:安全要求-设备-INFORMIX-配置-12
编号:安全要求-设备-INFORMIX-配置-28
5.其他
编号:安全要求-设备-INFORMIX-配置-36-可选
编号:安全要求-设备-INFORMIX-配置-37-可选。
informac常用命令
1. dbexport将数据库以ASCII方式下载。
该命令常用于迁移数据库。
如:命令dbexport -o /opt/informix/db_export db_name将数据库 stores7 下载到/opt/informix/db_export/db_name.exp 目录下,数据库模式文件存放在/opt/informix/db_export/db_name.exp/db_name.sql 下。
2. dbimport与dbexport 配合使用,根据dbexport 的输出创建数据库。
如:命令dbimport -c -i /opt/informix/db_export db_name根据上例中输出结果创建数据库。
(数据库名必须与x.sql文件的x一致。
如果需要改变数据库的名称,如改变数据库名db_name 为new_db_name则在导入前必须改变文件db_name.exp/db_name.sql为db_name.exp/new_db_name.sql,“.sql”不变;)3. dbload将ASCII 文件中的数据传送到数据库中。
如:dbload -d test -c tmp/load.cmd -l tmp/error.logcmd文件的写法如下:file "/opt/informix/tmp/test" delimiter "|" 7 ;insert into tab;(文件路径必须为绝对路径,“7”为一行的列数)4. dbschema将数据库的模式输出到文件中,可用于重建数据库或表。
5. oncheck数据一致性检查和索引修复工具。
常用选项有:oncheck -ce 检查Chunks 和extentsoncheck -cd 检查数据行oncheck -ci 检查索引值oncheck -cI 检查索引值和rowidoncheck -cr 检查系统保留页oncheck -cc 检查系统目录表6. oninit启动OnLine7. onlog显示系统逻辑日志的内容。
Informix数据库配置详解(1)数据库-电脑资料
Informix数据库配置详解(1)数据库-电脑资料1.配置概述本次数据库配置将采用数据库系统、数据库日志和数据库应用系统数据分开进行配置,以达到数据库系统优化的目的,。
2.营销系统数据库配置示例 2.1 规划数据库空间根据配置的思想,将数据库系统分三个区。
分别是: rootdbs:informix系统区,我们将1.配置概述本次数据库配置将采用数据库系统、数据库日志和数据库应用系统数据分开进行配置,以达到数据库系统优化的目的。
2.营销系统数据库配置示例2.1 规划数据库空间根据配置的思想,将数据库系统分三个区。
分别是:rootdbs: informix系统区,我们将一号机的e1_1dbs4分配给它,为了便于记忆我们将该区取个名为yxroot。
具体操作为:# ln /dev/re1_1dbs4 /dev/yx_root#chown informix:informix /dev/yx_root#chmod 664 /dev/yx_rootlogdbs: informix日志区,我们将一号机的e1_1dbs5分配给它,为了便于记忆我们将该区取个别名为yx_log。
具体操作为:# ln /dev/re1_1dbs5 /dev/yx_log#chown informix:informix /dev/yx_log#chmod 664 /dev/yx_logworkdbs: informix数据区,我们将一号机的e1_1dbs0到e1_1dbs3分配给它,为了便于记忆我们将该区取个别名为yx_work。
具体操作为:# ln /dev/re1_1dbs0 /dev/yx_dbs0# ln /dev/re1_1dbs1 /dev/yx_dbs1#chown informix:informix /dev/yx_dbs?#chmod 664 /dev/yx_dbs?2.2 Informix系统参数配置informix系统参数配置文件由如下文件决定:2.2.1 Informix 启动环境文件:start_yx 文件内容如下:echo "start dbserver on yx"INFORMIXDIR=/usr/informixexport INFORMIXDIRTBCONFIG=tbconfig.yxDBDATE=Y4MD/PATH=$PATH:$INFORMIXDIR/bin:.export PATH MAIL TBCONFIG2.2.2 Informix 配置文件:$INFORMIXDIR/etc/tbconfig.yx $ cd $INFORMIXDIR/etc$ cp tbconfig.std tbconfig.yx$ vi tbconfig.yx修改相应参数:ROOTPATH /dev/yx_rootROOTSIZE 1000000TAPEDEV /dev/nullPHYSFILE 100000LOGSIZE 100000LOGFILES 3LOGSIZE 100000MSGPATH /usr/informix/online_yx.log CONSOLE /dev/consoleSERVERNUM 0DBSERVERNAME XXclic_yx#注:XX:按各地市名称来取#福州:fz 莆田:pt 泉州:qz 漳州:zz 龙岩:ly#三明:sm 南平:np 宁德:ndUSERS 300TRANSACTIONS 300LOCKS 200000BUFFERS 20000TBLSPACES 6000LOGSMAX 602.2.3 Informix网络连接配置文件:$INFORMIXDIR/etc/sqlhosts.yx该文件只有在C/S模式下和数据库联网才用到(略)2.3 Informix初始化操作:1.启动系统环境:以informix 用户登录启动环境操作: # . ./start_yx2.初始化数据库系统区操作:tbinit -i3.创建数据库日志和工作区tbspaces –c –d yx_log –p /dev/yx_log –o 0 –s 870000tbspaces –c –d yx_work –p /dev/yx_dbs0 -o 0 –s 2000000tbspaces –a yx_work –p /dev/yx_dbs1 -o 0 –s 20000004.移动数据库系统区的日志到新的数据库日志区a.在logdbs上生成逻辑日志,逻辑日志共取600M,每个日志100M,分6个,电脑资料《Informix数据库配置详解(1)数据库》(https://)。
informix_online数据库三种备份方法的选择
informix_online数据库三种备份方法的选择第一篇:informix_online数据库三种备份方法的选择【IT168 服务器学院】INFORMIX-ONLINE数据库因其具有高性能、高可靠性、支持数据完整性定义和检查等特性而被广泛应用。
数据库被使用后,数据备份的安全可靠性便成为人们普遍关注的问题。
下面根据笔者多年的学习和使用经验,对INFORMIX-ONLINE数据库常用的三种数据备份方式加以归纳和比较。
一、使用ontape工具进行数据备份1.ontape工具的功能ontape工具具有如下功能:备份和恢复ONLINE数据、备份和恢复逻辑日志、改变数据库日志状态等。
在此着重介绍数据备份功能。
2.执行ontape备份数据的语法ontape备份语法为:ontape -s -L 备份级别(0、1、2)在ONLINE处于联机或静止方式时,informix用户或具有DBA权限的用户可以通过执行上面的命令进行备份。
根据备份方案安排进行0级、1级、2级备份。
0级备份是对整个数据库的所有数据进行完整备份,1级备份是只对0级备份以后修改过的数据进行备份,2级备份只是对1级备份以后修改过的数据进行备份。
3.需要注意的问题(1)在执行ontape备份前要对ONCONFIG文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。
(2)为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。
对银行等重要部门数据,应每天进行0级备份。
(3)如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、ONCONFIG配置文件及非临时分配的dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。
(4)必须保证有足够可用的逻辑日志文件。
如果剩余的逻辑日志空间小于单个逻辑日志的50%,INFORMIX-ONLINE将拒绝执行备份操作,必须先备份已使用过的逻辑日志,然后才能进行数据备份。
Informix数据库基本操作和常用配置
Windows
创建动态服务
开始-> Informix Dynamic Server11.50-> server instances manager选择create new创建一个动态服务,需要记住的信息有端口号、服务名和密码,其他信息用默认的即可。端口号从8098开始,可以自己设置,再次创建新的服务时会自动增加,服务名最好自己设置,默认的服务名很长,不方便记,这里我以test为例。如果系统中装了informix数据库,登陆系统时会默认以informix用户登陆,最好所有对数据库的操作均在informix用户下进行,不赞成在windows用户下操作,会导致权限不一致,连接不上数据库。完成后会弹出一个是否初始化动态服务的选项,选择是,初始化完成后动态服务就创建完成了,以下简称IDS。此时会在informix安装目录的etc目录下生成一个ONCONFIG.test(test为服务名)配置文件。
为了减少死锁或者锁等待现象,informix11.5还提供一些新特性来提高应用系统并发执行效率,这里只介绍下我们用到的。通过设置USRLASTCOMMITTED参数来减少锁等待和死锁现象,通常该参数设置为ALL即可,USELASTCOMMITTED选项可具有以下四个值中的任意一个:
1.如果值为“COMMITTED READ”,那么当数据库服务器尝试读取处于“已落实读”或“读已落实”隔离级别的行而遇到互斥锁时,它将读取最近落实的数据版本。
扩展表空间
创建好动态服务后我们可以通过开始-> Informix Dynamic Server11.50->test打开控制台。在windows下装完informix数据库后还会生成一个IFMXDATA文件夹,与安装目录相同,每创建一个IDS就会在该文件中生成一个以服务名命名的文件夹,当选择初始化动态服务的时候就会在对应的文件夹中生成两个空间文件,一个rootdbs_dat.000是一个informix内部使用的默认空间,rootdbs我们一般都不用。另一个test_dat.000则是我们主要使用的,以后建的数据库都是放在这个表空间里的。Test_dat.000默认大小为100M,一般都需要扩展一个表空间上去,扩展表空间的方法:先去\IFMXDATA\test目录下新建一个文件test_dat.001,然后在控制台输入命令:onspaces -atest-p c:\IFMXDATA\test\test_dat.001 -s 300000 -o 0,-a是添加,-p是路径,-s是大小,-o是偏移量,0为偏移量的大小,偏移量类似一个开始的地址,为0,就是从1开始,为10,则从11开始。若在一个文件上建一个100大小的chunk(chunk,区,块informix术语单位,不多解释),偏移量设为0,则这个chunk就占据了1-100这段空间,若在这个文件上再建一个100大小的chunk,1-100已经被占用,则偏移量要设为100,即从101开始。注意,对于同一文件是要往后累加的,不同的文件则都可以从0开始,不过建议如果分配的空间太大,最好能预留一点给磁盘信息。完成后可以用onstat–d查看表空间信息。如果不选择初始化,这两个文件的大小都为0,需要手动修改,用这个命令即可,其中-c是创建:onspaces -c -dtest-p C:\IFMXDATA\test\test_dat.000 -o 0 -s 300000,rootdbs不常用,可以不用修改。
dbexport,dbimport使用手册
dbexportdbexport实用程序将数据库卸出到ASCII文件或磁带。
dbimport实用程序使用dbexport产生的模式文件和数据重建数据库。
用户可以通过编辑模式文件来修改由dbimport生成的数据库模式。
dbexport实用程序的语法:-c 指示如果没有致命错误,则输出全部信息。
-d 仅输出blob描述符,不输出blob数据。
-q 在标准输出设备上不显示错误信息,警告和所生成的SQL数据定义语句。
-ss 为指定数据库中所有的表产生特定于数据库服务器的信息,对7.1动态服务器而言,-ss选项使dbexport输出初始extent和附加extent的大小,分段存储信息(如果表已分割),上锁的方式,表所在的dbspace,任意blob数据的blobspace信息等。
-X 标识符符字段中的HEX二进制数据。
目标选项-o 命令存储ASCII文件和模式文件的磁盘目录。
Directory是磁盘目录名,其指定的目录必须是没有存在的。
-t 指定存储ASCII文件和模式文件的磁带设备名。
-b 指定磁带设备块大小,block以KB为单位,该值必须能为所使用的设备接受。
-s 指定磁带的最大数据存储量。
-f 如果将数据文件存储到磁带上,-f选项用于指定存储在磁盘上的模式文件名。
用户在使用dbimport之前可以检查或修改模式文件。
/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.mig.doc/mig138.htm Syntax of the dbexport Command>>-dbexport----------------------------------------------------->.----------------------------------.V |>--+---+------------------------------+-+--database-+---------->< | +- -c--------------------------+ || +- -d--------------------------+ || +- -q--------------------------+ || | (1) | || +-| Destination Options |------+ || +- -ss-------------------------+ || '- -X--------------------------' |'- -V--------------------------------------------'Notes:1.See page Destination OptionsElement Purpose Key Considerations-c Makes dbexport completeexporting unless a fatal erroroccursReferences: For details on this option, seeErrors.-d Makes dbexport exportsimple-large-object descriptorsonly, not simple-large-objectdataReferences: For information aboutsimple-large-object descriptors, see theIBM Informix: Optical Subsystem Guide.Restrictions: Not supported by SE.-q Suppresses the display of error messages, warnings, andgenerated SQL data-definition statementsNone.-ss Generates databaseserver-specific information forall tables in the specifieddatabaseReferences: For details on this option, seeServer-Specific Information.-X Recognizes HEX binary data in character fieldsNone.Element Purpose Key Considerations-V Displays product versioninformationNone.database Specifies the name of thedatabase that you want toexportAdditional Information: If your locale is set touse multibyte characters, you can use multibytecharacters for the database name.References: If you want to use more than thesimple name of the database, refer to theDatabase Name section of the IBM Informix:Guide to SQL Syntax.You must have DBA privileges or log in as user informix to export a database.Global Language SupportWhen the environment variables are set correctly, as described in the IBM Informix: GLSUser's Guide, dbexport can handle foreign characters in data and export the data from GLS databases. For more information, refer to Database Renaming.End of Global Language SupportYou can use delimited identifiers with the dbexport utility. The utility detects databaseobjects that are keywords, mixed case, or have special characters and places double quotes around them.In addition to the data files and the schema file, dbexport creates a file of messages named dbexport.out in the current directory. This file contains error messages, warnings, and adisplay of the SQL data definition statements that it generates. The same material is alsowritten to the standard output unless you specify the -q option.During the export, the database is locked in exclusive mode. If dbexport cannot obtain an exclusive lock, it displays a diagnostic message and exits.Tip:The dbexport utility can create files larger than 2 GB. To support such large files, make sure your operating system file-size limits are set sufficiently high. For example, on UNIX, setulimit to unlimited.dbimport实用程序以dbexport实用程序生成的ASCII文件作为输入,建立数据库并装入数据。
INFORMIX数据库维护指南(一)
INFORMIX数据库维护指南(一)日常维护操作规程目录一保存好INFORMIX 的系统信息 (2)二监控数据空间以及逻辑日志空间的使用情况 (3)三数据的备份 (4)四数据的卸出与装载 (5)五 INFORMIX 性能的调整 (6)六对用户的监控 (6)七对IFNORMIX IDS 内存的监控 (10)八对IFNORMIX IDS 锁的监控 (11)九用于查询机数据同步的备份操作规程 (12)十系统的监控方法的汇总 (13)一保存好INFORMIX的系统信息请保存好 INFORMIX 如下五类信息:1.ONCONFIG 文件;2.INFORMIX 用户的 .profile文件3. INFORMIX 逻辑日志信息(可用 onstat –l 获得)4.所有Dbspace 以及每个Dbspace 的所有 Chunk 的信息:1). 所有Dbspace 的名字;2). 每个Dbspace 的所有 Chunk 的 path,offset,size.INFORMIX 极力推荐 Chunk 的 Path 使用 Link,这使得真正存放数据的设备或文件具有重新定位的可能性。
在使用 Link 情况下,请保存每个 Link 所指向的设备或文件的信息。
可用:ls –l 列出各个 Link 所指向的设备或文件。
用” onstat –d > file “可在 file 中保存所有Dbspace 以及每个Dbspace 的所有 Chunk 的信息( size 是以 page 为单位,而建立 Chunk 时是以 K为单位),但请注意,在使用 Link 情况下,onstat –d 不含有每个 Link 所指向的设备或文件的信息。
5.所有Database 以及所含的Table的信息。
可使用 dbschema 获得该信息:例:dbschema -d stores7 –ss其中的–ss 指定把lock modes, and extent sizes 信息也包含进来;如上信息为INFORMIX 系统的恢复提供了条件。
informix常用数据库操作
informix常用数据库操作查看数据库实例名: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.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 all导出数据库表结构:dbschema -d database > database.sqldbschema -t tablename >tablename.sql-d表示导出整个数据库的表结构,-t表示导出某一个数据表的表结构。
informix数据库导出导入过程
informix数据库导出导入过程1.unloadzz.sh dbname导出(为了说明方便,假定导出的数据库名字叫做mysrcdb)2.修改dbname/schema/dbname.sql文件中的,这里此值为:mysrcdb/schema/mysrcdb.sql。
(1)检查用户名是否需要修改(一般在文件头位置),例如:(将netpilot用户名字改为informix名)grant dba to "netpilot";grant dba to "informix";修改为:grant dba to " informix";grant dba to "informix";(2)修改所属的数据库空间名是否需要修改(可以通过关键字” in “来查找(in的前后各带上一个空格进行查找,要不然太多了),一般是在创建索引或触发器的地方),例如:(将空间名字由原来存放在dldddbs上,改为存放在datadbs1上)create unique index "informix".ix_reply_header on "informix".dd_reply_header (dd_number,province) using btree in dldddbs ;修改为:create unique index "informix".ix_reply_header on "informix".dd_reply_header (dd_number,province) using btree in datadbs1;(3)检查创建视图的字段名字中是否存在””(双引号),如果存在,则将其去掉。
(可以通过”create view”关键字来查找)。
例如,(将”name”改为name,只需要去掉用来创建字段名字中的双引号,来源中(as select后的信息)的双引号可以不用去掉)create view "informix".x_linegroupid (id,"name",kind,pro,city,county) asselect x0.id ,x0."name" ,x0.kind ,x0.pro ,x0.city ,x0.countyfrom "informix".x_ductgroup x0 union select x1.id ,x1."name",x1.kind ,x1.pro ,x1.city ,x1.county from "informix".x_polewaygroupx1 union select x2.id ,x2."name" ,x2.kind ,x2.pro ,x2.city,x2.county from "informix".x_stonewaygroup x2 ;修改为:create view "informix".x_linegroupid (id, name,kind,pro,city,county) asselect x0.id ,x0."name" ,x0.kind ,x0.pro ,x0.city ,x0.countyfrom "informix".x_ductgroup x0 union select x1.id ,x1."name",x1.kind ,x1.pro ,x1.city ,x1.county from "informix".x_polewaygroupx1 union select x2.id ,x2."name" ,x2.kind ,x2.pro ,x2.city,x2.county from "informix".x_stonewaygroup x2 ;(4)检查创建触发器字段名字中是否存在””(双引号),如果存在,则将其去掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INFORMIX的dbexport和dbimport使用示例说明
INFORMIX-IDS数据库进行迁移中,我们在进行数据级别的迁移时,采用dbexpor t,dbimport来完成。
dbexport导出数据库中所有对象的模式脚本和表数据文件,该模式脚本中包含有表等的创建脚本,同时包含了导出的表的对于数据文件的信息。
dbimport根据模式脚本进行导入,导入过程首先根据模式脚本创建对象,如何导入相应的数据,导入数据过程类似load过程。
如要加速导入,可以首先将数据库的日志模式选择为nolog模式。
导入完成后进行日志模式的改变即可。
以下说明如何使用dbexport和dbimport进行IDS的数据库的数据级别的迁移。
1、导出,首先创建导出一个目录,示例中在/db/目录下创建sunguorong的一个文件夹
dbexport dbname -c -ss -o /db/sunguorong
2、导出完成后,在sunguorong目录下生成一个dbname.exp的目录,找到该目录下的dbname.sql模式脚本文件,需要利用工具(如sqleditor)来验证一下脚本的语法的正确性(导出的脚本可能存在语法上的错误),需要加以修改纠正。
3、导入,在导入之前,需要按照存储情况先划分好DBSPACE
dbimport dbname -i /db/sunguorong dbname -c -l buffered -d default_db spacename
4、导入完成后,进行数据库级别的统计更新
update statistics ;
【补充资料(一)】
dbexport
dbexport实用程序将数据库卸出到ASCII文件或磁带。
dbimport实用程序使用dbexport产生的模式文件和数据重建数据库。
用户可以通过编辑模式文件来修改由dbimport生成的数据库模式。
dbexport实用程序的语法:
-c 指示如果没有致命错误,则输出全部信息。
-d 仅输出blob描述符,不输出blob数据。
-q 在标准输出设备上不显示错误信息,警告和所生成的SQL数据定义语句。
-ss 为指定数据库中所有的表产生特定于数据库服务器的信息,对7.1动态服务器而言,-ss选项使dbexport输出初始extent和附加extent的大小,分段存储信息(如果表已分割),上锁的方式,表所在的dbspace,任意blob数据的blobspace 信息等。
-X 标识符符字段中的HEX二进制数据。
目标选项
-o 命令存储ASCII文件和模式文件的磁盘目录。
Directory是磁盘目录名,其指定的目录必须是没有存在的。
-t 指定存储ASCII文件和模式文件的磁带设备名。
-b 指定磁带设备块大小,block以KB为单位,该值必须能为所使用的设备接受。
-s 指定磁带的最大数据存储量。
-f 如果将数据文件存储到磁带上,-f选项用于指定存储在磁盘上的模式文件名。
用户在使用dbimport之前可以检查或修改模式文件。
【补充资料(二)】
dbimport
dbimport实用程序以dbexport实用程序生成的ASCII文件作为输入,建立数据库并装入数据。
作为输入的ASCII文件分为两部分:用来重建数据库的模式文件,和数据库的数据文件。
dbimport -v 显示软件版本号
*运行dbimport的用户将对所创建的数据库拥有DBA权限
dbimport实用程序的语法:
-c 指示dbimport在没有发生致命错误的情况下完成装入工作。
-q 指示在标准输出设备上不显示错误信息和警告。
-X 标识符符字段中的HEX二进制数据。
输入文件位置选项:
-i 指定存储ASCII文件和模式文件的磁盘目录,以便dbimport查找。
-t 指定含有ASCII文件和模式文件的磁带设备名。
-b 指定磁带设备块大小。
block以KB为单位,该值必须能为所使用的设备接受。
-s 指定磁带的最大数据存储量。
-f 指定磁盘上模式文件的路径名,以便dbimport查找模式文件,并以此为输入建立数据库。
建库选项:
-d 指定用来存储新建数据库的OnLine数据库空间(dbspace)。
如果没有使用-d选项指定dbspace,
则数据库缺省建立在根dbspace中。
-l 如果没有使用buffered参数,为装入的数据库建立无缓冲事务日志;如果使用了buffered参数,为装入的数据库建立有缓冲事务日志。
-l选项等价于CREATEDATABASE语句的WITH LOG字句。
如果没有使用-l选项,新建数据库不带日志。
-ansi 为装入的数据库建立ANSI方式兼容的事务日志。