Infor Applied Innovation

« | Main | »

Landmark Performance: Splitting database LOBs

August 12, 2013

Using the dbsplitlobs command for Landmark 10.0.4.0

What is a LOB? 

A LOB is an abbreviation for Large Object data utilized by Landmark business objects. Large Object data storage is used by Landmark to efficiently store large amounts of data in database tables; an example is binary documents such as resumes or image files.

What is a Split LOB? 

Split LOBs is ‘splitting off’ the LOB data from business class data tables to a separate (corresponding) table to improve performance during database upgrades and reorganizations.

The Split LOB storage configuration feature was added in Landmark 10.0.0 to improve performance during database upgrades and reorganizations (dbupgrade/dbreorg) by separating any LOBs of a business class to a corresponding table, aptly named S$<fileprefix>, to eliminate the need to copy LOBs during upgrade processing.  Split LOB storage is the default for new installations, but pre-existing systems were left with their LOBs embedded in their base tables.  Although these systems can convert to split LOB storage using utility commands changeda/buildda/dbreorg, the database reorganization replicates all the LOBs during the conversion— a very time consuming process.

What is the dbsplitlobs utility?

The dbsplitlobs utility provides a way to convert to Split LOB storage without the time-consuming LOB data replication. The dbsplitlobs utility was introduced in Landmark 10.0.4 to help convert a data area to Split LOB storage in an optimized way which preserves the LOBs without moving any of the LOBs in the process.  The use of Split LOB storage can dramatically improve upgrade processing performance by eliminating the need to copy LOB data.

How to use the dbsplitlobs utility

  • A changeda command followed by buildda is required as set-up to use dbsplitlobs. Using dbsplitlobs can be thought of as a substitute for dbreorg under these specific circumstances.  dbsplitlobs will refuse to execute if pending changes include anything other than moving one or more business classes from splitlobstorage=no to splitlobstorage=yes. dbupgrade or dbreorg are required under other scenarios.
  • Execution of dbsplitlobs can be interrupted and restarted.  If dbsplitlobs is not run to completion, dbreorg can be used to complete the conversion process.
  • The time required to convert a business class to splitlob storage is roughly equivalent to the time it takes to run dbexport -l -o . dataarea businessclass (export all non-LOB data), plus the time it takes to run dbmaint -UrIq dataarea businessclass (rebuild all indexes.)
  • During dbsplitlobs execution, the database must have enough free space to hold a copy of all the non-LOB data of all the business classes being converted.  When dbsplitlobs is complete the majority of that space will be freed.

Usage:  To convert a data area to use Split LOB storage

Syntax: DBSplitLobs [-bBq] [-t threads] [-x rows] dataarea
    -b  brief (do not display progress)
    -B  disable batch insert
    -q  quiet (display only errors)
    -t  maximum threads for processing (default is 8)
    -v  errorlevel, tracelevel, and verbose specified in any order
         errorlevel = {n}none | {f}atal | {e}rror | {w}arning
            warning is the default
         tracelevel = 0:6 where 0 is no message and 6 is everything
         verbose = whether to display exception stacktrace
    -x  count of rows in a transaction
LMRKDBLOB

  Options for conversion to Split LOB Storage

Option 1: Change for the data area as a whole

  • Be sure you have a good database back up
  • Run dbverify dataarea (correct any discrepancies before proceeding)
  • Run changeda dataarea -d splitlobstorage=yes
  • Run buildda dataarea
  • Run dbsplitlobs dataarea (or dbreorg -d dataarea)
  • Run dbverify dataarea

Option 2: Change for a single business class or set of business classes

  • Be sure you have a good database back up
  • Run dbverify dataarea (correct any discrepancies before proceeding)
  • Run changeda -f splitlobstorage=yes dataarea business class name
  • Run buildda dataarea
  • Run dbsplitlobs dataarea (or dbreorg -d dataarea)
  • Run dbverify dataarea

Option 3: Change for a single module

  • Be sure you have a good database back up
  • Run dbverify dataarea (correct any discrepancies before proceeding)
  • Run changeda -m splitlobstorage=yes dataarea module name
  • Run buildda dataarea
  • Run dbsplitlobs dataarea (or dbreorg -d dataarea)
  • Run dbverify dataarea

 

Please reference the Infor Landmark Utilities Reference Guide for complete details on using the dbsplitlobs utility and related Landmark utilities. This reference guide provides the syntax for Environment utilities that you can run from a Landmark Environment command line. This reference guide provides the syntax for Environment utilities that you can run from a Landmark Environment command line.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *



About this Blog

The latest innovations using Infor Technology