RMAN Backup Performance Tuning
RMAN Backup Performance Tuning
Common Reason for RMAN Backup Slowness:
· Single backup channel
· Large datafiles
· Slow storage
· No incremental backup strategy
· Compression overhead
· High I/O usage
· Archive log accumulation
· Poor backup destination
Step 1: Check Current RMAN Configuration
RMAN> show all;
This gives you information about:
- Parallelism
- Backup type
- Compression
- Retention policy
- Backup optimization
Step 2: Check RMAN Backup History
SET LINESIZE 200
SET PAGESIZE 100
COLUMN START_TIME FORMAT A20
COLUMN END_TIME FORMAT A20
COLUMN STATUS FORMAT A10
COLUMN INPUT_SIZE_GB FORMAT
99990.99
COLUMN OUTPUT_SIZE_GB FORMAT
99990.99
COLUMN COMPRESSION_PERCENT FORMAT 990.99
SQL> SELECT TO_CHAR(START_TIME,
'DD-MON-YY HH24:MI') AS START_TIME,
TO_CHAR(END_TIME, 'DD-MON-YY
HH24:MI') AS END_TIME, STATUS, INPUT_BYTES / 1024 / 1024 / 1024 AS INPUT_SIZE_GB, OUTPUT_BYTES / 1024 / 1024 / 1024 AS
OUTPUT_SIZE_GB, CASE WHEN INPUT_BYTES > 0 THEN ROUND((1 - OUTPUT_BYTES /
INPUT_BYTES) * 100, 2) ELSE NULL END AS COMPRESSION_PERCENT FROM V$RMAN_BACKUP_JOB_DETAILS ORDER BY START_TIME DESC;
This helps identify:
- Backup duration
- Backup size
- Compression ratio
- Backup failures
Step 3: Enable Parallel Channels
Increase parallelism:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM
4;
Or allocate channels manually:
RMAN> RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch4 DEVICE TYPE DISK;
BACKUP DATABASE;
RELEASE CHANNEL ch1;
RELEASE CHANNEL ch2;
RELEASE CHANNEL ch3;
RELEASE CHANNEL ch4;
}
Step 4: Use SECTION SIZE for Large Datafiles
BACKUP DATABASE SECTION SIZE 50G;
This divides large files into smaller pieces
and allows parallel processing.
This is useful for:
- Large databases
- Data warehouse systems
- High I/O systems
Step 5: Enable Compression (If Required)
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
BACKUP AS COMPRESSED BACKUPSET DATABASE;
Step 6: Use Incremental Backups
Level 0 Backup:
BACKUP INCREMENTAL LEVEL 0 DATABASE;
Level 1 Backup:
BACKUP INCREMENTAL LEVEL 1 DATABASE;
Step 7: Check RMAN Backup Pieces
SET LINESIZE 200
SET PAGESIZE 100
COLUMN HANDLE FORMAT A60
COLUMN BACKUP_TYPE FORMAT A10
COLUMN STATUS FORMAT A12
COLUMN START_TIME FORMAT A20
COLUMN COMPLETION_TIME FORMAT A20
SQL> SELECT BP.HANDLE, BS.BACKUP_TYPE, BP.STATUS, TO_CHAR(BP.START_TIME, 'DD-MON-YY
HH24:MI') AS START_TIME, TO_CHAR(BP.COMPLETION_TIME, 'DD-MON-YY
HH24:MI') AS COMPLETION_TIME FROM
V$BACKUP_PIECE BP JOIN V$BACKUP_SET BS ON BP.SET_STAMP = BS.SET_STAMP AND
BP.SET_COUNT = BS.SET_COUNT ORDER BY BP.START_TIME DESC;
Step 8: Monitor Backup Progress
SQL> SELECT SID, SERIAL#, OPNAME, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2)
"% COMPLETE" FROM V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND
TOTALWORK != 0;
Step 9: Enable Backup Optimization
CONFIGURE BACKUP OPTIMIZATION ON;
Step 10: Check Archive Log Backup
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# DESC;
Comments
Post a Comment