OracleにおけるRMAN圧縮バックアップの設定と使用方法

Oracleのバックアップは急速に増加し、圧縮によりストレージと帯域幅を削減できます。この記事では、RMANに内蔵されているBASIC、LOW、MEDIUM、HIGHレベルの圧縮方法、外部の方法、設定手順、およびCPUとスペースのバランスを取るためのベストプラクティスについて説明します。

download-icon
無料ダウンロード
VM、OS、DB、ファイル、NASなどに対応
ken-sato

Updated by 佐藤健 on 2025/12/03

目次
  • RMANバックアップとは何ですか?

  • 外部圧縮はRMANバックアップに適しているか?

  • RMANバックアップ圧縮タイプ

  • RMANコマンドでOracleバックアップを圧縮する方法

  • RMANバックアップ圧縮のベストプラクティス

  • OracleのバックアップをVinchinで圧縮する方法

  • RMANバックアップ圧縮に関するよくある質問

  • 結論

バックアップはデータを安全に保存しますが、ストレージやネットワークリソースも消費します。OracleのRMANは内蔵の圧縮機能を提供し、ディスク容量の節約とCPU使用のバランスを取ることができます。また、必要に応じて外部ツールを使用してOSレベルの圧縮を適用することも可能です。この記事では、RMAN圧縮とは何か、外部方法を選択すべきタイミング、Oracleの各バージョンで圧縮レベルをどのように設定するか、現実的なパフォーマンスのベストプラクティス、および圧縮済みバックアップの監視とトラブルシューティング方法について学びます。

RMANバックアップとは何ですか?

RMAN(リカバリ・マネージャ)は、完全バックアップ、増分バックアップ、アーカイブログ・バックアップのためのOracle組み込みツールであり、コントロールファイルまたはリカバリ・カタログ内で一貫性チェックとメタデータのカタログ化を自動化します。RMANは変更されたブロックを追跡し、バイナリ圧縮が適用される前にヌルブロックや未使用ブロックの圧縮などのブロックレベル操作を可能にします。また、RMANはテープ装置、Oracle Secure Backup、クラウドサービスと統合され、暗号化および保持ポリシーをサポートしており、復旧を効率的に行うことができます。

最も基本的には、RMANに接続して以下を実行します:

RMAN> バックアップ データベース;

構成されている場合、データファイル、コントロールファイル、アーカイブログのバックアップセットが作成され、整合性の処理は自動的に実行されます。

オブジェクトまたはモードごとにバックアップをカスタマイズすることもできます。たとえば、1つのコマンドで特定の表領域とアーカイブログをバックアップできます:

RMAN> BACKUP TABLESPACE users, temp PLUS ARCHIVELOG;

これは、不要な表領域を除外することによりストレージを削減し、特定時点の回復に必要なログが含まれるようにします。

高度なシナリオの場合は、以下を使用してください:

  • 圧縮バックアップセットとしてバックアップ をバイナリ圧縮に使用

  • コピーとしてバックアップ イメージコピー用

  • BACKUP … DEVICE TYPE sbt をターゲットテープライブラリに指定します。
    複雑なリテンションウィンドウをスクリプト化したり、CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS を使用して非効率なバックアップの自動削除を行うことができます。

外部圧縮はRMANバックアップに適しているか?

外部圧縮とは、RMANの非圧縮出力をgzipbzip2、またはzipなどのOSツールを通じて処理することを意味します。この方法は、Oracle Advanced Compressionライセンスがない場合や、別のホストにCPU作業をオフロードしたい場合に有効です。例えば、以下のような方法があります:

rman target / <<EOF | gzip > backup.rman.gz
BACKUP DATABASE;
EOF

ただし、パイピングを使用すると復元前に伸長処理が追加されるため、復元が遅延し、RMAN のブロック認識型最適化によって空のブロックを縮小する機能が妨げられます。ヌルブロックおよび未使用ブロックの圧縮機能が失われ、暗号化後に圧縮が適用される場合、ネットワーク帯域幅が増加する可能性があります。

RMANバックアップ圧縮タイプ

RMANは2つの圧縮カテゴリをサポートしています: 標準のBASICアルゴリズム(追加ライセンス不要)およびアドバンスド圧縮オプションのLOWMEDIUMHIGHレベルです。圧縮は永続的に有効にすることが可能です:

RMAN> 圧縮アルゴリズムを'MEDIUM'に設定;
RMAN> デバイスタイプDISKのバックアップタイプを圧縮バックアップセットに設定;

または一度限りのバックアップの場合:

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

圧縮レベル概要

次の表は各レベルを要約しています:

LevelLicense RequiredCPU ImpactCompression RatioBest For
BASICいいえ適度なミディアムAdvanced Compression オプションのない環境
LOWはいCPUリソースの少ないシステムでの高速バックアップ
ミディアムはいミディアムバランスの取れたワークロードとクラウドバックアップ
HIGHはい非常に高いピーク時間帯以外の保存域を重視したバックアップ

プリコンプレッション・ブロック処理

バイナリ圧縮の前に、RMANはブロック内の空き領域をゼロで埋めることができます(OPTIMIZE FOR LOAD FALSE)。これは断片化された表領域における圧縮率の改善を目的としています。ヌルブロック圧縮は一度も書き込まれていないブロックをスキップし、未使用ブロック圧縮は確保されたが空のままであるブロックを省略します。どちらの処理も選択されたバイナリ圧縮アルゴリズムの前に行われ、追加ライセンス費用をかけずに最大の容量削減効果を得ることができます。

RMANコマンドでOracleバックアップを圧縮する方法

以下に、さまざまなスキルレベル向けのステップバイステップの手順を示します。

基本的なOracleデータベース圧縮

まず、デフォルトのアルゴリズムを設定してください:

RMAN> 圧縮アルゴリズムを'BASIC'に設定;

次にディスクで有効にします:

RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;

最後に、以下を実行します:

RMAN> バックアップ データベース;

これはデフォルトでBASIC圧縮を使用するため、アドバンスド圧縮ライセンスなしでも適切な節約効果を得ることができます。

ワンタイム圧縮バックアップ

既定値を変更せずにワンタイムの圧縮バックアップを実行するには、次のコマンドを実行してください:

RMAN> データベースとアーカイブログを圧縮バックアップセットとしてバックアップする;

MEDIUM または HIGH を指定するには:

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE COMPRESSED FOR MEDIUM;

(注意:COMPRESSED FOR 構文は Oracle 12.2、18c、19c 以降でサポートされています)。

高度なOracleデータベース圧縮

空き領域のゼロクリアを含む:

RMAN> SET OPTIMIZE FOR LOAD FALSE;
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;

セッション中に圧縮レベルを切り替えるには:

RMAN> 圧縮アルゴリズム 'HIGH' を設定;
RMAN> データベースを圧縮バックアップセットとしてバックアップ;

OLTPまたはバッチ処理の時間枠に最適なレベルを選ぶために、CPU使用率と時間を監視してください。

RMANバックアップ圧縮のベストプラクティス

  • 効果的な圧縮はテストとモニタリングから得られます:

  • 本番環境に移行する前にステージングで各レベルをテストしてください。

  • 混合ワークロードにはMEDIUMを使用してください。ピークを過ぎたアーカイブにはHIGHを割り当ててください。

  • データ負荷の大きい処理ではLOWを避けてください—その比率は、たとえ小さなCPU使用量であっても正当化されない可能性があります。

  • ユーザー活動が少ない時間帯に HIGH でスケジュールを実行します。

  • 増分バックアップと組み合わせて、完全バックアップの頻度を制限します。

  • 常に以下のを使用して監視してください:

SELECT set_count,
       compression_level,
       compressed_bytes,
       uncompressed_bytes
  FROM V$BACKUP_SET
 WHERE compression_level = 'MEDIUM';
  • 高いCPU使用率をV$SESSION_LONGOPSおよびtoppidstatiostatなどのOSツールで診断し、負荷の急増を引き起こしているRMANチャネルを特定します。

暗号化前の圧縮により全体的なスループットが向上します—圧縮を設定した後にCONFIGURE ENCRYPTION FOR DATABASE ONを設定してください。

OracleのバックアップをVinchinで圧縮する方法

では次に、強力な企業向けソリューションについて見ていきましょう。Vinchinは、Oracle、MySQL、SQL Server、MariaDB、PostgreSQL、PostgresProなど、今日の主要なデータベースをサポートする、プロフェッショナルな企業向けデータベースバックアップソリューションです。

Vinchinのデータベース保護機能には、クラウドバックアップおよびテープアーカイブ、完全バックアップ、増分バックアップ、ログバックアップ、OracleおよびPostgreSQL向けアーカイブログバックアップ、スケジュールされたバックアップ、送信元側Oracleのデータ圧縮および重複排除、ならびにランサムウェア保護が含まれます。

VinchinのWebコンソールはシンプルで直感的です。Oracleデータベースをバックアップするには、通常以下の手順を実行します:

1. バックアップするデータベースを選択

Oracleデータベースの選択

2. バックアップ保存先の選択

バックアップ保存先の選択

3. バックアップ戦略の定義(フル、インクリメンタル、スケジュール、Oracle圧縮)

選択するバックアップ戦略

4. 仕事の提出

仕事の提出

Vinchinは最高評価を獲得し、世界中の顧客にサービスを提供しています。60日間すべての機能を無料でお試しください―ボタンをクリックして、数分でダウンロードして導入できます。

RMANバックアップ圧縮に関するよくある質問

Q1. 圧縮されたバックアップを復元するにはどうすればよいですか?
CATALOG START WITH '/path/to/backup'; RESTORE DATABASE; RECOVER DATABASE; をRMANで使用して、バックアップを登録および適用します。

Q2. 圧縮レベルを中間に切り替えることはできますか?
できません。RMANはバックアップ時に指定した圧縮レベルを適用し、そのバックアップセットに対して維持します。

Q3. RMAN圧縮は復旧時間に影響を与えますか?
はい。復元時にレベルが高くなるほどCPU使用率が増加するため、復旧時間目標に応じたバランスを取ることが必要です。

Q4. 暗号化されたバックアップで圧縮を使用することはできますか?
はい。圧縮を先に設定してから、暗号化を有効にして暗号化されたデータのサイズを最小限に抑えることができます。

Q5. 圧縮効果を確認する方法を教えてください。
V$BACKUP_SET または V$BACKUP_PIECE をクエリして、COMPRESSED_BYTESUNCOMPRESSED_BYTES の比率を比較します。

結論

RMANの組み込み圧縮機能(BASICからHIGHまで)により、ストレージの節約とCPU使用率のバランスを調整しながら、ブロックレベルの最適化の恩恵を受けることができます。ライセンスが取得できない場合には外部圧縮を利用できますが、その場合は複雑さが増します。それぞれの圧縮レベルを現実的な負荷条件下でテストし、CPU使用率とスループットのメトリクスを監視し、効率を最大限に高めるために暗号化の前に圧縮を適用してください。これらの方法を用いることで、復元目標に沿った信頼性が高く、スペースを効率的に使用するバックアップを実現できます。

共有:

Categories: Database Backup