informix迁移_第1页
informix迁移_第2页
informix迁移_第3页
informix迁移_第4页
informix迁移_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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的路径分别

2、设置为/home/Informix/tapedev、/home/Informix/ltapedevØ 在源服务器上制作最终的0级备份 ü ontape s L 0Ø 使源数据库服务器脱机ü onmode kyØ 将备份文件、onconfig、sqlhost以及环境变量的setenv1170文件均拷贝到目标服务器的相应位置(注意更改sqlhost文件中的ip地址栏位)Ø 在目标服务器上安装IDS软件Ø 在目标服务器上的相应位置建立与源数据库服务器相同的chunk文件并更改权限Ø 在目标服务器上使用ontape r命令

3、恢复数据Ø 恢复完毕之后,目标服务器自动启动到静默模式,更改使其进入联机模式Ø 制作目标服务器的最初0级备份3. 文本迁移 在数据库之间迁移,即将数据移动到不同操作系统上的数据库服务器中3.1 文本迁移中移动数据可以使用的传输工具和实用程序-dbexport和dbimport-onload和onunload-load和unload-dbload-external table-high performance loader(HPL)这些工具有各自的优点和限制。综合考虑所有因素,选择适合环境的工具或实用程序3.2 迁移环境源数据库版本:IBM Informix Dynamic

4、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Ø 安装并配置目标数据库服务器。Ø 使目标数据库联机Ø 使

5、用dbimport、load或dbload或外部表将数据库装入目标数据库服务器Ø 制作目标数据库服务器的最初0级备份Ø 运行upstate statistics来更新目标数据库服务器用来规划有效查询的信息4. 数据的移动4.1 移动数据前考虑因素Ø 更改配置参数和环境变量(如设置PATH INFORMIXDIR和INFORMIXSERVER)Ø 内存和数据空间的需求量Ø 数据的组织Ø 是否想要更改数据库模式以容纳更多信息,为增长提供空间或提高性能4.2 数据迁移工具Ø dbexport和dbimportØ dblo

6、ad和onloadØ unload和loadØ external tableØ High-Performance Loader(HPL)² 注意: 当从非informix数据源导入数据时,可以使用以下工具:dbimport和dbloadHPLIBM Informix Enterprise Gateway产品4.3 数据迁移工具之间的比较4.3.1 dbexport和dbimport 向存储在磁盘或磁带中的文本文件导入或导出数据库导出的文件中包含数据文件和模式文件 并且会再当前目录中创建名为dbexport.out的消息文件。此文件包含错误消息、警告以及它

7、生成的SQL数据定义语句的显示会以互斥方式锁定数据库变为没有日志的数据库了有日志的数据库倒过去之后l 优点ü 可以修改数据库模式并更改数据格式(比如将int类型改为char 给数据库中的表改名 还要将unl文件名字改掉)ü 可以在操作系统间移动数据ü 可选的日志记录功能ü 可以从非informix数据源导入数据l 缺点ü 速度比dbload快,但比onload慢ü 移动整个数据库l 用法目标选项-c使dbexport完成导出,除非发生致命错误-d使dbexport只导出简单大对象描述符,不导出简单大对象数据-q隐藏错误消息,警告和生成

8、的SQL数据定义语句的显示-ss对指定数据库中的所有表生成特定于数据库服务器的信息-si为非分段表排除索引存储子句的生成-si选项仅在与-ss选项一起使用时才可用-X识别字符字段中的HEX二进制数据-V显示软件版本号和序列号-version 扩展-V选项来显示有关构建操作系统、构建号和构建数据的其他信息Database 指定希望导出的数据库的名称-b blocksize 指定磁带设备的块大小(以千字节计)-f pathname 指定希望存储模式文件的路径名(如果要在磁带上存储数据文件)-o directory 指定磁盘上的目录,dbexport将在该目录中创建database.exp目录 该目

9、录保留dbexport为数据库创建的数据文件和模式-s tapesize 指定可在磁带上存储的数据量(以千字节计)-t device 指定希望存储文本文件和可能存储模式文件的磁带设备路径名Dbimport输入文件的位置-c即使出现某些非致命错误,也可以完成数据导入-q隐藏错误消息、警告和生成的SQL数据定义语句的显示-V显示软件版本号和序列号-version扩展-V选项来显示有关构建操作系统、构建号和构建数据的其他信息-X识别字符字段中的HEX二进制数据Database 指定要创建的数据库名称-b blocksize 指定磁带设备的块大小(以千字节计)-f pathname 指定dbimpor

10、t可在何处找到用于输入的模式文件,该文件用来在从磁带读取数据文件时创建数据库-i directory 指定磁盘上database.exp目录的完整路径名,该目录中包含dbimport用来创建和装入新数据库的输入数据文件和模式文件。目录名必须与数据库名相同-s tapesize指定可在磁带上存储的数据量(以千字节计)-t device指定包含输入文件的磁带设备的路径名l 案例1. 使用dbexport导出:informixvm1 $ mkdir dbexportinformixvm1 $ cd dbexport/informixvm1 dbexport$ dbexport test DATABA

11、SE test delimiter | grant dba to "informix" TABLE "informix".testtable row size = 102 number of columns = 7 index size = 0 unload file name = testt00103.unl number of rows = 1972124 create raw table "informix".testtable ( fname char(20), lname char(20), company char(20)

12、, address char(20), city char(15), state char(2), zipcode char(5) );revoke all on "informix".testtable from "public" as "informix"revoke usage on language SPL from public ;grant usage on language SPL to public ;dbexport completedreal0m8.841suser0m2.622ssys0m0.753s2. 将导出

13、数据拷贝到目标服务器:informixvm1 $ scp -r dbexport/ vm2:/home/informix/3. 使用dbimport导入数据:informixvm2 $ cd dbexport/informixvm2 dbexport$ dbimport test DATABASE test delimiter | grant dba to "informix" TABLE "informix".testtable row size = 102 number of columns = 7 index size = 0 unload fil

14、e name = testt00103.unl number of rows = 1972124 create raw table "informix".testtable ( fname char(20), lname char(20), company char(20), address char(20), city char(15), state char(2), zipcode char(5) );revoke all on "informix".testtable from "public" as "informi

15、x"revoke usage on language SPL from public ;grant usage on language SPL to public ;dbimport completedreal1m44.177suser0m7.890ssys0m2.185s导入导出共计耗时:113.018s4.3.2 dbloadl 将数据从一个或多个文本文件传送到一个或多个现有表中l 装入期间会进行表锁定l 优点ü 可以修改数据库模式ü 可以在操作系统间移动数据ü 可选的日志记录功能ü 适中的易用性ü 可以从非informix数据源

16、导入数据l 缺点ü 速度比dbexport、dbimport、onload慢l 用法dbload -d dbname -c cfilname -l logfile -e errnum -n nnum-d 数据库名-c cfilname 命令文件名-l 指定错误日志文件的文件名或路径名-e 在服务器abort之前的错误行数-n 以行数指定提交间隔 默认间隔为100行-p 如果坏行数超过限制将提示要求指示信息-r 阻止dbload在装入期间锁定表,这样就在装入迁建允许其他用户更新表中的数据-s 检查命令文件中的语句语法而不插入数据l 案例1. 使用unload语句或者dbexport将表

17、卸载到输出文件informixvm1 $ mkdir dbloadinformixvm1 $ cd dbloadinformixvm1 dbload$ vi unload.shdbaccess test <<EOFunload to "/home/informix/dbload/unload" select * from testtable;EOFinformixvm1 dbload$ sh unload.sh Database selected.1972124 row(s) unloaded.Database closed.real0m9.575suser0m

18、3.122ssys0m0.981s2.2. 使用dbschema实用程序捕捉表模式和行类型 必须使用-ui/-ua/-uia/all 选项来获得命令行类型informixvm1 dbload$ dbschema -d test -t testtable -q > dbload.sqlreal0m0.416suser0m0.005ssys0m0.027s3. 将使用unload导出的数据以及使用dbschema导出的模式文件拷贝到目标服务器informixvm1 dbload$ scp unload vm2:/home/informix/ informixvm1 dbload$ scp d

19、bload.sql vm2:/home/informix/ 3. 使用dbaccess在目标服务器中重建表模式(数据库名在目标服务器中要拥有)informixvm2 $ dbaccess test dbload.sqlreal0m0.027suser0m0.008ssys0m0.005s4. 4. 创建dbload命令文件(unload为数据导出的文件名 7为每个数据行的字段数)Vi command.file unload delimiter '|' 7;insert into testtable;5. 运行dbload命令time dbload -d test1 -c com

20、m -l errlogreal2m11.003suser0m10.564ssys0m3.325s导入导出共计耗时:141.021s4.3.3 onunload和onloadl 将数据库中的数据卸载到磁带或磁盘中的文件中;将通过onunload命令创建的数据装入到数据库服务器中l 以二进制格式和页大小为单位复制数据 windows 4K linux 2Kl 在使用onload和onunload实用程序之前,必须将压缩表和分段表中的数据解压缩l 允许对表进行select和updatelll 优点ü 速度快 可选的日志记录功能l 缺点ü 只在同一操作系统上具有相同版本的数据库服务

21、器间移动数据ü 无法修改数据库模式ü 使用难度大ü 不可用于SE 7.22-7.25 SE 5.1或更早版本l 用法onunload -l -t <tape device> -b <block size> -s <tape size><database>:<owner>.<table>onload -l -t <tape device> -b <block size> -s <tape size>-d <DBspace> <database

22、>:<owner>.<table> -l 指示onunload分别从LTAPEDEV LTAPEBLK和LTAPESIZE读取磁带设备 块大小和磁带大小的值 -b 指定磁带设备的块大小(以千字节计) -s 指定存储在磁带上的数据量(以千字节计) -t 指定磁盘上文件的路径名或安装输入磁带的磁带设备的路径名l 案例1. 使用onunload实用程序下载数据informixvm1 $ touch onunloadinformixvm1 $ onunload -t /home/informix/onunload testPlease mount tape and pre

23、ss Return to continue .Please label this as tape number 1 in the tape sequence.real0m18.873suser0m0.005ssys0m0.010s2. 将下载的数据拷贝到目标服务器informixvm1 $ scp onunload vm2:/home/informix/3. 使用onload实用程序将数据上传(在目标端此数据库应该是不存在的)informixvm2 $ onload -t /home/informix/onunload testPlease mount tape and press Retur

24、n to continue .The load has successfully completed.real0m54.308suser0m0.005ssys0m0.020s导入导出共计耗时:73.178s4.3.4 unload和load语句l 卸载和装入指定的行l 会产生长事务 需要将其多次提交 l Unload不锁表 load会锁表并产生长事务l 优点ü 可以修改数据库模式ü 可以在操作系统间移动数据ü 易于使用ü 可选的日志记录功能l 缺点ü 只接受指定的数据格式l 案例1. 使用unload语句将表卸载到输出文件informixvm1

25、 $ mkdir dbloadinformixvm1 $ cd dbloadinformixvm1 dbload$ vi unload.shdbaccess test <<EOFunload to "/home/informix/dbload/unload" select * from testtable;EOFinformixvm1 dbload$ sh unload.sh Database selected.1972124 row(s) unloaded.Database closed.real0m9.575suser0m3.122ssys0m0.981s2

26、.2. 使用dbschema实用程序捕捉表模式和行类型 必须使用-ui/-ua/-uia/all 选项来获得命令行类型informixvm1 dbload$ dbschema -d test -t testtable -q > dbload.sqlreal0m0.416suser0m0.005ssys0m0.027s3. 将使用unload导出的数据以及使用dbschema导出的模式文件拷贝到目标服务器informixvm1 dbload$ scp unload vm2:/home/informix/ informixvm1 dbload$ scp dbload.sql vm2:/hom

27、e/informix/ 3. 使用dbaccess在目标服务器中重建表模式(数据库名在目标服务器中要拥有)informixvm2 $ dbaccess test dbload.sqlreal0m0.027suser0m0.008ssys0m0.005s4. 4. 在目标服务器中使用load语句导入数据informixvm2 $ vi load.shdbaccess test <<EOFload from "/home/informix/unload" insert into testtable;EOFinformixvm2 $ time sh load.shre

28、al1m25.477suser0m6.251ssys0m2.150s导入导出共计耗时:95.495s4.3.5 external table 最大化的利用I/O利用率 11.7基本上百分之百利用I/Ol 优点ü 快速重建大数据量的表ü 在线增量数据加载入库l 缺点External table不支持 Index Primary key ,unique key, foreign key Trigger Merge 语句的目的表 一个查询语句中只能含有一个外部表(表关联的时候 不能是外部表和外部表) 不能作为outer join的outer tabname Update和dele

29、te语句 load from ./orders.unl insert into orders_ext Alter table 语句 Grand, revoke语句 LBACl 介绍:Ø IDS 11.5.xC6 的新特性Ø 一个正常的表是由informix进行存储管理即表的数据是通过informix自身进行管理,而外部表是以操作系统文件方式管理Ø 支持files和named pipeØ 支持所有的数据类型Ø 可以通过sql接口进行访问IDS外部的数据Ø 高性能ETL工具Ø 利用SQL语句简单快速随大数据集合的导入、导出处理l

30、 定义外部表的数据对应的格式:Ø DELIMITED 符号分隔列的文本格式Ø INFORMIX Informix内部的格式,是一个二进制的格式Ø FIXED 固定长度的格式l 两种模式:Ø DELUXE 在表有indexes和unique约束的情况下,自动更新索引和检 查约束,提供快速并行loading使用单条记录insert方法来load数据,处理index和每一行数据,只对处理的记录锁定,目标表的其他记录可以被同时访问 当下列情况下使用该模式: 重建index的代价非常高 当需要使用delete释放的空间 其他用户同时访问该表的记录Ø EX

31、PRESS 能提供最高效的load 空载的情况 表是空表使用light-append,绕过buffer pool,只对raw table+no index有效Load数据时,系统自动对表加“exclusive”锁,其他用户不可以访问该表当导出的表中的数据绕开buffer 直接将数据导入到外部表对应的磁盘中开并发 裸表Systables tabtype为E的l 案例1. 建立外部表create external table testtable_ext sameas testtableusing(datafiles("DISK:/opt/IBM/informix/test/externa

32、l_table/testtable%(1.4).unl"),format "delimited",DELIMITER "|",DELUXE,rejectfile "/opt/IBM/informix/test/external_table/testtable_rejfile.err",maxerrors 100);2. 把数据unload到数据文件informixvm1 $ vi exter.shdbaccess test <<EOFinsert into testtable_ext select * from

33、testtable where 1=1;EOFinformixvm1 $ time sh exter.shreal0m11.528suser0m0.005ssys0m0.029s3. 将unload的数据文件都拷贝到目标服务器informixvm1 $ cd /opt/IBM/informix/testinformixvm1 test$ scp -r external_table/ vm2:/opt/IBM/informix/test/4. 使用dbschema实用程序捕捉表模式和行类型 必须使用-ui/-ua/-uia/all 选项来获得命令行类型informixvm1 dbload$ db

34、schema -d test -t testtable -q > dbload.sqlreal0m0.416suser0m0.005ssys0m0.027s5. 将dbschema导出的模式文件拷贝到目标服务器informixvm1 dbload$ scp dbload.sql vm2:/home/informix/6. 使用dbaccess在目标服务器中重建表模式(数据库名在目标服务器中要拥有)informixvm2 $ dbaccess test dbload.sqlreal0m0.027suser0m0.008ssys0m0.005s4. 7. 在目标服务器建立相同的外部表crea

35、te external table testtable_ext sameas testtableusing(datafiles("DISK:/opt/IBM/informix/test/external_table/testtable%(1.4).unl"),format "delimited",DELIMITER "|",DELUXE,rejectfile "/opt/IBM/informix/test/external_table/testtable_rejfile.err",maxerrors 100),8.

36、 把文件数据load到目标服务器informixvm2 $ vi exterload.shdbaccess test <<EOFinsert into testtable select * from testtable_ext where 1=1;EOFinformixvm2 $ time sh exterload.sh real0m9.797suser0m0.007ssys0m0.010s导入导出共计用时21.768s4.3.6 High-Performance Loader(HPL)l 从符合某些格式要求的任何ASCII或COBOL文件装入数据l 优点ü 对于特大型数

37、据库,与其他IBM Informix数据迁移实用程序相比具有性能优势,因为它以并行方式执行I/O和代码集转换ü 可以修改数据库模式ü 可以在操作系统间移动数据ü 可以从非informix数据源导入数据l 缺点ü 需要较长的准备时间ü 不可用于:SE 7.22-7.25 SE 5.1x Online 5.1xl 简介ü HPL由onpload实用程序、ipload和onpload数据库组成ü Ipload实用程序是一个UNIX应用程序,它帮助用户为UNIX和Windows准备装入和卸载作业(它是一个图形用户界面,可以用来设置H

38、PL的参数)ü Onpload实用程序的功能是在数据库和存储设备之间转换、过滤和移动数据,使用onpload数据库中的信息来运行装入和卸载并转换数据以及在装入过程中记录有关不符合装入条件的数据记录信息4.3.7 onpladml 简介ü 可以从命令行使用onpload实用程序来创建、修改和删除HPL对象ü HPL对象包括项目、作业、映射、格式、查询、过滤器、设备阵列和机器Ø 创建作业的语法格式-B blocksize 设置磁带I/O块大小(以字节为单位)-d device 设置设备名称,例如文件、设备阵列、磁带或管道-D database 包含要装入或卸载的信息的目标数据库的名称Job 从onpload数据库命名装入或卸载作业-M devicesize 磁带设备大小(以千兆字节为单位)-n 设置无转换快速作业-p project 标识存储格式和映射的项目-S server 设置onpload数据库服务器-t table 要装入或卸载的表的名称-T target 数据将下载到其中的目标服务器的名称Ø 设置运行方式a 将数据源视为设备阵列c 将当时设置为高级方式(如果未设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论