Hi all!
Again talking about cloud backups for on-premise databases: An important aspect is to compress the data, so network consumption might be reduced once less data is being transfered.
It’s also important to evaluate CPU consumption. As higher compress algorithm is, as much CPU it uses. So, pay attention!
Now, how to choose the compression algorithm? Here the options Oracle give us:
SQL> col ALGORITHM_NAME for a15 set line 200 SQL> select ALGORITHM_NAME,INITIAL_RELEASE,TERMINAL_RELEASE,ALGORITHM_DESCRIPTION,ALGORITHM_COMPATIBILITY from v$rman_compression_algorithm; ALGORITHM_NAME INITIAL_RELEASE TERMINAL_RELEASE ALGORITHM_DESCRIPTION ALGORITHM_COMPATIB -------------- ------------------ ------------------ ---------------------------------------------------------------- ------------------ BZIP2 10.0.0.0.0 11.2.0.0.0 good compression ratio 9.2.0.0.0 BASIC 10.0.0.0.0 good compression ratio 9.2.0.0.0 LOW 11.2.0.0.0 maximum possible compression speed 11.2.0.0.0 ZLIB 11.0.0.0.0 11.2.0.0.0 balance between speed and compression ratio 11.0.0.0.0 MEDIUM 11.2.0.0.0 balance between speed and compression ratio 11.0.0.0.0 HIGH 11.2.0.0.0 maximum possible compression ratio 11.2.0.0.0
How to identify our compression algorithm?
RMAN> show COMPRESSION ALGORITHM; RMAN configuration parameters for database with db_unique_name EZM_PRFL are: CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
And how to change it?
RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH'; new RMAN configuration parameters: CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE; new RMAN configuration parameters are successfully stored RMAN> show COMPRESSION ALGORITHM; RMAN configuration parameters for database with db_unique_name EZM_PRFL are: CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
Ok,
But how to evaluate my compression ratio?
See the difference between INPUT_BYTES_DISPLAY and OUTPUT_BYTES_DISPLAY columns from the query:
prddb> col STATUS for a10 prddb> col INPUT_BYTES_DISPLAY for a15 prddb> col OUTPUT_BYTES_DISPLAY for a15 prddb> col TIME_TAKEN_DISPLAY for a20 prddb> SELECT SESSION_KEY, 2 INPUT_TYPE, 3 STATUS, 4 TO_CHAR(START_TIME, 'mm/dd/yy hh24:mi') start_time, 5 TO_CHAR(END_TIME, 'mm/dd/yy hh24:mi') end_time, 6 -- ELAPSED_SECONDS / 3600 hrs, 7 COMPRESSION_RATIO, 8 INPUT_BYTES_DISPLAY, 9 OUTPUT_BYTES_DISPLAY, 10 TIME_TAKEN_DISPLAY 11 FROM V$RMAN_BACKUP_JOB_DETAILS 12 where input_type like 'DB%' 13 ORDER BY SESSION_KEY 14 /SESSION_KEY INPUT_TYPE STATUS START_TIME END_TIME COMPRESSION_RATIO INPUT_BYTES_DIS OUTPUT_BYTES_DI TIME_TAKEN_DISPLAY ----------- ------------- ---------- -------------- -------------- ----------------- --------------- --------------- -------------------- 2 DB FULL COMPLETED 04/22/16 12:59 04/22/16 13:06 6,84838963 4.26G 636.50M 00:06:57 9 DB FULL COMPLETED 04/22/16 13:47 04/22/16 13:54 6,83764706 4.26G 637.50M 00:06:37 14 DB FULL COMPLETED 04/22/16 16:26 04/22/16 16:33 6,84189878 4.26G 637.25M 00:06:48
KB: https://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmconfa.htm#BRADV89466
Done?
If you have any question, please let me know in the comments! 😉
Matheus.