Partition, Compress, Archive and Purge

advertisement
Partition, Compress, Archive and Purge
Keep Your System on the Road
David Kurtz
Go-Faster Consultancy Ltd.
david.kurtz@go-faster.co.uk
www.go-faster.co.uk
Who Am I?
• Oracle Database Specialist
– Independent consultant
• Performance tuning
– PeopleSoft ERP
– Oracle RDBMS
• Book
– www.psftdba.com
•
•
OakTable
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
2
It depends…
• The answer to all questions should be deemed to
be implicitly prefixed ‘it depends’ if they are not
already explicitly so prefixed. The reasons for this
include, but are not limited to:
– There may be exceptions where the answer is either
false or not completely true
– There may be exceptions to the exceptions and so on ad
infinitum.
– The question may not explicitly scope all the conditions
upon which the answer depends
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
3
PeopleSoft HR, T&L, GP
@ Morrisons
• 130,000 employees
– 100,000 in stores
• Scheduled hours
– Clock in/out
– T&L matches reported hours with schedules to
determine payable time
– Legacy T&L feed from Manufacturing and
Distribution.
– Payable time passed to Global Payroll.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
5
0.91Tb/yr
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
6
Two Challenges
• Performance
– Big Tables
• (for OLTP)
• Eg payroll accumulator
table 2.4 billion rows!
– Poor/Variable
Performance
• Various processes and
reports suffering
• Critical Processes
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
• Database Size
– >4TB
– Growth ≈ 1TB/year
– Backup
• Size/Contention
– Cloning
• Dev/Test environments
©2013 www.go-faster.co.uk
7
Throw Away
• When we say the ‘database is slow’, often:
– It is fetching data from disk, reading it, and
deciding it isn’t something it wants and throwing it
away.
– It would be better if we had not spent time and
resource fetching it in the first place
• The fastest way to do anything is not to do it at
all.
–
Cary Millsap
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
8
4 Techniques
• Partition
– Breaking tables and indexes into managable pieces
• Compress
– Squeezing more data into the same space
• Archive
– Get the data out of the live application tables and
put it somewhere else.
• Purge
– Expunge the data from the database
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
9
PARTITIONING
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
10
Partitioning
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
11
Partitioning decisions
driven by Application
• Global Payroll
– ‘streamed’ processing
– RANGE on EMPLID to match streaming
• Financials General Ledger
– FISCAL_YEAR & ACCOUNTING_PERIOD
– Monthly/Quarterly/Annual partitions.
• Other Financials Modules?
– Less Obvious
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
12
Partitioning is a Pre-requisite
• Links logical data value to physical location of
data in the database.
• Time-based partitioning
– Future / Current / Historical
• Partition-wise operations
–
–
–
–
Compress historical partitions
Archive by partition exchange
Purge by dropping whole partitions.
Less Redo. Faster.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
13
Delete rows –v- Drop Partition?
• Free space is left in
data block.
• Data block remain part
of table/index
• Still scanned by
queries.
• Still backed up by
RMAN
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
• No longer in a database
object. So not
referenced.
• Free space is available
in tablespace.
– Still backed up
• If the space at end of the
datafile it can be
trimmed off by resize.
– No longer backed up
©2013 www.go-faster.co.uk
14
Managing Partitioning
in PeopleSoft
• Partitioning strategies
– Described own meta-data tables
• PL/SQL Utility package
– generate DDL scripts.
– Driven by PeopleTools tables and our own meta-data
• Application Designer from PT8.51 will preserve some existing
partitioning
– See Managing Oracle Table Partitioning in PeopleSoft
Applications with GFC_PSPART Package
• http://www.go-faster.co.uk/gfc_pspart.manual.pdf
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
15
Partitioning PeopleSoft
at Morrisons
• Global Payroll
– 46 tables range on EMPLID, matching 32 streams
– List sub-partition largest tables by pay period (CAL_RUN_ID).
– 24 archive tables, range partitioned on pay period into tax-year
partitions.
– 2 custom GP reporting tables
• Schedules & Time and Labor
– 10 tables in weekly range partitions
– of which Reported Time table hash sub-partitioned
• Audit Tables
– 28 monthly range partitions on audit timestamp
• Security Tables
– Separate partitions for different business units
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
16
Partitioning Trick
• Timezone Table
– Small, but accessed VERY frequently by T&L
– 1 partition for GMT only
• Only 1 row
– 1 partition for CET only
• Only 1 row
– 1 partition for the rest
– Less CPU to read first row in block than second
etc.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
17
Licencing of Partitioning
• Oracle RDBMS Enterprise Edition only
– And then separately licenced
• Also a cost option on other database platforms.
• No licence implication for PeopleSoft.
– Partitioning does not invalidate any aspect of
your support.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
18
COMPRESSION
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
19
Oracle RDBMS Compression
• Basic Compression
– Not separately licenced
– Only option in 10g
• Advanced Compression
• Out of scope of this presentation
– Licenced option
– Available in 11g
• Hybrid Columnar Compression (HCC)
• Also out of scope of this presentation.
– Exadata and ZFS filesystem only.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
20
Simple Compression
• Block Dictionary Encoding
– Data values stored only stored once in array in
data block.
– Pointer from row of data to array of values.
• Shorter Rows, more rows per block, fewer
Blocks, less I/O
• More CPU to read row.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
21
Table Compression
• Specified at table or partition level with DDL
– Sub-partition level inherits from partition level
• Compression only occurs
– On creation of the object
• ALTER TABLE … COMPRESS
– Direct path insert into object
– CPU overhead during compression and read
• Decompression occurs
– during any other DML
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
22
Index Compression
• Apply to all or none of index
• Index remains compressed
– DML does not decompress
– Performance overhead
• We have not compressed many live application indexes.
• We have compressed all archive tables.
• Table compression does not affect index size.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
23
What do I compress?
• Depends on application, business, and
partitioning strategy.
– Audit data partitions: as soon as month ends
– Payroll result data: when pay period is closed
for 1 month
– T&L: after 6 months
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
24
Compression Gotcha!
• During
– ALTER TABLE PARTITION … MOVE …
COMPRESS.
• Local index partitions can momentarily
become unusable before they go back to being
usable.
• This can cause application errors
– Choose when to compress carefully, or do it in an
outage!
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
25
When can I compress my data?
• When it is no longer updated by application.
– Because DML uncompresses it
– But that may be well be you can archive/purge.
• Written custom PL/SQL utility package
– Meta-data rules to determine when partition no
longer updated.
– Needs knowledge of business/application.
– Incrementally compress static partitions.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
26
How much compression?
• It depends on your data!
• We have see a factor 2x – 5x on tables
– (50%-80% reduction in size)
• Indexes are less compressible
– Indexes with more columns can be more
compressible
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
27
PL/SQL Utility Package
• GFC_ARCH_MGMT
– DBA run management utility
– Moves partitions to correct tablespace
– Compresses/Decompresses partitions per
specification in meta-data.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
28
ARCHIVE & PURGE
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
29
Archive & Purge
• Archive:
– Move data from live
application table to
another table.
– In this case another to
table in the same
database.
– Read-only access
provided to archive
tables.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
• Purge:
– Expunge data from the
database.
©2013 www.go-faster.co.uk
30
Archive/Purge
• For each table or set of tables
– Define a policy that specifies when data is
archived or purged.
• Compression too, but that has no functional impact.
• Discuss with business
– Check legal requirements
• PAYE 3 years, Company Accounts 6 years
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
31
‘But my data will disappear’
• That may be a good thing
– If you keep data you have to look after it
responsibly.
– Pay for the disk to store it/back it up.
• Read-only access via PS/Query tool to archive
data.
• A very few components and reports access
archive tables
– Development cost of customisation
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
32
Example Archive/Purge Policies
– GP: archive 2 rolling years, purge after 8 tax
years
– Schedules, purge at 56 weeks
– T&L, purge at 108 weeks
– Audit: various:
• Archive after 3 months, 1, 3 year
• Purge 6 months, 1 year, 2 years, never
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
33
Archive Method
• Partition Management
– Exchange/Drop whole
Partitions
• Time based partitioning
– Avoid rewriting data
– Avoids redo
• Faster
– Compression must match
• Some archive table
indexes not compressed.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
• Row-by-Row
– Non-time based
partitioning
• GP
– Can be done on-line
– Can compress data
during rewrite
– Different partitioning
strategy in archive and
live.
©2013 www.go-faster.co.uk
34
PeopleTools Archive Utility
• Row-by-Row processing
only
– Slow and can’t reclaim
space
– Can’t compress data during
copy
• Additional key columns in
archive table
• Generic
– Meta-data driven
• Sets of tables to archive
• Corresponding archive
tables
• GP set delivered
– Enlarges archive tables
– Causes performance
problems with index access
• Still need to drop empty
partitions.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
35
PL/SQL Archive/Purge Utility
• Custom PL/SQL Package
–
–
–
–
Driven by same meta-data as partitioning utility
Archive by partition exchange
Purge by dropping partition.
Called from custom Application Engine
• So archiving can be done via application.
– Writes
• To PeopleSoft Message Log
• Various Oracle trace/log files
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
36
‘No-Archive’ Rules
• Can only archive ≈99% of partitions
– Affects some Schedule tables
– Utility that does partition exchanges retains
some rows by DML
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
37
Custom Archive Utility
• Based on delivered PeopleSoft Archive
Utility
• We only use it for GP archiving
• Copies data in direct path
– Faster
– Can compress during copy
• Calls PL/SQL utility to drop partitions to
save deleting data.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
38
‘PSARCH’ Schema Design
• 2nd schema to hold archive tables
– Only tables archived by partition exchange
– Same name as live tables
– Same local indexes as live
• Benefits
– SYSADM cannot update/delete from these tables.
• Drawbacks
– Views to make them accessible to PS/Query.
– Can’t manage indexes through Application
Designer.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
39
Tablespace Design
• No impact on performance
– Because all on same tier of disk
• Do not keep objects with dissimilar purge
policies in same tablespaces
– You can drop empty tablespaces and recover space.
• Periodic tablespaces make sense without purge
policy
• With a purge policy might just have one
tablespace.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
40
Wrong Tablespace Design
• Before archive policy
– Weekly T&L and Schedule partitions in same
monthly tablespaces
• Archive Policy
– T&L: 108 weeks
– Schedules: 56 weeks
• Schedules populated first, T&L later.
– Schedules tend to be nearer start of tablespace
– Schedules purged first leaving hole than cannot be
trimmed off.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
41
Free Space Fragmentation
• Free Space left in middle of tablespace
– Dropping objects
– Compressing objects can leave holes
• Less Severe since Oracle 9i
– Uniform extent sizes
– Bitmap space map
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
42
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
43
Oracle RMAN Backup
• Backs up block with SCN
– If an object is dropped blocks still have SCN
– Empty blocks can still be backed up.
• Can only reduce backup size by trimming
free space from end of data files.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
44
Defragmentation of Free Space
• PL/SQL utility to rebuild objects nearest
end of data file into spaces in the middle of
the tables
– Needs to be done during an application outage.
• Frees space at end of data file that can be
trimmed off.
– Thus reducing size of database and backup.
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
45
Oracle Flashback Database
• SQL Rollback
– We are used to the idea of rolling back transaction
that have not been committed.
• Flashback database
– Generates additional flashback logging
– Rollback committed transaction and DDL
• but not through a drop/resize data file
– Whole database option
• Highly effective in testing archive/purge
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
46
Future: Oracle 11g
• Automatic Partition Creation
• Range-Range partitioning
• Advanced Compression
– Licenced Option
– Supports DML
• Active Data-Guard
– Off-load query activity to standby database
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
47
PROGRESS
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
48
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
49
0.91Tb/yr
0.48Tb/yr
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
50
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
51
Achievements
• Database Size
– 4.5TB => <2.25TB (with GP purge)
• Still have to purge old schedule and T&L data
• Expected Performance Improvements
– GP calculation and other processing
– T&L processing
– Financial Reports
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
52
Conclusion
• It depends…
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
53
Nullius in verba
QUESTIONS?
UKOUG PeopleSoft 2013 - Partition,
Compress, Archive, Purge
©2013 www.go-faster.co.uk
54
Download