Oracle 备份压缩详解

Oracle 备份压缩详解

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

备份压缩节省空间和传输时间[1]:

详细见:Oracle 备份压缩与加密


2. RMAN 压缩

2.1 BASIC

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;
- 免费选项
- 中等压缩比
- 通用

2.2 LOW

RMAN> BACKUP AS COMPRESSED BACKUPSET 
  DATABASE COMPRESSION ALGORITHM 'LOW';
- 速度优先
- 压缩比低
- CPU 开销小

2.3 MEDIUM

RMAN> BACKUP AS COMPRESSED BACKUPSET 
  DATABASE COMPRESSION ALGORITHM 'MEDIUM';
- 平衡
- 默认

2.4 HIGH

RMAN> BACKUP AS COMPRESSED BACKUPSET 
  DATABASE COMPRESSION ALGORITHM 'HIGH';
- 压缩比高
- CPU 开销大
- 空间受限

3. 配置

3.1 默认

CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';

3.2 压缩备份集

CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;

4. 未使用块

4.1 跳过

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;
# 自动跳过未使用块

4.2 NULL 压缩

- 自动去除未使用块
- 节省空间

5. 压缩比

5.1 测试

# 不压缩
RMAN> BACKUP AS BACKUPSET DATABASE FORMAT '/tmp/test_uncomp.bkp';

# 压缩
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/tmp/test_comp.bkp';

# 比较
ls -lh /tmp/test_*.bkp

5.2 典型

- BASIC:2-4 倍
- LOW:1.5-2 倍
- MEDIUM:2-3 倍
- HIGH:3-5 倍

6. CPU 影响

6.1 测试

- 压缩消耗 CPU
- LOW:CPU 低
- HIGH:CPU 高
- 平衡

6.2 选择

- CPU 充足:HIGH
- CPU 受限:LOW
- 默认:MEDIUM

7. Data Pump 压缩

7.1 选项

expdp scott/tiger ... COMPRESSION=ALL
expdp scott/tiger ... COMPRESSION=DATA_ONLY
expdp scott/tiger ... COMPRESSION=METADATA_ONLY
expdp scott/tiger ... COMPRESSION=NONE

7.2 性能

- ALL:最大压缩
- DATA_ONLY:数据
- METADATA_ONLY:元数据
- 节省空间

详细见:Oracle Data Pump 全集


8. 表压缩

8.1 OLTP

CREATE TABLE employees (...) COMPRESS FOR OLTP;

8.2 Warehouse

CREATE TABLE sales (...) COMPRESS FOR QUERY;

8.3 Archive

CREATE TABLE archive (...) COMPRESS FOR ARCHIVE;

详细见:Oracle 表压缩技术详解


9. 应用场景

9.1 空间受限

- FRA 有限
- 压缩
- HIGH

9.2 网络备份

- 异地备份
- 压缩
- 节省带宽

9.3 长期归档

- 历史数据
- ARCHIVE 压缩
- 节省空间

9.4 性能优先

- LOW 压缩
- 快速备份
- CPU 友好

10. 监控

10.1 压缩比

SELECT file_type, 
  ROUND(SUM(bytes)/SUM(compressed_bytes), 2) AS ratio
FROM v$backup_files
GROUP BY file_type;

10.2 备份大小

SELECT handle, bytes, status 
FROM v$backup_piece 
WHERE status = 'A'
ORDER BY bytes DESC;

11. 常见坑与排错

11.1 ORA-19914

- 压缩错误
- 检查算法

11.2 性能差

- HIGH 太慢
- 改 MEDIUM/LOW

11.3 空间

- 压缩后仍大
- 检查数据
- 调整算法

12. 最佳实践

  1. MEDIUM:默认
  2. HIGH:空间紧
  3. LOW:CPU 紧
  4. 测试:压缩比
  5. 平衡:CPU vs 空间
  6. 网络备份:压缩
  7. 长期归档:ARCHIVE
  8. 监控:压缩比
  9. 自动化:配置
  10. 文档:策略

13. 参考资料

[1] Oracle Database Backup and Recovery User’s Guide 19c, “Compression” https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/