Copy Data on DB2 - emphasis on speed

 3 Replies
 0 Subscribed to this topic
 27 Subscribed to this forum
Sort:
Author
Messages
Phil Romov
Veteran Member
Posts: 44
Veteran Member
    This is in light of the excellent post - https://www.lawsonguru.co...to-test-environment/


    We are on DB2 and we currently have an expsysdb/impexp script in place.  It takes a couple hours all told.


    I've been trying to reduce the time, so all my questions here have that in mind - how to make the data copy go faster.


    I have two leads:


    1) db2move with the COPY option


    unfortunately this takes about as much time as expsysdb/impexp.  Is this typical?  I just did a straight LOAD_ONLY mode, haven't tried dropping data/indexes manually yet...  Do you know of any way to speeds this up?


    2) db2 load from cursor (I haven't tried nicknames, do not know which wrapper to use for the create server, and all docs say cursors are faster than nicknames anyway)


    this is the most promising.  It takes about 4 minutes to copy gltrans, which is almost half of our data right there.  So, you would think I can transfer all my data in 10 minutes or so, compared to db2move's 2 hours?  That's what I thought, and I was wrong.


    Unfortunately, regardless of table size, every db2 load from cursor has ~10 seconds of overhead, even for empty tables.  (I'm guessing this has to do with logging in or re-setting up the cursor somehow...) so with ~1700 tables, even if they're all empty, I'm looking at 4+ hours


    Again, my question is, can I make any of this work faster?  Are these typical results?  Do you have any other leads to make data replication faster on DB2?  Perhaps some fee tools?


    Thanks,
    Phil
    Phil Romov
    Veteran Member
    Posts: 44
    Veteran Member
      For reference, here's my db2move command:

      db2move TEST90 COPY \
              -tf tables.txt \
              -co TARGET_DB DEV90 USER db2lawt USING password MODE LOAD_ONLY \
                      SCHEMA_MAP "((TEST90,DEV90))" \

      Here's my db2 cursor commands:

      db2 "DECLARE C1 CURSOR DATABASE TEST90 user db2lawt using password FOR SELECT * FROM TEST90.gltrans"
      db2 "LOAD FROM C1 OF CURSOR MESSAGES /tmp/messages.msg REPLACE INTO DEV90.gltrans NONRECOVERABLE"

      John Henley
      Posts: 3353
        Are the databases on the same server? Same Lawson environment?
        Thanks for using the LawsonGuru.com forums!
        John
        Phil Romov
        Veteran Member
        Posts: 44
        Veteran Member
          John, in the above referenced case they are, in the production-test case they are not.

          However, we have DB2 Connect, and I have catalogued the node/remote database successfully, and was able to use the cursor method to transfer gltrans from remote server in the same amount of time.

          Haven't tried db2move yet (as it takes 2 hours) going to try it later today

          edit: db2move takes the same amount of time as well (copying from remotely catalogued db compared to local db)