Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135904
  • 博文数量: 38
  • 博客积分: 2431
  • 博客等级: 少校
  • 技术积分: 470
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-20 09:49
文章分类

全部博文(38)

文章存档

2011年(2)

2010年(14)

2009年(10)

2008年(12)

我的朋友

分类: DB2/Informix

2008-12-03 16:13:44

    HPL装入分快速方式(express)和高级方式(deluxe),使用快速方式是使用raw表,不需要写逻辑日志(或者说很少日志),速度较快;使用高级方式时,需更新索引、执行约束检查和评估触发器,需要写逻辑日志。

一、单文件导入导出
以crbt_userdepot 表为例测试,数据量为40万条记录

1、 创建任务

onpladm create job crbt_job1 –d crbt_userdepot.unl –D testdb –t crbt_userdepot –flu

表示建一个名为 crbt_job1 ,设备为crbt_userdeopt.unl(默认为文件方式),相关库为testdb ,相关表为crbt_userdepot,相关操作为lu(l为导入,u为导出)。

注:创建任务时,-f参数后加c为使用deluxe且支持复制,后加N为使用deluxe不复制。默认为加c或者N时使用express。
onpladm create job crbt_job1 -d crbt_userdepot.unl -D testdb -t crbt_userdepot -fluc 

2、  执行导出任务

onpladm run job crbt_job1 –fu

表示执行任务crbt_job1中的导出。完成操作后将在当前目录生成crbt_userdepot.unl文件,里面包含数据库表crbt_userdepot里所有的数据。
 

3、  保存数据库表结构并做相应的修改,删除表

dbschema –d testdb –t crbt_userdepot –ss > crbt_userdepot.sql

 

4、  重建数据库表结构

dbaccess testdb crbt_userdepot.sql

 

5、  执行导入任务

onpladm run job crbt_job1 –fl

表示执行任务crbt_job1中的导入。完成后将提示crbt_userdepot表处于只读模式,需要进行0级备份才能转换成正常表。
 
二、使用设备以支持多文件

1、  建立device arrays

仍以crbt_userdepot表为例,此次将建立含4个文件的device array。

文件:crbt_dev.devarr

BEGIN OBJECT DEVICEARRAY crbt_load

        BEGIN SEQUENCE
                TYPE                    FILE

                FILE                    "/opt/informix/tmp/onpladm/crbt_1.unl"

                TAPEBLOCKSIZE           0
                TAPEDEVICESIZE          0
                PIPECOMMAND
        END SEQUENCE
 
        BEGIN SEQUENCE
                TYPE                    FILE

                FILE                    "/opt/informix/tmp/onpladm/crbt_2.unl"

                TAPEBLOCKSIZE           0
                TAPEDEVICESIZE          0
                PIPECOMMAND
        END SEQUENCE
 
        BEGIN SEQUENCE
                TYPE                    FILE

                FILE                    "/opt/informix/tmp/onpladm/crbt_3.unl"

                TAPEBLOCKSIZE           0
                TAPEDEVICESIZE          0
                PIPECOMMAND
        END SEQUENCE
 
        BEGIN SEQUENCE
                TYPE                    FILE

                FILE                    "/opt/informix/tmp/onpladm/crbt_4.unl"

                TAPEBLOCKSIZE           0
                TAPEDEVICESIZE          0
                PIPECOMMAND
        END SEQUENCE
END OBJECT
 
其中每个SEQUENCE中的TYPE中可以是FILE/PIPE等,此处使用FILE,则需指定FILE中的参数,TAPEBLOCKSIZE/TAPEDEVICESIZE指磁带的块大小/磁带容量大小,PIPECOMMAND指当TYPE为PIPE时PIPE命令。
 

执行以下命令以建立 crbt_load 设备

onpladm create object –F crbt_dev.devarr
 

2、  建立导入导出任务

onpladm create job crbt_job2 –d crbt_load –D testdb –t crbt_userdepot –flua [-n]

此处参数为-flua,比上面加了a,其中a表示此时的设备为device array,不加表示为单个文件。由于默认建立的是导入和导出,故此处可以用-fa来代替。-n表示不转换格式的快速导入导出,适用于同系统上的操作。
 

3、  执行导出任务

onpladm run job crbt_job2 –fu

完成后可以在指定目录下生成的文件,上面是/opt/informix/tmp/onpladm/,有crbt_[1-4].unl 4个文件,由于没有使用-n,故这里是格式化后的数据,跟unload导出的格式相同。
 

4、  删除表,并重建表结构

 
5、执行导入任务

onpladm run job crbt_job2 –fl

同样,执行完成后,需要进行0级备份以将表转成正常表。在完成这些操作后不要忘记对于进行update statistics操作。
三、显示/删除任务、设备等

1、  显示任务、设备等

onpladm list job

onpladm list device

2、  删除任务、设备等

onpladm delete job crbt_job2 –fl

onpladm delete job crbt_job2 –fu

onpladm delete device crbt_load
 
可以从onpladm的使用帮助中获取更多的信息

usage : onpladm

        create job {options}
        create map {options}

        create project {options}

        create object {options}
        delete job {options}
        delete map {options}

        delete format {options}

        delete query {options}

        delete filter {options}

        delete device {options}

        delete machine {options}

        delete project {options}

        modify object {options}
        describe job {options}
        describe map {options}

        describe format {options}

        describe query {options}

        describe filter {options}

        describe device {options}

        describe machine {options}

        describe project {options}

        list job {options}
        list map {options}
        list format {options}
        list query {options}
        list filter {options}
        list device {options}
        list machine {options}
        list project {options}
        list defaults {options}
        run job {options}
        run project {options}
        configure defaults {options}
阅读(1081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~