980 likes | 1.27k Vues
Agenda. Backup and RecoverySelf-Healing PointersReorganizationAdding, deleting, and modifying partitionsTest databasesSecondary indexesPerformanceSummary and Other Information. HALDB Image Copy. Image Copy for HALDB is supported by all current IMS Image Copy productsImage Copy utility (DFSUD
E N D
2. Agenda Backup and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
3. HALDB Image Copy Image Copy for HALDB is supported by all current IMS Image Copy products
Image Copy utility (DFSUDMP0)
Including CIC option
Image Copy 2 utility (DFSUDMT0)
Including the share option
Online Image Copy (DFSUICP0)
IMS High Performance Image Copy
Vendor Image Copy
Used only for the HALDB A-J (M-V) data sets
Not the ILDS or PHIDAM index
Maybe ... See Page 9
4. HALDB Image Copy Image Copy is by partition data set (DSG)
Database DD cards were generated by GENJCL.IC
They are not generated in IMS V9 and above because of HALDB Online Reorg
GENJCL.IC DBD(masterdb) generates JCL for all data set groups for all HALDB partitions
GENJCL.IC DBD(partname) generates JCL for all data set groups for one HALDB partition
GENJCL.IC DBD(partname) DDN(dsname) generates JCL for one data set group for one HALDB partition
5. HALDB Recovery Change Accumulation
Updates are logged
Change Accum may be used
GENJCL.CA
DFSUCUM0
IMS High Performance Change Accumulation Utility
Vendor Change Accumulation tools
6. HALDB Recovery Recovery for HALDB is supported by all current IMS Recovery products
Database Recovery utility (DFSURDB0)
Database Recovery Facility (DRF) tool
Vendor recovery tools
Recovery is by partition data set (DSG)
DD cards must be included in the JCL
DBRC GENJCL support is the same as for Image Copy
7. HALDB Recovery HALDB ILDS (L) and PHIDAM Index (X) data sets
Backup
No image copies
Updates are not logged
ILDS is only updated by reorganization reload
PHIDAM Index is treated like a non-recoverable database
Recovery
Primary Index/ILDS Rebuild utility (DFSPREC0)
Rebuilds the data set(s) from the database
Vendor Index Builder
DBRC
GENJCL.USER MEMBER(DSPUPJCL)
May be used to generate DFSPREC0 JCL to rebuild an ILDS and/or PHIDAM index
8. HALDB Timestamp Recoveries All data sets of a partition must be recovered to the same time
PHIDAM index must be rebuilt
The A data set must be recovered first
Rebuild with Index/ILDS Rebuild utility (DFSPREC0) or IB tool
ILDS may need to be rebuilt
If secondary indexes or logical relationships are used and
If recovery is to a time before last reorganization
ILDS is only changed by reorganizations
May be rebuilt with Index/ILDS Rebuild utility (DFSPREC0)
Alternative for ILDS
After reorganization
Copy ILDS with REPRO
If ILDS needs to be restored
Use copy produced by REPRO
If no logical relationships and Secondary Index Builder is used to rebuild secondary indexes
ILDS is not used to heal pointers
ILDS may be empty and minimum size but must exist
9. HALDB Timestamp Recoveries Alternative for PHIDAM Primary Index and ILDS
One customer had a test HALDB PHIDAM database which they wanted to be able to restore to any Image Copy GDG generation
Doing a time stamp recovery of the data partitions was easy
Rebuilding the Primary Index and ILDS with DFSPREC0 was time consuming
The customer created two SHISAM databases per partition and defined them to DBRC with the data set names of the Primary Index and ILDS
These databases were Image Copied to the same GDG levels as the partition data
Generating the JCL for recovery of the Primary Index and ILDS then followed the same path as the data partitions
These databases can only be recovered back to the Image Copy
There are no log record updates for these databases
10. HALDB Timestamp Recoveries Must all partitions of a database be recovered to the same time?
Almost always
User must understand when this is not required
For example, offending program updated only one partition
Secondary index implications
Usually, database with secondary index forces recovery of all partitions to the same time
All partitions of the indexed database
All partitions of its secondary indexes
Logical relationship implications
Usually, database with logical relationships forces recovery of all partitions to the same time
All partitions in the logically related databases
11. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
12. Self-Healing Pointers Each partition has an ID number
The number is assigned by IMS when the partition is created
Assigned in creation order
Not in key sequence
Not related to key string
Not reused if the partition is deleted
Is preserved if the partition is disabled
Partition ID number is used in data set names
Dynamic allocation reduces the importance of the data set name to users
Partition ID number is physically stored in partition data set A (M) for PHDAM and PHIDAM partitions
This is important to know if you are copying partitions
13. Self-Healing Pointers Each partition has a reorganization number
Incremented for each reorganization
Stored in the partition
Also stored in the RECON
Reorganization Verification can be implemented
Verifies the reorganization number in the partition
For a technical write-up on HALDB reorganization numbers see
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP100733
14. Self-Healing Pointers Each partition has a reorganization number
When a partition is initialized
If Reorganization Verification is not activated
OR
Reorganization Verification is active but the Reorganization Number in the RECON is 0
THEN
The reorganization number in the partition is initialized to 1
OTHERWISE
It is initialized to the RECON Reorganization Number +1
The Reorganization Number in the RECON will be incremented when the first update is made to the partition
15. Self-Healing Pointers Each partition has a reorganization number
When a partition is reloaded
If Reorganization Verification is activated
THEN
The reorganization number in the partition is set to the RECON Reorganization Number + 1
OTHERWISE
Check the Partition ID (PID) of the first segment being loaded
If it matches the Partiton ID of the partition being loaded
Use the Reorganization Number in the unload prefix +1
OTHERWISE
If the PID does not match and the data set has not been scratched
Use the Reorganization Number in the data set +1
OTHERWISE
Use the Reorganization Number in the unload prefix +1 and issue message DFS3286I as a warning
16. Self-Healing Pointers Each segment has a unique ID when it is created
Indirect List Entry Key (ILK)
8 bytes
4-byte RBA
2-byte Partition ID
2-byte Reorganization Number
Stored in the segment prefix
Never changes for the life of the segment
This ID is unique within the entire HALDB database
17. Self-Healing Pointers Secondary Indexes and logical relationships use an Extended Pointer Set (EPS) for finding the target segment
The EPS is 28 bytes
Important fields include:
Partition ID of the target segment when the pointer segment was created
Reorganization Number of the target segment when the pointer segment was created
RBA Pointer to the target segment when the pointer segment was created
RBA pointer to paired logical child when the pointer segment was created
ILK of the target segment
This pointer is NOT updated during reorganizations
18. Self-Healing Pointers Secondary Indexes and logical relationships use the Extended Pointer Set (EPS) for finding the target segment
19. Self-Healing Pointers Each partition has an Indirect List Data Set (ILDS) associated with it
This is a VSAM KSDS
There are no records in the ILDS after Initial Load
There are no records until the first reorganization
There are never any records if the database has no secondary indexes and no logical relationships
Requires SHR(3,3)
20. Self-Healing Pointers For each target segment (Secondary Index or Logical Relationship) a record called an Indirect List Entry (ILE) is stored in the ILDS during reorganization reload
The key of the ILE in the ILDS is the ILK + the segment code of the target segment
The data is the new location of the target segment
The insert is for the target segment
The source segment may not be the target and may be far away in the hierarchy
This is done without regard for NULLVAL or Secondary Index Maintenance Routines
For some database types this may result in MANY unneeded ILDS records
21. Self-Healing Pointers
22. Self-Healing Pointers The Primary Index is rebuilt every time the partition is reorganized
There is no need for self-healing pointers
The RBA pointer is always accurate
23. Self-Healing Pointers
24. Self-Healing Pointers
25. Self-Healing Pointers
26. Self-Healing Pointers If a database has no Secondary Indexes and no Logical Relationships then it NEVER needs to use the ILDS but IMS still requires it
It still needs to be defined to VSAM
It will still be allocated by batch jobs
Customers have requested that it be totally eliminated if it is not needed
27. Self-Healing Pointers When using the HD reload utility during database migration (MIGRATE=YES or MIGRATX=YES during HD Unload) be sure to specify the ILDSMULTI keyword
This will write the ILDS records to a dataspace during reload
They are then sorted and inserted using VSAM load mode
28. Self-Healing Pointers The HD reload also has a NOILDS statement
This can be used by both migration unload/reload and normal unload/reload
No ILDS records are created or updated during HD reload
The ILDS must be rebuilt using the DFSPREC0 utility after the HD reload and before the database is used
This will scan the source data base partition
NOILDS can also be used if there are no logical relationships and the Secondary Indexes are always rebuilt after the reorganization using an index builder tool
29. Self-Healing Pointers After a reorganization secondary index and logical relationship pointers are "broken"
Normal processing heals them efficiently
Only heals pointers that are used
Reads of pointers are "free"
They are being read for normal processing
ILDS reads are efficient
ILDS CIs hold many entries
ILDS CIs are maintained in the buffer pools
Optionally, you can heal them
Extends the reorganization process
Typically, uses more resources
Heals all pointers
More total I/Os
HALDB Toolkit includes a pointer healing utility
Recommendation: Let the normal processing heal the pointers
30. Self-Healing Pointers There is an alternative process for healing Secondary Index pointers
Secondary indexes do not have to be rebuilt after a reorganization of a HALDB database
BUT secondary indexes MAY be rebuilt
Secondary indexes may be rebuilt with a tool such as the IBM IMS Index Builder
The rebuilt indexes are organized
Avoids the possible need to reorganize secondary indexes
The pointers in the rebuilt secondary indexes are healed
The ILDS will not be used for secondary indexes when they are rebuilt by Index Builder
Pointers are accurate when rebuilt
This eliminates the need to heal the pointers
31. Self-Healing Pointers Rebuilding Secondary Indexes with IBM IMS Index Builder
If you plan to rebuild secondary indexes with Index Builder and the database has no logical relationships
The ILDS will never be used
Reload using the NOILDS option of HD Reload or ILDSBLD=NO option of High Performance Load
Does not update the ILDS
Makes the reload more efficient
Marks the ILDS as Recovery Needed in the RECON
Use the DBRC command to turn off the flag
CHANGE.DBDS DBD(partname) DDNAME(xxxxxxxL) NORECOV
32. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
33. Non-HALDB Reorganizations
34. HALDB Reorganizations Shorten the reorganization time to your window
Reorganize partitions in parallel
Create enough partitions to meet your requirement
Eliminate rebuilds of secondary indexes
Prefix Resolution, HISAM Unload, and HISAM Reload, or Index Builder are not required
Eliminate updates to logical relationships
Database Scan, Prefix Resolution, and Prefix Update are not required
35. HALDB Reorganization Reorganization is by partition
DD cards are not included in the JCL
The PHIDAM Primary Index is rebuilt
The ILDS is updated
Secondary indexes and logically related databases DO NOT have to be reorganized
No work data set
No Prefix Resolution
No HISAM unload/reload
No Prefix Update
The Self-healing pointers take care of this
36. HALDB Reorganization HALDB data sets do not have to be deleted and redefined for reorganization
The VSAM REUSE attribute is required for HALDB VSAM databases and is honored by HD reload
Delete/define is required for non-HALDB databases
OSAM allows reuse for both HALDB and non-HALDB databases
Delete and define are required to move data sets
The VSAM REUSE Parameter is allowed but not honored for the ILDS
REUSE parameter is allowed but not honored for ILDS rebuilds
ILDS will not be reused by Index/ILDS Rebuild utility DFSPREC0
REUSE parameter is required for BLDILDS=YES option of the HP Load tool
Builds ILDS with load mode after sorting entries
More efficient
Eliminates unused entries
37. Partition Initialization During Reorganizations Partition initialization is not required during reorganizations
Data sets may be deleted and redefined without partition initialization
Exception: A partition which contains no data must be initialized
Offline reorganization steps:
Unload partition
Delete partition data sets (optional)
Define partition data sets (optional)
Reload partition
38. Reorganizations and Secondary Indexes Reorganization of a HALDB database does not require rebuild of its secondary indexes
Self-healing pointer scheme eliminates this requirement
Many installations never reorganize non-HALDB secondary indexes
They are rebuilt (and organized) with every reorganization of the indexed databases
HALDB secondary indexes may become disorganized
They may require reorganization
Or rebuilds with an Index Builder
39. Reorganizations and Secondary Indexes HALDB Secondary Index databases (PSINDEX) are reorganized using the HD unload/reload utilities
DFSURGU0 HD Unload
DFSURGL0 HD Reload
The HP Unload/Reload utilities DO NOT support PSINDEX
The HISAM unload/reload utilities do not support PSINDEX
DFSURUL0 HISAM Unload
DFSURRL0 HISAM Reload
VSAM REPRO may also be used to reorganize HALDB Secondary Index databases
40. Reorganization Alternatives HD Unload and HD Reload
Utilities provided with IMS
PHDAM, PHIDAM, and PSINDEX
Also non-HALDB support
Partitions must be off-line
High Performance Unload and High Performance Load
Tools from IBM
High performance options
PHDAM, PHIDAM
Also non-HALDB support
Does not support PSINDEX
Partitions must be off-line
41. Reorganization Alternatives IMS Parallel Reorganization (IPR)
Tool from IBM
Single job step reorganization
Uses HP Unload and HP Load
Partitions are offline to IMS
Unload and load are done in parallel
Segment is read for unload and immediately passed to load
Reorganization time is about equal to the slower process
42. Reorganization Alternatives IMS Online Reorganization Facility (ORF)
Not the same as IMS V9 HALDB Online Reorganization
Single job step reorganization
Allows full-function databases to be reorganized while still accessible from online systems
Reduces database downtime from hours to seconds
Eliminates the need for operator intervention after reorganization finishes
Available for HISAM, SHISAM, HIDAM, HDAM, PHIDAM and PHDAM
43. Reorganization Warning If a database is unloaded and then completely redefined there is the HIGH probability that there will be problems (duplicate ILKs)
Unload
DELETE.DB
INIT.DB
INIT.PART
Reload
All of the REORG IDs in the database are reset to 1
But the REORG numbers in the ILKs in the unload file are probably NOT all 1
ILK=RBA|PARTID|REORG#
This reorganization is NOT supported
You need to write a user reload program if you want to do this
It could read the UNLOAD file to get the input
44. Reorganization Warning Customer used the following sequence to repartition (add partitions) a HALDB while IMS was active
/DBR DB master
Unload
CHANGE.PART old partitions
INIT.PART new partitions
Initialize new partitions
Reload
/STA DB master
Online IMS did not see the new partitions because the HALDB structure was not rebuild
The final command in the sequence should be
/STA DB master OPEN
The OPEN keyword forces the structure to be rebuilt
45. Reorganization Warning If you convert a non-HALDB database to HALDB and use the same name for a HALDB partition database as the non-HALDB database it requires a COLD start of IMS after the reorganization
This is also true if you convert HALDB to non-HALDB
A cold start is required if the non-HALDB is a name that used to be a partition name
Fixed in IMS 12
46. HALDB Reorganization IMS has Online Reorganization for HALDB
Absolutely no outage
Data is available throughout the reorganization process
Reorganizations can be run at any time
Schedule it when you have resources (CPU and I/O) available
Reorganizes PHDAM and PHIDAM
Duplicate sets of database data sets are required
But reorganization can be done one partition at a time
Supports: data sharing, XRF, logical relationships, secondary indexes
Uses more resources than offline reorganization
CPI, I/O, and logging
A more detailed presentation of OLR is available
IMS Version 9 HALDB Online Reorganization
http://www.ibm.com/support/techdocs/atsmastr.nsf/Webindex/PRS1254
47. Eliminating the Need for Reorganizations Free space
Rule of thumb of 20% free space is 25+ years old
Developed when DASD was very expensive
Developed when the nightly window was 12 hours
Out of date?
HALDB allows you to have as much free space as you need (and can afford)
DASD space is cheap
Reorganizations are expensive
More free space could eliminate the need for some reorganizations!
On the other hand:
More free space requires more blocks
Sequential processing must read more blocks
Image Copies must copy more blocks
48. HD Unload Statistics for HALDB Partitions HD Unload (DFSURGU0) provides statistics report for each partition
Statistics are like those for the database
One report for each partition
Final report for all partitions unloaded
Statistics are reported by HD Unload and HD Reload
HD Reload reports the statistics gathered by HD Unload
Changes in partition boundaries after HD Unload are not reflected in the HD Reload statistics report
Partition statistics may be disabled by SYSIN control statement parameter
STAT=SUM - disables statistics report for individual partitions
STAT=DET - (default) enables statistics report for each partition
49. HD Unload Statistics for HALDB Partitions
50. HALDB Reorganization The IBM IMS High Availability Large Database (HALDB) Toolkit product can aid in database reorganizations
There are details later in the presentation
51. HALDB Reorganization HD Reload (DFSURGL0) may read concatenated input files
Unloads are from HD Unload (DFSURGU0)
Each unload may be for one or multiple partitions
DFSUINPT DD may contain concatenated input files
User is responsible for supplying the correct input files
PHIDAM roots must be in key sequence within a partition
Faster execution of repartitioning
Runs unloads of partitions in parallel
Run one reload step
A partition can not be reloaded in multiple steps
52. Reorganization Summary Size partitions to meet reorganization window needs
Reorganize partitions in parallel
Largest partition determines reorganization time
Pointer healing
Typically, normal processing heals pointers most efficiently
Database data sets may be reused
VSAM REUSE attribute is honored
Partition initialization is not required for reorganizations
Even when data sets are redefined
Secondary indexes are not rebuilt
May need to be reorganized
IMS Online Reorganization
Completely eliminates databases outages for reorganizations
53. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
54. Adding, Deleting, and Changing Partitions Databases change over time
The sizes of partitions may change over time
Data will be added and deleted
The high keys of partitions may need to be adjusted over time
Different amounts of data added or deleted to different partitions
Example: Root keys based on date
Databases need to be adjusted over time
Partition may needed to be split, consolidated, created, or deleted
Partition boundaries (high keys) may need to be adjusted
HALDB Unload Utility provides statistics by partition
55. Re-partitioning Considerations Partitions can be changed independently from other partitions which are not affected
Only unload/reload the affected partitions
Do not try to keep the partition ID in sequence
It will not work
It is not necessary
The Partition Selection Exit can be adjusted to handle the Partition Ids in the proper sequence for the applications
The Master Database record must remain in the RECON for the life of the HALDB
Deleting the master record will cause the partition IDs to start from 0001 when the partitions are re-defined
This can lead to duplicate ILKs which will break the self-healing pointers
56. HALDB Migration Aid Utility HALDB Migration Aid utility (DFSMAID0)
Reads PHDAM, PHIDAM, and PSINDEX databases
Provides sizing and high key information for repartitioning planning
Utility assumes that input is non-HALDB and calculates increases in prefix sizes
bytes and prefix-incr are inaccurate
Key range (KR) and number of partitions (NBR) analysis give accurate high keys
Bytes per partition (MAX) will be inaccurate
Could fail since it is not designed to handle extremely large amounts of data
57. Splitting a Partition If partition PB with high key 4000000 needs to be split
Unload partition PB
HD Unload or HP Unload
Define new partition PE
With high key 3000000
Set PINIT flag for PB and PE
Initialize partitions PB and PE
Reload partitions PB and PE
HD Reload or HP Load
Partitions PA, PC, and PD
are not affected
58. Combining Partitions If partitions PB and PC with high keys 4000000 and 6000000 need to be combined
Unload partitions PB and PC
HD Unload or HP Unload
Delete definition of partition PB
Sets PINIT flag for PC
Initialize partition PC
Reload partition PC
HD Reload or HP Load
Partitions PA and PD are not affected
59. Modifying Partition Boundaries If records need to be moved from partition PB to PC
Unload partitions PB and PC
HD Unload or HP Unload
Change high key for partition PB
From 4000000 to 3000000
Sets PINIT flag for PB and PC
Initialize partitions PB and PC
Reload partitions PB and PC
HD Reload or HP Load
Partitions PA and PD are not affected
60. Concatenating Input to HD Reload HD Unload output files may be concatenated as input to HD Reload
Only applies to HALDB
Unload files are for different partitions
Useful for combining partitions and modifying partition boundaries
Unloads may be run in parallel
61. Databases with Dates for Keys Databases with dates as the high-order part of the key
To add a partition for a set of dates (higher keys)
Define it and initialize it
To delete the partition with the lowest dates (keys) and all of its data
Delete the partition definition
Unloads and reloads are not required for these changes
62. Disabling and Enabling Partitions Disabling partitions
Definitions and information remain in RECONs
Includes partition IDs, DSN prefixes, and recovery information
Partitions are not used
Partitions are ignored
Disabled partitions may be enabled
Enabled partitions are made active
Enabled partitions are marked 'recovery needed'
63. Disabling and Enabling Partitions Use of disabling and enabling of partitions
Disabling is normally done prior to deleting a partition
Keeps recovery information, partition ID, DSN prefix, etc.
If testing is successful, partition is deleted
Deletion removes all information
If testing is not successful, partition is enabled
Partition is recovered and becomes active
Other partitions may require timestamp recovery
Partition Definition Utility (PDU) support
New 'Partition status' field on 'Change Partition' panel
DBRC command support
64. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
65. Test Databases Non-HALDB test databases
Often not registered in RECONs
Each programmer may have one or more versions of a database
All HALDB databases are registered in RECONs
Multiple versions of a database must be defined in different RECONs
DBRC does not allow multiple databases with the same name
Multiple test versions of a database require multiple RECONs
Plan your batch test environments
Some users do development testing with non-HALDB databases
HALDB and non-HALDB are compatible for application programs
66. Defining Test Databases Use the same DBD as production
DBD does not include partition or data set information
Place in test DBDLIB and ACBLIB
Create test partition definitions
Define partitions for test environment
or
Use Partition Definition Utility EXPORT and IMPORT functions
Moves partition definitions between RECONs
They may be modified after IMPORT
Data set name prefix, RAA, etc.
IMS V9 and IMS V8 with APAR PQ73858 maintain partition IDs
67. Creating Test Databases Alternatives for creating a test database from a production database
Unload and Reload
HD Unload (HP Unload) of production
HD Load (HP Load) to test
You may create a different partition configuration
Partition IDs will generally be different
Partition names may be changed
Partition boundaries may be changed
Image Copy and restore
Export and import partition definitions
Maintains partition IDs (with APAR PQ73858 for IMS V8)
Image copy production database data sets and restore to test
Partition IDs are stored in database data sets
Copy ILDS and PHIDAM Primary Index for each partition or use DFSPREC0 to rebuild
Change database data set names of test database
Change data set name prefixes
Use application programs
68. Testing with non-HALDB Databases Application Compatibility
Applications are compatible between HALDB and non-HALDB databases
Exceptions are rare:
Single partition processing with HALDB
Processing the secondary index as a database when the secondary index has duplicate data
Applications sensitive to FM status code (invalid root key)
Applications with special processing for partitions which are stopped or /DBRed
69. Testing with non-HALDB Databases Application Compatibility
Since applications are compatible you may test with non-HALDB databases
Does not require DBRC registration
Users may have many versions of databases
Minimal changes to testing
Test DBDs differ from production DBDs
Applicable to development
Probably not applicable to system level testing or performance testing
70. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
71. Secondary Indexes Plan the partitions for the secondary indexes
How many partitions do you need?
Space requirements
HALDB secondary index entries are much larger than those for non-HALDB secondary index
Pointers are larger
Root key of target is stored in the entry
Reorganization requirements
Will they need to be adjusted during life of the database?
Keys based on date, etc.
72. Secondary Indexes Plan to reorganize them
They are not rebuilt with each reorganization of their indexed databases
Do not make them non-recoverable
Unless you have a tool to rebuild them (e.g. Index Builder)
They are not rebuilt by IMS utilities
73. Adding Secondary Indexes IMS does not provide utilities to add a secondary index to an existing HALDB
There are two alternatives:
Steps with user application code:
Read the existing database and write the segments to a file
Re-generate the DBD with the secondary index
Load the database (PROCOPT=L) using an application program which reads the file from Step 1
IBM IMS Index Builder
Has the capability to add a secondary index
The primary database does not have to be reorganized
Physical parent pointers are always present
74. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
75. Performance HALDB processing is tuned like other full function database processing
Buffer pools
ILDSs also use buffer pools
Reorganizations and free space
OSAM sequential buffering
PHDAM root addressable area (RAA) and RAPs
Make your RAA large enough to hold all of your data with free space
In each partition
Give yourself a lot more RAPs than roots
In each partition
HALDB has some new options
Parallel processing of partitions
76. Assigning HALDB Data Sets to Buffer Pools HALDB database data sets are assigned to OSAM and VSAM buffer pools using the DFSVSMxx member just like other Full Function databases
If the Master database name is used all partitions are assigned to the same subpool
Individual partitions may be assigned to their own subpools
77. Assigning HALDB Data Sets to Buffer Pools HALDB database data sets buffer pools
DFSVSMxx members or DFSVSAMP data set
dbdname - partition name or master database name
data set identifier - Letter A-J, L, or X
A-J for user data sets
A for secondary index
L for Indirect List Data Set (ILDS)
X for PHIDAM primary index
id - subpool id
78. Parallel Processing of Partitions Parallel processing of partitions
Different jobs may process different partitions
Could shorten elapsed times
Control statement may be used to limit PCB access to one partition or to a number of consecutive partitions
A list of partitions is a known requirement
Can be used in Batch (DLI or DBB), BMP, or JBP regions
79. Parallel Processing of Partitions Implemented with control cards in the DFSHALDB DD statement
The NUM parameter is used to specify more than one partition
Limits the program to the named partition and the following mmmm-1 partitions (in Partition Selection order)
Available with APAR PK04880 for IMS V9 only
80. HALDB Partition Processing There were two partition processing performance problems which were resolved by recent APARs
Problem 1 A GU EQUAL-TO for a non-existent root key resulted in searching all the partitions
Only the target partition needs to be searched
This will be fixed by PK01201
Problem 2 A GU GREATER-THAN-OR-EQUAL-TO for a PHIDAM database root with twin backward pointers sequentially scanned the partitions using the Twin Forward pointers looking for the next higher key rather than using the primary index
81. HALDB Pointer Checker Pointer Checker/Free Space Analysis is supported by some products
IBM High Performance Pointer Checker
Vendor Pointer Checker tools
Monitor space by partition as you would any other database
82. Agenda Image Copy and Recovery
Self-Healing Pointers
Reorganization
Adding, deleting, and modifying partitions
Test databases
Secondary indexes
Performance
Summary and Other Information
83. HALDB Database Administration Partitioning
Sizing, naming, and modifying
Backup and recovery
Special considerations for ILDSs and PHIDAM indexes
Reorganization
Parallel processing and alternatives
Secondary indexes
Partition sizing and reorganization requirements
Redbook:
The Complete IMS HALDB Guide: All You Need to Know to Manage HALDBs
SG24-6945
84. Things to Remember HALDB Migration Aid utility can analyze existing HALDB databases
Useful when planning repartitioning
Deleting a partition definition deletes its recovery information
Disabling a partition keeps its recovery information
PHIDAM indexes and ILDSs have a different recovery process
They are rebuilt with Index/ILDS Rebuild Utility (DFSPREC0)
85. Things to Remember Secondary indexes may require reorganizations
They are not rebuilt when the indexed database is reorganized
Secondary index cannot be rebuilt from database with IMS utilities
Do not make them non-recoverable unless you have a tool like the IBM Index Builder
Plan your scheme for creating HALDB test databases
DBRC registration is required for all databases
86. HALDB Toolkit The IMS High Availability Large Data Bases (HALDB) Toolkit is an SPF driven tool from IBM that helps you with many of the functions that have been addressed in this presentation
The newest version also includes HALDB without DBRC
This allows you to have multiple datasets sharing one HALDB definition and behave like the database is not registered to DBRC
This allows batch application testing of copies of a HALDB without worrying about DBRC
87. HALDB Toolkit Convert to HALDB
Using an ISPF based application for ease of use
All necessary steps are generated
Using a single-step batch process
Allows for near online conversion in conjunction with IMS Online Reorganization Facility for z/OS, V1.2 (5655-H97)
Generic partition selection exit
Testing of partition selection exits
88. HALDB Toolkit Application support
Dynamic DFSHALDB Statement Build provides dynamic management of the DFSHALDB statement by providing a key for the starting partition and a key for the ending partition
You specify a key range and the utility transforms it into a starting and ending partition
Thus, the application does not require a change when partitions are split or consolidated
89. HALDB Toolkit Application support
Partition Selection API provides a callable interface to assign a key to a partition
This function will be useful for applications to split their input on a partition boundary when parallel processing is desired
The API returns the partition name and the partition number
It is not required to run in a DLI environment
90. HALDB Toolkit HALDB Maintenance
Consolidate or split partitions
Generates JCL and control cards for all required steps
Heal index pointers
Load a single partition
Databases with secondary indexes must insert the secondary indexes in random sequence when loading
This utility delays the index insert to the end, then loads them in sequential sequence
This method improves the elapsed time
91. HALDB Toolkit HALDB Maintenance
Delete a single partition
When a single partition is deleted, the secondary indexes must be rebuilt
This utility simply deletes all records from the secondary indexes that reference the deleted partition
Add an empty partition to the end of a database
This function is for those databases that grow mostly at the end of the database
92. HALDB Toolkit HALDB Maintenance
Merge HALDBs
When user partitioning (multiple identical DBs on different key ranges) has been used, the conversion will transform the DBs to HALDB first and after that merge them together
This is a necessary step when secondary indexing is desired, which was not possible when using multiple DBs
93. HALDB Toolkit DBRC Handling
Cloning DBRC definitions
The clone function replicates HALDB DBRC definitions to other RECONs and allows you to exchange the high-level data set name qualifier
Copy a HALDB database to a different IMS system
Transfers a production HALDB database into a different IMS and allocates the target data set in that system if not already available
Backup DBRC Definitions
This utility saves database-related DBRC definitions
They can be used as input for the batch DBRC utility (DSPURX00)
94. HALDB Toolkit HALDB Analyzer
Analyze the HALDB constructs
This function analyzes the HALDB structure
Verifies that all root keys are in the correct partition
Verifies all ILKs are valid, and all EPS pointers will find the correct ILE.
Performance-related data are collected
The user may also provide thresholds to be informed when a maintenance function is necessary
Extract root keys
This allows extracting all root keys to a sequential file
A record layout is provided.
95. HALDB Toolkit System Utilities
Split Unload File allows you to split an unload file into single partition unload files
The reloads then can run in parallel
Indirect List Key (ILK) Rebuild enables you to rebuild all ILKs and their references and allows you to resolve conflicting ILKs
The databases must be offline for this activity
ACBLIB reference provides a list of all Program Specification Blocks (PSBs) that reference a given database, assisting in online changes by identifying which PSBs require change
Create DBD source re-creates the DBD source statements from the DBDLIB
96. Other Information on HALDB IMS Product Publications:
IMS Administration Guide: Database Manager
IMS Utilities Reference: System
IMS Utilities Reference: Database and Transaction Manager
Redbook:
The Complete IMS HALDB Guide, SG24-6945
Written in 2003, but still valuable
97. Other Information on HALDB Presentations:
IMS High Availability Large Database (HALDB)
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS185
Migrating to IMS HALDB (High Availability Large Database)
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS693
Application Design and Programming with HALDB
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS490
IMS Version 9 HALDB Online Reorganization
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS1254
98. Other Information on HALDB White Papers:
IMS Full Function Database Design Guidelines
This document provides guidance for all full function databases including HALDB
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP100731
IMS HALDB Reorganization Number Verification
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP100733