48
Moving to OpenEdge ® 10.1B Change is difficult but moving to OpenEdge isn’t! Tom Harris, Director OpenEdge RDBMS Technology OpenEdge Product Management

İndir

  • Upload
    tess98

  • View
    725

  • Download
    4

Embed Size (px)

Citation preview

Page 1: İndir

Moving to OpenEdge® 10.1B

Change is difficult but moving to OpenEdge isn’t!

Tom Harris, DirectorOpenEdge RDBMS Technology

OpenEdge Product Management

Page 2: İndir

© 2007 Progress Software Corporation2 Moving to OpenEdge

Agenda

General Migration Strategy

• The Fast and Easy Upgrade

• Physical Upgrade Tuning Opportunity

Page 3: İndir

© 2007 Progress Software Corporation3 Moving to OpenEdge

General Migration Strategy

Preparation• Truncate BI, Disable AI, 2PC, and Replication

• Backup Install

• Install OpenEdge

• Don’t need to uninstall V9

Upgrade• Upgrade DB to OpenEdge 10

• Do your backups !!!!

• Recompile/Re-deploy your ABL code

Run your application - no ABL changes (usually)

First detail plan, review plan, test plan THEN execute…

Prepare

Install

Upgrade

Run

Page 4: İndir

© 2007 Progress Software Corporation4 Moving to OpenEdge

Agenda

General Migration Strategy

• The Fast and Easy Upgrade

• Physical Upgrade Tuning Opportunity

Page 5: İndir

© 2007 Progress Software Corporation5 Moving to OpenEdge

Database Server Side Conversion

Preparation• Truncate BI, disable AI, 2PC, Replication (V9)

• Backup database (V9)

• Validate backup

• Store backup away from database

Install OpenEdge 10 on server machine• And everywhere else!

Rebuild and re-deploy application (if need be)• Remote V9 to OpenEdge 10 disallowed

Prepare

Install

Page 6: İndir

© 2007 Progress Software Corporation6 Moving to OpenEdge

Database Conversion Steps

Run conversion utility _proutil <db> -C conv910 –B 512

Conversion runs in 5-minutes or less

Basically just a schema upgrade

Backup your new database Re-start application Run

Page 7: İndir

© 2007 Progress Software Corporation7 Moving to OpenEdge

Done - 5 minutes later

You are now “Good To Go” with OpenEdge

No physical changes to existing user data• Data remains in Type I storage areas

• Data fragmentation exists as before

Optimize physical layout when time permits...

or…

Page 8: İndir

© 2007 Progress Software Corporation8 Moving to OpenEdge

Agenda

General Migration Strategy

• The Fast and Easy Upgrade

• Physical Upgrade Tuning Opportunity

Page 9: İndir

© 2007 Progress Software Corporation9 Moving to OpenEdge

Why Do A Physical Database Change?

Performance, Scalability & Maintenance Take advantage of new features No adverse application effects

• Physical reorg does NOT change the application

• Definitions are abstracted from the language by an internal mapping layer

• Different physical deployments can run with the same compiled r-code

Get your database in good physical shape… Upgrade

Page 10: İndir

© 2007 Progress Software Corporation10 Moving to OpenEdge

Database Physical Change Overview

Preparation (same as before)• Truncate BI, disable AI, backup, validate, install…

Before Physical Reorg• Upgrade database to OpenEdge 10

– conversion utility– prostrct create (a must if changing block size)

Physical Updates (no r-code changes required)• Separate schema from user data• Create new storage areas

– Specify records per block– Specify Type II cluster sizes

Time for a change… a database re-org Reorg

Page 11: İndir

© 2007 Progress Software Corporation11 Moving to OpenEdge

Database Physical Reorg Overview (cont.)

Physical Reorg• Spread data out amongst new areas

• Move indexes

Online options vs offline options• E.g. Database block size changes are offline

After Reorg• Reclaim Unused Space

– Truncate old data area– Delete old data area

Time for a change…

Reclaim

Page 12: İndir

© 2007 Progress Software Corporation12 Moving to OpenEdge

Physical Database Update Options

1. In Place (same database)• Transformation done all at once or over time• Add new storage areas to existing database• Migrate data from old areas to new• Reclaim space from old areas

2. New database• Transformation done in one maintenance window• Dump old data• Create new database• Load into new database• Prodel old database

3. Mix of Option #1 and Option #2 (custom)• Create new database• Move data from old database to new database• Reclaim space by deleting old database

Option 1

Option 2

Option 1+2

Page 13: İndir

© 2007 Progress Software Corporation13 Moving to OpenEdge

Upgrade – An Example of the Steps

Getting started: In-Place Changes

Separate user data from schema

Option 1

Page 14: İndir

© 2007 Progress Software Corporation14 Moving to OpenEdge

Moving schema tables

Separate Schema from user data (in place):

proutil <db> -C mvsch (offline operation)

Schema Area

Old Default Area

Renames existingschema area

Option 1

Page 15: İndir

© 2007 Progress Software Corporation15 Moving to OpenEdge

Moving schema tables

Separate Schema from user data:

proutil <db> -C mvsch (offline operation)

Old Default AreaSchema

Area

Renames existingschema area

Creates newschema area

Moves schemaTables & Indexes

Schema Area

Option 1

Page 16: İndir

© 2007 Progress Software Corporation16 Moving to OpenEdge

Moving schema tables

Separate Schema from user data:

proutil <db> -C mvsch (offline operation)

Old Default AreaSchema

Area

Renames existingschema area

Creates newschema area

Moves schemaTables & Indexes

Schema Area

You move dataTo new areas

User

Area

User

Area

User

Area

User

Area

You truncateOld Default Area

Option 1

Page 17: İndir

© 2007 Progress Software Corporation17 Moving to OpenEdge

Physical Changes:Location, Location, Location

Create .st file with new layout Use Type II Storage Areas

• Tables 64 or 512 block clusters

• Indexes 8 or 64 block clustersd “Cust/Bill Indexes",1;8 /d_array2/myDB_7.d1 f 512000

d “Cust/Bill Indexes",1;8 /d_array2/myDB_7.d2

#

d “Customer Data",16;64 /d_array2/myDB_8.d1 f 1024000

d “Customer Data",16;64 /d_array2/myDB_8.d2#d “Billing Data",32;512 /d_array2/myDB_9.d1 f 1024000 d “Billing Data",32;512 /d_array2/myDB_9.d2

Option 1

Page 18: İndir

© 2007 Progress Software Corporation18 Moving to OpenEdge

Physical Changes

Validate first

prostrct add <db> new.st -validate

Then update

prostrct add <db> new.st

OR:

prostrct addonline <db> new.st

The Structure file format is valid. (12619)

Option 1

Page 19: İndir

© 2007 Progress Software Corporation19 Moving to OpenEdge

Moving Tables and Indexes

Table move and Index move• Online (somewhat)

Dump and Load• With and w/out index rebuild

• Application must be offline (without additional customization)

Suggestion: mix of option #1 and #2• Table move small tables

• D&L everything else

• 1st purge/archive unneeded data

3 Options for Data Movement: Option 1

Page 20: İndir

© 2007 Progress Software Corporation20 Moving to OpenEdge

Option #1: Table/Index Move

Advantages:• Online (with no-lock access)• Dump & load in one step• Schema is automatically updated• No object # changes to deal with• Parallelism

Disadvantages:• Only No-lock accessible during move• Moves but doesn’t “rebuild” indexes• Too slow for large tables• Changes are logged!

– BI growth may be of concern

Option 1

Page 21: İndir

© 2007 Progress Software Corporation21 Moving to OpenEdge

Table Move

proutil <db> -C tablemove[ owner-name . ] table-name table-area[ index-area ]

Move/reorg a table by its primary index Move a table AND its indexes

• Preferred performance

Fast for small tables No object # changes!

Option 1

Page 22: İndir

© 2007 Progress Software Corporation22 Moving to OpenEdge

Index Move

proutil <db> -C idxmove[ owner-name . ] table-name . index-

name

area-name

Move an index from one area to another Does NOT alter/optimize index block layout Fast but does not “rebuild” indexes Online but changes to owning table blocked

Option 1

Page 23: İndir

© 2007 Progress Software Corporation23 Moving to OpenEdge

Upgrade – An Example of the Steps

Getting started: Make a New Database

Separate user data from schema

Option 1

Page 24: İndir

© 2007 Progress Software Corporation24 Moving to OpenEdge

Option #2: New Database - Dump and Load

Textual Data• Data Dump• Data Load• Bulk Load followed by index rebuild

Binary• Binary dump• Binary load

– With index rebuild– Followed by index rebuild

Custom (Textual or raw)• Dump/Load w/triggers• buffer-copy• Export/Import

3 Dump and Load Flavors: Option 2

Page 25: İndir

© 2007 Progress Software Corporation25 Moving to OpenEdge

Dump and Load General Strategy

Create new database structure• Add to existing DB• New database

Run tabanalys Dump table data Data definitions

• Dump• Modify• Load definitions*

Load table data Build indexes (if needed) Backup

If you have the disk space,creating a new db saves time

*If done “in place” the existing tablesmust be delete prior the load(but you knew that already)

Option 2

Page 26: İndir

© 2007 Progress Software Corporation26 Moving to OpenEdge

Dumping the data

Option 2

Page 27: İndir

© 2007 Progress Software Corporation27 Moving to OpenEdge

Using Binary Dump (Fastest)

Advantages:• Fastest and Easy• No 2 GB file size limit• No endian issues• Can choose dump order (by index)• Can dump table data in portions• Multi threaded (10.1B)• Can dump multiple tables concurrently (parallel)

Disadvantages:• Must ensure no table changes between D&L• Not character based

Option 2

Page 28: İndir

© 2007 Progress Software Corporation28 Moving to OpenEdge

Binary Dump Threaded (Fastest)

proutil <db> -C dump <table> <dir> -index <index #>-thread 1 -threadnum <n>-dumpfile <filelist> -Bp 64

-index <n>• Choose index based on read order• -index 0

– Faster dump, slower read– Assumes coming from Type II

-thread indicates threaded dump• # threads automatic (# CPUs) • –threadnum max of # CPUs * 2• Threads only available in multi user mode• Division of labor according to root block

-dumpfile used as input for load

Option 2

Page 29: İndir

© 2007 Progress Software Corporation29 Moving to OpenEdge

Binary Dump Specified

proutil <db> -C dumpspecified <table.field><operator> ‘<value>’ <dir> -preferidx <idx-name>

Switches• table.field MUST be lead participant in index• Valid operators: LT, GE, LE, GT, EQ• -preferidx determines specific index to use• -index, -thread are ignored

Performance• Same as w/2 threads (until 10.1B03)• Inherent max of 2 concurrent dumpers per table (till 10.1B03)

Cautions• Must use an ascending indexes• Output dir must be different!

Option 2

Page 30: İndir

© 2007 Progress Software Corporation30 Moving to OpenEdge

Dictionary Data Dump

Database Admin tool OR: run prodict/dump_d.p(“<table>", “<dir>“, “u1108”). Advantages:

• Fast and Easy• Parallel• No endian issues

Disadvantages:• 2 GB File size limit (10.1B)• Can’t choose dump order• Have to dump entire table• Must ensure no one changes table between D&L

Option 2

Page 31: İndir

© 2007 Progress Software Corporation31 Moving to OpenEdge

Reorganizing Areas/Objects

Data Dump Completed.

Option 2

Page 32: İndir

© 2007 Progress Software Corporation32 Moving to OpenEdge

Dump & Modify data definitions

Use Data Administration tool OR:

run prodict/dump_df.p(“ALL”, “<mydb>.df“, “ ”).

If using bulk load (slowest approach of all):

run prodict/dump_fd.p(“ALL”, “<mydb>.fd”).

Option 2

Page 33: İndir

© 2007 Progress Software Corporation33 Moving to OpenEdge

Dump & Modify Data Definitions

Update .df files• Optionally delete old table

• Change table’s area information

Delete/Drop tables Load Data Definitions

• Data Administration tool

• OR: run prodict/load_df.p(“<mytable>.df").

ADD TABLE "mytable2" AREA “Old Default Area"

DROP Table “mytable2”

ADD TABLE "mytable2" AREA “New Data Area"

Option 2

Page 34: İndir

© 2007 Progress Software Corporation34 Moving to OpenEdge

Alternative Data Definition Modification

Truncate objects for fast move/delete

proutil <db> -C truncate area “Old Default Area”

Warns then deletes data (but NOT schema)

Rebuild/activate empty indexes (if moving)

proutil <db> -C idxbuild inactiveindexes

Move “empty” tables/indexes to new area proutil <db> -C tablemove <table> <area> [ index-area ] No effect on CRC’s

If all data in area dumped… Option 2

Page 35: İndir

© 2007 Progress Software Corporation35 Moving to OpenEdge

Dump Completed. Now We reload

Load the data back in (finally).

Remember to load all data files.

Be sure to validate data loaded.

Option 2

Page 36: İndir

© 2007 Progress Software Corporation36 Moving to OpenEdge

Bulkload (The slowest alternative)

proutil <db> -C bulkload <fd-file> -B 1000 –i –Mf 10

Data input from dictionary or custom data dump• Mentioned here for completeness only

Drawbacks:• 2 GB file limit (10.1B)

• Loads one table at a time (single user)

• Does not insert index entries – Requires index rebuild as separate step

• No advantage over other loads

• Slower than all other loads

Option 2

Page 37: İndir

© 2007 Progress Software Corporation37 Moving to OpenEdge

Dictionary Load

Data Administration Tool OR:

run prodict/load_d.p(“table1", “table1.d").

Data input from dictionary or custom data dump• 2 GB file limit (per load) in 10.1B

Load data in parallel (to separate tables)• Inserts index entries• Index tree not perfect

Performance close to binary load + index rebuild• (when loading multiple tables)

Option 2

Page 38: İndir

© 2007 Progress Software Corporation38 Moving to OpenEdge

Binary Load (The fastest option)

proutil <db> -C load <table>.bd [build]

Load to new or truncated area• Truncated rather than “emptied”

Parallel load to different tables• Same or different areas w/o scatter!

Optionally load with build indexes• Somewhat better performance• Restart db before running (bug)• Suggested not to use online yet

Option 2

Page 39: İndir

© 2007 Progress Software Corporation39 Moving to OpenEdge

Binary Load

proutil <db> -C load <table>.bd

-dumplist <filename>

Dump List File:/usr1/richb/mytable.bd

/usr1/richb/mytable2.bd

/usr1/richb/mytable3.bd

Must load ALL dumps (.db, db2, .db3, …)

From a threaded dump or dumpspecified… Option 2

Page 40: İndir

© 2007 Progress Software Corporation40 Moving to OpenEdge

Tuning the Process

Dump with• –RO, high –B and/or -Bp

• Dump on index w/fewest # blocks (if possible)

Load with• High –B, –r** or –i**

• BIW, 1.5 APW’s per CPU,

• Large BI clusters w/16K BI blocks

• No AI or 2PC

Spread data, BI and temp files across disks / controllers

Tune for high (non-recoverable) activity

** only use -r & -I when complete data recovery possible

Option 2

Page 41: İndir

© 2007 Progress Software Corporation41 Moving to OpenEdge

After the Load

proutil <db> -C idxbuild [ table <table> | area <area>]

Many new idxbuild choices Helpful parameters

• -SG 64 (sort groups)• -SS filename (file containing sort file list)• -TM 32 (merge buffers)• -TB 31 (temp block size)• -B 1000

Run tabanalys• validate # records

Backup your database

Build Indexes (where applicable) Option 2

Page 42: İndir

© 2007 Progress Software Corporation42 Moving to OpenEdge

Reclaim space

proutil <db> -C truncate area <area-name>

Warns then deletes data (but area !emptied)

proutil <db> -C truncate area

Only truncates “empty” areas (but all of them)

Area logically truncated (option #2) Extents can be deleted

prostrct remove <db> d <old-area-name>

For areas that were emptied… Option 2Option 1 or

DB Ready!

Page 43: İndir

© 2007 Progress Software Corporation43 Moving to OpenEdge

Agenda

General Migration Strategy

• The Fast and Easy Upgrade

• Physical Upgrade Tuning Opportunity

Page 44: İndir

© 2007 Progress Software Corporation44 Moving to OpenEdge

Tuning Opportunity

-Bt (temp tables are Type II storage areas) 10.1B changes default Temp table block size

• From 1K to 4K

• –tmpbsize 1 restores old behavior

Monitor BI Cluster Size • BI notes are bigger in OpenEdge 10

BI grow Run UPDATE STATISTICS for SQL Run

Page 45: İndir

© 2007 Progress Software Corporation45 Moving to OpenEdge

In Summary

Conversion is quick• Physical Upgrade at your leisure

• Lots of physical re-org options

Rollout is simple 10,000 customers on OpenEdge

Page 46: İndir

© 2007 Progress Software Corporation46 Moving to OpenEdge

Questions?

Page 47: İndir

© 2007 Progress Software Corporation47 Moving to OpenEdge

Thank you foryour time

Page 48: İndir

© 2007 Progress Software Corporation48 Moving to OpenEdge