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

下载本文档

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

文档简介

1、IBM Informix Dynamic Server (IDS) IDS 数据装载、卸载技术 CSDL 议程unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternal table议程un load/loadunonload/onloadDbloaddbexport/dbimportHPLExternal tableunload/load 语法unloadloadUNLOAD TO DELIMITER delimiter SELECT Statement; 可以为全路径或者相对路径文件名;DELIMITER选项,定义数据列分隔符,默

2、认为|;SELECT 项为SQL子句;LOAD FROM DELIMITER delimiter INSERT INTO Table Name | Synonym Name| View Name (column); 可以为全路径或者相对路径文件名;DELIMITER选项,定义数据列分隔符,默认为|;Column 选项,默认为数据库表的字段的顺序, 注意要与文件中数据列顺序保持一致;unload/load 迁移步骤导出导入准备充足的磁盘空间; 采用unload工具卸载表数据;使用dbschema 工具卸载表的数据模式,生成建表SQL语句;磁盘数据文件及数据模式SQL语句移到目的主机上; 根据需要

3、编辑生成的数据模式SQL语句,并创建空表; 采用load工具将的数据文件装载至数据库中;unload/load 操作内容卸载内容Unload 只卸载迁移表的数据,不包含表数据模式及索引数据。SELECT子句的灵活方式,导出的数据可以来自一个表或者多个表。卸载粒度unload 卸载粒度包括部分字段或全部字段,部分记录或全表记录,是迁移工具中粒度最小的,也是该工具灵活方便的原因之一输出结果Unload 输出以分隔符分隔各字段的 ASCII 文件。分隔符可在卸载命令 delimiter 选项中显式指定导入数据导入到指定的表unload/load 锁情况卸载表的锁定状态Unload :1.在数据库非日

4、志状态下或脏读隔离级别下,可卸载表数据,即使迁移表被独占。 2.在日志数据库以非脏读隔离级卸载独占的表时,返回锁冲突错误。 3.对卸载表的加锁情况:在非日志数据库、或脏读、或提交读隔离级别下,对卸载表不锁定;在日志数据库中,以游标稳定读、重复读隔离级别卸载表,对表记录不同数据集加共享锁。 装载时对表的锁定状况load :1.在日志数据库中,对装载表加排他锁。锁定粒度缺省情况下为行锁或页锁(建表时确定)。当装载数据量较大时,可显示将锁模式更改为表级锁。在装载过程中不能对表进行访问。 2.在非日志数据库中,对装载表不加锁,对装载成功的记录可随时访问。 数据库日志状态Unload/load 装卸载不

5、受数据库日志状态的限制。unload/load 锁情况Load支持事务并发load数据1.通过事务控制数据的装载过程,失败后可以回滚本次装载的记录;begin work; load from insert into tablename;commit work; 2.默认情况下,load把装载过程分成多个事务,当失败时回滚最后 一个子事务,已经导入的记录不能自动回滚。T1,Begin work;Load from t_1.unl insert into t;Commit work;T2,Begin work;Load from t_2.unl insert into t;Commit work;

6、unload/load 如何提高装载性能提高 unload/load 性能的技巧 1去掉数据库(表)日志,提高 load 速度取掉目的表级日志 ALTER TABLE TABNAME TYPE(RAW);采用 LOAD 工具装载增加目的表表级日志 ALTER TABLE TABNAME TYPE(STANDARD);2采用多进程,加速 unload/load 卸装速度将需要装卸的多张表分配到不同的进程中并发装卸,可减少整体装卸载时间; 将海量表分配到多个进程中并发卸装,可减少海量表的卸载时间 采用多进程装载海量表,需要特别注意锁溢出与长事务的出现3去掉参照性约束及索引,加速 load 装载速度

7、在装载前先删除表索引及参照性约束,在装载完毕后重新创建。unload/load 应用场景最小操作对象为表导出导入单个表的数据unload输出的文件是ASICC文件可以导入到外部应用进行使用,如EXCEL重建表的模式对 dbschem 卸出的 SQL 语句进行编辑,可改变:表的字段名、约束、权限、表名、封锁模式、初始 EXTENTS、后续 EXTENTS、索引名、分片信息等。不同数据页重新装载数据跨不同平台由于采用文本文件,可以在多个不同操作系统平台,不同数据库版本之间进行数据的迁移议程unload/loadunonload/onloaddbloaddbexport/dbimportHPLExt

8、ernal tableunonload/onload 语法unonloadonloadunonload/onload 迁移步骤导出导入准备磁带,若采用磁盘文件方式,则准备充足的磁盘空间并创建一用于存放卸载数据的空文件。 采用onunload卸载表,结果存放在磁带或磁盘文件中。 磁带或磁盘文件移到目的主机上。 去掉目的数据库的日志。 采用onload创建表结构、装载表数据及索引数据。 目的数据库恢复日志。 unonload/onload 操作内容卸载内容Onunload 卸载迁移表数据模式、数据页、索引页信息。卸载粒度Onunload 卸载粒度为数据库级或表级。输出结果Ononload 输出为二

9、进制数据文件unonload/onload 锁情况卸载表的锁定状态Unonload :不能对加有独占锁的表进行卸载,包括任意粒度的锁定:表级锁、行锁、页锁。 卸载时对卸载表加表级共享锁。 装载时对表的锁定状况onload :对装载表加互斥锁。数据库日志状态onload 要求数据库必须无日志unonload/onload 应用场景最小操作对象为表包括表的索引等输出的文件为二进制格式不需重建表的模式由于导出导入过程,不可以对表模式及数据进行调整,只能适应于表及数据的快速迁移。相同数据页大小议程unload/loadunonload/onloaddbloaddbexport/dbimportHPLE

10、xternal tabledbload dbloadUsage: dbload -d dbname -c cfilname -l logfile -e errnum -n nnum -i inum -s -p -r | -k -X -d 数据库名 -c 命令文件名(也叫控制文件名) -l 保存导入过程中失败的记录 -e 导入失败多少条记录后退出 -s 仅检查语法,不真正执行任务 -n 批量提交记录数定义 -p 失败情况:提交或者放弃 -i 从文件第几行开始,默认为第一行记录 -r 导入过程对表不加排他锁 -X 识别16进制数据 -k 导入过程对表加排他锁dbload命令文件 DELIMITER

11、 | nfields INSERT INTO tablename (column) values (f01,f02,) 定义输入文件名| 分隔符号,这里为“|”,可以定义为其他的符号nfields 定义每行记录的列数tablename 定义导入的目的表(column) values 为可选项 f01为文件的第一列,依次类推举例说明导入说明数据库名:demodb控制文件名:load_tab.ctl错误日志文件名:error.log每次提交的数据条数:100000数据文件名:tab.unl数据字段分隔符: “”每行数据的字段数据: 14要插入的数据表名:tab应用命令如下:dbload -d de

12、modb -c load_tab.ctl -l error.log -n 100000;控制文件Load_tab.ctl 内容: -file “tab.unl delimiter | 14 ;insert into tab;dbload优点由于有容错能力,可以用来重复导入数据,已有记录保留不变,只增加新增记录可以指定分批提交记录数,从而能有效处理大数据量的表的导入对导入失败数据进行记录到指定文件中,可以帮助使用者快速找到有问题的记录信息可以指定文件记录开始行信息通过命令文件,灵活定义导入文件数据的格式议程unload/loadunonload/onloaddbloaddbexport/dbim

13、portHPLExternal tabledbexportdbexportdbexport -X -c -q -d -ss -o | -t -b -s -f 其中主要选项说明如下:-c 如果没有发生致命错误,则输出全部信息-d 仅输出blob描述符,不输出blob数据-q 在标准输出设备上不显示错误信息,警告和所生成的SQL数据定义语句database 指定卸出的数据库名-o directory 命名存储ASCII数据文件和模式文件的磁盘目录-t tapedevice 指定存储ASCII数据文件和模式文件的磁带设备路径-b blocksize 指定磁带设备块大小(单位:KB)-s tapesi

14、ze 指定磁带所能存储的数据总量(单位:KB)-f sql-command-file 指定存于磁盘上的模式文件dbimportdbimportdbimport实用程序的语法:-c 指示dbimport在没有发生致命错误的情况下完成装入工作。-q 指示在标准输出设备上不显示错误信息和警告。输入文件位置选项:-i 指定存储ASCII文件和模式文件的磁盘目录,以便dbimport查找。-t 指定含有ASCII文件和模式文件的磁带设备名。-b 指定磁带设备块大小。block以KB为单位,该值必须能为所使用的设备接受。-s 指定磁带的最大数据存储量。-f 指定磁盘上模式文件的路径名,以便dbimport

15、查找模式文件,并以此为输入建立数据库。建库选项:-d 指定用来存储新建数据库的OnLine数据库空间(dbspace)。如果没有使用-d选项指定dbspace,则数据库缺省建立在根dbspace(rootdbs)中。-l 如果没有使用buffered参数,为装入的数据库建立无缓冲事务日志;如果使用了buffered参数,为装入的数据库建立有缓冲事务日志。-l选项等价于CREATEDATABASE语句的WITH LOG字句。如果没有使用-l选项,新建数据库不带日志。-ansi 为装入的数据库建立ANSI方式兼容的事务日志。举例说明1、导出,首先创建导出一个目录,示例中在/data/目录下创建db

16、name的一个文件夹 dbexport dbname -c -ss -o /data/dbname2、导出完成后,在dbname目录下生成一个dbname.exp的目录,找到该目录下的dbname.sql模式脚本文件,需要利用工具(如sqleditor)来验证一下脚本的语法的正确性(导出的脚本可能存在语法上的错误),需要加以修改纠正。3、导入,在导入之前,需要按照存储情况先划分好DBSPACE dbimport dbname -i /data/dbname -c -l buffered -d default_dbspacename4、导入完成后,进行数据库级别的统计更新 update stat

17、istics ;议程unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternal tableonpladm create job jobname -d devicename -D databasedb -t tabname fluJob NameDevice nameDatabase nameTable nameJob typeusage: onpladm create job -p -d -D -t -flc|Nuadp -z | -n -T -S -M -B where, -p project name -d device nam

18、e, further qualified by flags -D database name -t table name -f flags, l means load job, default will be both load and unload c means runmode DELUXE with replication, default will be EXPRESS runmode N means runmode DELUXE without replication, default will be EXPRESS runmode u means unload job a mean

19、s device is a device array, default will be file d means device is a tape p means device is a pipe command -z type of format to be used, default is Delimited type D means DELIMITED_FORMAT FI means FAST_FORMAT FA means FIXED_ASCII_FORMAT FB means FIXED_BINARY_FORMAT C means COBOL_FORMAT CB means COBO

20、L_BYTE_FORMAT -n no-conversion fast-job -T Target server, where load/unload is to be done -S Onpload server containing the onpload database -M device size, if device is a tape -B block size, if device is a tape确定表名,定义HPL卸载/装载数据任务onpladm run job jobname -fu -l unload_logname.log Job NameJob typeLog f

21、ile 进入指定的目录(有足够空间) 运行如下的命令, 进行数据卸载usage: onpladm run job -flu -p -l -S -Z where, -p project name -f flags, l means load job u means unload job -l log , default is std-out -S Onpload server containing the onpload database -Z Write/read to/from tape until end of media卸载数据重命名表,创建新表 - 调整空间分配, 创建索引,增加约束(

22、注意:不要创建触发器)rename table tabname to tabname_old;create table tabname ( colums) extent size 1280000 next size 1280000 lock mode row;Create index .其他索引及约束onpladm run job jobname fl -l load_logname.log 装载数据Job NameJob typeLog file 进入数据卸载所在的目录 运行如下的命令, 进行数据装载usage: onpladm run job -flu -p -l -S -Z where,

23、 -p project name -f flags, l means load job u means unload job -l log , default is std-out -S Onpload server containing the onpload database -Z Write/read to/from tape until end of media后续动作将TAPEDEV数据库参数设置为/dev/null, 执行ontape s L 0进行空备份.若原表上存在触发器的表, 删除原先旧表中的触发器, 在新表上创建同样的触发器drop trigger create trigg

24、er .#删除旧表打开PDQ,执行update statistics对新表进行统计更新议程unload/loadunonload/onloaddbloaddbexport/dbimportHPLExternal tableExternal tableA从导入数据到数据库B多线程机制C性能优异,对于大数据情况,导入性能比HPL性能高2到3倍,性能测试数据见本文档的3节测试数据。External table语法SELECT FROM INSERT INTO SELECT FROM INSERT INTO SELECT FROM 导出数据select from INTO EXTERNAL USING

25、(FORMAT INFORMIX,DATAFILES (DISK:/data/latest/data.unl);External tableSQL示例 A采用sameas(根据已有表结构),包含两个文件情况 create external table external_tablename sameas real_tablename USING (DATAFILES (DISK:/opt/IBM/informix/demo/ex_unl1.unl,DISK:/opt/IBM/informix/demo/ex_unl2.unl), FORMAT DELIMITED, REJECTFILE /opt/IBM/informix/demo/tablename.rej, MAXERRORS 100, DELIMITER |, DELUXE -EXPRESS); External tableSQL示例 B 定义字段create external table external_tablename (a integer,

温馨提示

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

评论

0/150

提交评论