Informix数据装卸技术_第1页
Informix数据装卸技术_第2页
Informix数据装卸技术_第3页
Informix数据装卸技术_第4页
Informix数据装卸技术_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

IBMInformixDynamicServer(IDS),IDS数据装载、卸载技术,CSDL孙国荣,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,议程,unload/loadunonload/onloadDbloaddbexport/dbimportHPLExternaltable,unload/load语法,unloadload,UNLOADTOfilenameDELIMITERdelimiterSELECTStatement;filename可以为全路径或者相对路径文件名;DELIMITER选项,定义数据列分隔符,默认为|;SELECT项为SQL子句;,LOADFROMfilenameDELIMITERdelimiterINSERTINTOTableName|SynonymName|ViewName(column);filename可以为全路径或者相对路径文件名;DELIMITER选项,定义数据列分隔符,默认为|;Column选项,默认为数据库表的字段的顺序,注意要与文件中数据列顺序保持一致;,unload/load迁移步骤,导出导入,准备充足的磁盘空间;采用unload工具卸载表数据;使用dbschema工具卸载表的数据模式,生成建表SQL语句;磁盘数据文件及数据模式SQL语句移到目的主机上;,根据需要编辑生成的数据模式SQL语句,并创建空表;采用load工具将的数据文件装载至数据库中;,unload/load操作内容,卸载内容Unload只卸载迁移表的数据,不包含表数据模式及索引数据。SELECT子句的灵活方式,导出的数据可以来自一个表或者多个表。卸载粒度unload卸载粒度包括部分字段或全部字段,部分记录或全表记录,是迁移工具中粒度最小的,也是该工具灵活方便的原因之一输出结果Unload输出以分隔符分隔各字段的ASCII文件。分隔符可在卸载命令delimiter选项中显式指定导入数据导入到指定的表,unload/load锁情况,卸载表的锁定状态Unload:1.在数据库非日志状态下或脏读隔离级别下,可卸载表数据,即使迁移表被独占。2.在日志数据库以非脏读隔离级卸载独占的表时,返回锁冲突错误。3.对卸载表的加锁情况:在非日志数据库、或脏读、或提交读隔离级别下,对卸载表不锁定;在日志数据库中,以游标稳定读、重复读隔离级别卸载表,对表记录不同数据集加共享锁。装载时对表的锁定状况load:1.在日志数据库中,对装载表加排他锁。锁定粒度缺省情况下为行锁或页锁(建表时确定)。当装载数据量较大时,可显示将锁模式更改为表级锁。在装载过程中不能对表进行访问。2.在非日志数据库中,对装载表不加锁,对装载成功的记录可随时访问。数据库日志状态Unload/load装卸载不受数据库日志状态的限制。,unload/load锁情况,Load支持事务并发load数据,1.通过事务控制数据的装载过程,失败后可以回滚本次装载的记录;beginwork;loadfromfilenameinsertintotablename;commitwork;2.默认情况下,load把装载过程分成多个事务,当失败时回滚最后一个子事务,已经导入的记录不能自动回滚。,T1,Beginwork;Loadfromt_1.unlinsertintot;Commitwork;T2,Beginwork;Loadfromt_2.unlinsertintot;Commitwork;,unload/load如何提高装载性能,提高unload/load性能的技巧1去掉数据库(表)日志,提高load速度取掉目的表级日志ALTERTABLETABNAMETYPE(RAW);采用LOAD工具装载增加目的表表级日志ALTERTABLETABNAMETYPE(STANDARD);2采用多进程,加速unload/load卸装速度将需要装卸的多张表分配到不同的进程中并发装卸,可减少整体装卸载时间;将海量表分配到多个进程中并发卸装,可减少海量表的卸载时间采用多进程装载海量表,需要特别注意锁溢出与长事务的出现3去掉参照性约束及索引,加速load装载速度在装载前先删除表索引及参照性约束,在装载完毕后重新创建。,unload/load应用场景,最小操作对象为表导出导入单个表的数据unload输出的文件是ASICC文件可以导入到外部应用进行使用,如EXCEL重建表的模式对dbschem卸出的SQL语句进行编辑,可改变:表的字段名、约束、权限、表名、封锁模式、初始EXTENTS、后续EXTENTS、索引名、分片信息等。不同数据页重新装载数据跨不同平台由于采用文本文件,可以在多个不同操作系统平台,不同数据库版本之间进行数据的迁移,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,unonload/onload语法,unonloadonload,unonload/onload迁移步骤,导出导入,准备磁带,若采用磁盘文件方式,则准备充足的磁盘空间并创建一用于存放卸载数据的空文件。采用onunload卸载表,结果存放在磁带或磁盘文件中。磁带或磁盘文件移到目的主机上。,去掉目的数据库的日志。采用onload创建表结构、装载表数据及索引数据。目的数据库恢复日志。,unonload/onload操作内容,卸载内容Onunload卸载迁移表数据模式、数据页、索引页信息。卸载粒度Onunload卸载粒度为数据库级或表级。输出结果Ononload输出为二进制数据文件,unonload/onload锁情况,卸载表的锁定状态Unonload:不能对加有独占锁的表进行卸载,包括任意粒度的锁定:表级锁、行锁、页锁。卸载时对卸载表加表级共享锁。装载时对表的锁定状况onload:对装载表加互斥锁。数据库日志状态onload要求数据库必须无日志,unonload/onload应用场景,最小操作对象为表包括表的索引等输出的文件为二进制格式不需重建表的模式由于导出导入过程,不可以对表模式及数据进行调整,只能适应于表及数据的快速迁移。相同数据页大小,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,dbload,dbload,Usage:dbload-ddbname-ccfilname-llogfile-eerrnum-nnnum-iinum-s-p-r|-k-X-d数据库名-c命令文件名(也叫控制文件名)-l保存导入过程中失败的记录-e导入失败多少条记录后退出-s仅检查语法,不真正执行任务-n批量提交记录数定义-p失败情况:提交或者放弃-i从文件第几行开始,默认为第一行记录-r导入过程对表不加排他锁-X识别16进制数据-k导入过程对表加排他锁,dbload,命令文件FILEfilenameDELIMITER|nfieldsINSERTINTOtablename(column)values(f01,f02,)Filename定义输入文件名|分隔符号,这里为“|”,可以定义为其他的符号nfields定义每行记录的列数tablename定义导入的目的表(column)values为可选项f01为文件的第一列,依次类推,举例说明,导入说明数据库名:demodb控制文件名:load_tab.ctl错误日志文件名:error.log每次提交的数据条数:100000数据文件名:tab.unl数据字段分隔符:“”每行数据的字段数据:14要插入的数据表名:tab应用命令如下:dbload-ddemodb-cload_tab.ctl-lerror.log-n100000;控制文件Load_tab.ctl内容:-file“tab.unldelimiter|14;insertintotab;,dbload优点,由于有容错能力,可以用来重复导入数据,已有记录保留不变,只增加新增记录可以指定分批提交记录数,从而能有效处理大数据量的表的导入对导入失败数据进行记录到指定文件中,可以帮助使用者快速找到有问题的记录信息可以指定文件记录开始行信息通过命令文件,灵活定义导入文件数据的格式,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,dbexport,dbexport,dbexport-X-c-q-d-ss-o|-t-b-s-f其中主要选项说明如下:-c如果没有发生致命错误,则输出全部信息-d仅输出blob描述符,不输出blob数据-q在标准输出设备上不显示错误信息,警告和所生成的SQL数据定义语句database指定卸出的数据库名-odirectory命名存储ASCII数据文件和模式文件的磁盘目录-ttapedevice指定存储ASCII数据文件和模式文件的磁带设备路径-bblocksize指定磁带设备块大小(单位:KB)-stapesize指定磁带所能存储的数据总量(单位:KB)-fsql-command-file指定存于磁盘上的模式文件,dbimport,dbimport,dbimport实用程序的语法:-c指示dbimport在没有发生致命错误的情况下完成装入工作。-q指示在标准输出设备上不显示错误信息和警告。输入文件位置选项:-i指定存储ASCII文件和模式文件的磁盘目录,以便dbimport查找。-t指定含有ASCII文件和模式文件的磁带设备名。-b指定磁带设备块大小。block以KB为单位,该值必须能为所使用的设备接受。-s指定磁带的最大数据存储量。-f指定磁盘上模式文件的路径名,以便dbimport查找模式文件,并以此为输入建立数据库。建库选项:-d指定用来存储新建数据库的OnLine数据库空间(dbspace)。如果没有使用-d选项指定dbspace,则数据库缺省建立在根dbspace(rootdbs)中。-l如果没有使用buffered参数,为装入的数据库建立无缓冲事务日志;如果使用了buffered参数,为装入的数据库建立有缓冲事务日志。-l选项等价于CREATEDATABASE语句的WITHLOG字句。如果没有使用-l选项,新建数据库不带日志。-ansi为装入的数据库建立ANSI方式兼容的事务日志。,举例说明,1、导出,首先创建导出一个目录,示例中在/data/目录下创建dbname的一个文件夹dbexportdbname-c-ss-o/data/dbname2、导出完成后,在dbname目录下生成一个dbname.exp的目录,找到该目录下的dbname.sql模式脚本文件,需要利用工具(如sqleditor)来验证一下脚本的语法的正确性(导出的脚本可能存在语法上的错误),需要加以修改纠正。3、导入,在导入之前,需要按照存储情况先划分好DBSPACEdbimportdbname-i/data/dbname-c-lbuffered-ddefault_dbspacename4、导入完成后,进行数据库级别的统计更新updatestatistics;,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,onpladmcreatejobjobname-ddevicename-Ddatabasedb-ttabnameflu,JobName,Devicename,Databasename,Tablename,Jobtype,usage:onpladmcreatejob-p-d-D-t-flc|Nuadp-z|-n-T-S-M-Bwhere,-pprojectname-ddevicename,furtherqualifiedbyflags-Ddatabasename-ttablename-fflags,lmeansloadjob,defaultwillbebothloadandunloadcmeansrunmodeDELUXEwithreplication,defaultwillbeEXPRESSrunmodeNmeansrunmodeDELUXEwithoutreplication,defaultwillbeEXPRESSrunmodeumeansunloadjobameansdeviceisadevicearray,defaultwillbefiledmeansdeviceisatapepmeansdeviceisapipecommand-ztypeofformattobeused,defaultisDelimitedtypeDmeansDELIMITED_FORMATFImeansFAST_FORMATFAmeansFIXED_ASCII_FORMATFBmeansFIXED_BINARY_FORMATCmeansCOBOL_FORMATCBmeansCOBOL_BYTE_FORMAT-nno-conversionfast-job-TTargetserver,whereload/unloadistobedone-SOnploadservercontainingtheonploaddatabase-Mdevicesize,ifdeviceisatape-Bblocksize,ifdeviceisatape,确定表名,定义HPL卸载/装载数据任务,onpladmrunjobjobname-fu-lunload_logname.log,JobName,Jobtype,Logfile,进入指定的目录(有足够空间)运行如下的命令,进行数据卸载,usage:onpladmrunjob-flu-p-l-S-Zwhere,-pprojectname-fflags,lmeansloadjobumeansunloadjob-llogfilename,defaultisstd-out-SOnploadservercontainingtheonploaddatabase-ZWrite/readto/fromtapeuntilendofmedia,卸载数据,重命名表,创建新表-调整空间分配,创建索引,增加约束(注意:不要创建触发器),renametabletabnametotabname_old;createtabletabname(colums)extentsize1280000nextsize1280000lockmoderow;Createindex.其他索引及约束,onpladmrunjobjobnamefl-lload_logname.log,装载数据,JobName,Jobtype,Logfile,进入数据卸载所在的目录运行如下的命令,进行数据装载,usage:onpladmrunjob-flu-p-l-S-Zwhere,-pprojectname-fflags,lmeansloadjobumeansunloadjob-llogfilename,defaultisstd-out-SOnploadservercontainingtheonploaddatabase-ZWrite/readto/fromtapeuntilendofmedia,后续动作,将TAPEDEV数据库参数设置为/dev/null,执行ontapesL0进行空备份.若原表上存在触发器的表,删除原先旧表中的触发器,在新表上创建同样的触发器droptriggercreatetrigger.#删除旧表打开PDQ,执行updatestatistics对新表进行统计更新,议程,unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternaltable,Externaltable,A从filesystem导入数据到数据库B多线程机制C性能优异,对于大数据情况,导入性能比HPL性能高2到3倍,性能测试数据见本文档的3节测试数据。,Externaltable,语法,SELECTFROMINSERTINTOSELECTFROMINSERTINTOSELECTFROM导出数据selectfromINTOEXTERNALUSING(FORMATINFORMIX,DATAFILES(DISK:/data/latest/data.unl);,Externaltable,SQL示例A采用sameas(根据已有表结构),包含两个文件情况createexternaltableexternal_tablenamesameasreal_tablenameUSING(DATAFILES(DISK:/opt/IBM/informix/demo/ex_unl1.unl,DISK:/opt/IBM/informix/demo/ex_unl2.unl),FORMATDELIMITED,REJECTFILE/opt/IBM/informix/demo/tablename.rej,MAXERRORS100,DELIMITER|,DELUXE-EXPRESS);,Externaltable,SQL示例B定义字段createexternaltableexternal_tablename(ainteger,bint

温馨提示

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

最新文档

评论

0/150

提交评论