DBAtlas · データベース運用アトラス

Oracle バックアップ戦略と自動化 (RMAN + Data Pump)

Oracleレベル: 中級所要時間: 60–120 分 (初回 level 0 の所要時間を除く)

構築済みのデータベースに対し、恒久的で自動化されたバックアップ体制を構築します (障害発生時のリカバリは別のガイド「RMAN によるリストアとリカバリ」で扱います)。週次 level 0 + 日次 level 1 (または毎日フル)、頻繁なアーカイブログ・バックアップ、FRA または専用ディレクトリ、保存ポリシー (retention)、圧縮、暗号化、ブロック・チェンジ・トラッキング、並列度を扱います。加えて、wallet を使用したフル expdp も取得します。完全なスクリプト (ロック、ログ、エラーチェック、電子メール) を cron、systemd timer または DBMS_SCHEDULER でスケジュールし、週次の RESTORE VALIDATE とメンテナンスも含みます。シングル・インスタンス、Oracle Restart、RAC (FRA と snapshot controlfile は ASM 上、ジョブはオープンしている最初のインスタンスでのみ実行) ごとに手順を分けています。OL/RHEL 7.9–9 対応。オプション: RMAN リカバリ・カタログ (CREATE CATALOG、REGISTER、wallet による接続、カタログ自体のバックアップ) と月次のリストア訓練 (RESTORE … VALIDATE + PREVIEW ジョブ、テストサーバーでの実際のリストア)。

構成: サーバー 1 台 (シングル・インスタンスまたは Oracle Restart) または RAC (2–8 ノード)

開始前の確認

  • データベース … がオープンしており、/etc/oratab に登録されている。ORACLE_HOME は …。…データベースが Clusterware に登録されている (srvctl config database -db …)。…
  • データベースのログ・モードと FRA 設定を把握している。ARCHIVELOG が無効の場合、有効化のための短時間の停止 (再起動) を計画済みである。
  • ディスク領域が十分である: FRA (…) に約 … GB…、バックアップ・ディレクトリ (…) に約 … GB……、ダンプ・ディレクトリ (…) に約 … GB…。計算は概算です (「注意事項」セクション)。バックアップ領域はデータベースのディスクとは別にしてください。
  • cron (cronie) がインストールされ稼働している。ジョブは root 所有の /etc/cron.d ファイルにより oracle ユーザーとして実行される。PAM (/etc/security/access.conf) が oracle の cron ジョブをブロックしていない。
  • oracle OS ユーザーのパスワードを把握しており (DBMS_SCHEDULER の資格証明用)、$ORACLE_HOME/bin/jssu が setuid root である (root.sh 実行済み)。
  • サーバーから電子メールを送信できる: ローカル MTA (postfix) がリレー・サーバーに転送するよう設定されているか、mailx に SMTP 設定が行われている。
  • TDE キーストアが構成されオープンしている (v$encryption_wallet → OPEN)。キーストアのパスワードとバックアップを安全な場所に保管している。キーストアを失うと暗号化バックアップは読み取れない。
  • ライセンス要件を満たしている: …並列度とブロック・チェンジ・トラッキングは Enterprise Edition で使用可能…。… 圧縮には Advanced Compression Option が必要……。ディスク・バックアップの暗号化には Advanced Security Option が必要……。Data Pump の COMPRESSION=ALL には Advanced Compression Option が必要…。…Standard Edition 2 では RMAN は単一チャネルで動作し、BASIC 圧縮を使用できる。…
  • バックアップの 2 つ目のコピーの置き場所が決まっている: テープ/MML、オブジェクト・ストレージまたは別のサーバー。バックアップの唯一のコピーをデータベースと同じサーバーに置いてはならない。
  • OL/RHEL 7.9: 19c ではサポートされ、ソフトウェアは yum でインストールします。OL7 の Premier Support は 2024 年 6 月に終了し (Extended Support は継続中)、RHEL 7 には Extended Life Cycle Support サブスクリプションが必要です。新規構築では OL/RHEL 8–9 を選択してください。
  • FRA が ASM ディスク・グループ (…) 上にある…。すべてのインスタンスが同じ FRA を参照し、各インスタンスのアーカイブ先は USE_DB_RECOVERY_FILE_DEST である…。

ガイドのフェーズ

  • 準備 — 現状とサイズを測定する · バックアップ・ディレクトリを作成する · FRA を設定する · ARCHIVELOG モードを有効にする · ARCHIVELOG モードを有効にする (srvctl) · cron と oracle ユーザーの cron 権限を準備する …
  • 環境ファイルと RMAN の構成 — 環境ファイルを作成する… (…)… · ブロック・チェンジ・トラッキングを有効にする · RMAN 構成ファイルを作成する · RMAN 設定を適用する · control_file_record_keep_time を保存ポリシーに合わせて設定する
  • リカバリ・カタログ (オプション) — カタログ・データベースにカタログ所有者を作成する · カタログ接続用の TNS ファイルを作成する · カタログの資格証明を wallet に追加する · カタログ・スキーマを作成する (CREATE CATALOG) · データベースをカタログに登録する (REGISTER DATABASE) · カタログ・データベースをバックアップする
  • RMAN コマンド・ファイルとバックアップ・スクリプト — level 0 コマンド・ファイルを作成する · level 1 コマンド・ファイルを作成する · アーカイブログ用コマンド・ファイルを作成する · 週次の検証・メンテナンス・ファイルを作成する · 月次リストア訓練ファイルを作成する · バックアップ・スクリプトを作成する …
  • Data Pump ユーザーと wallet — エクスポート・ユーザーとディレクトリ・オブジェクトを作成する · wallet を作成し、資格証明を追加する · wallet を他のノードにコピーする · sqlnet.ora を作成する (バックアップ・スクリプト専用) · tnsnames.ora を作成する (バックアップ・スクリプト専用)… (…)… · パスワードなしの接続を試す
  • 初回バックアップ (手動実行) — 最初の level 0 バックアップを取得する · アーカイブログ・バックアップを試す · level 1 バックアップを試す · 最初の Data Pump エクスポートを取得する · RMAN の記録からバックアップを確認する
  • スケジュール: cron — cron ファイルを作成する · cron ファイルの権限を設定し、古い crontab ブロックを削除する · cron と同じ環境で手動テストする · cron がジョブを実行していることを確認する
  • スケジュール: systemd timer — サービスと timer のファイルを作成する · timer を有効にする
  • スケジュール: DBMS_SCHEDULER — OS の資格証明を作成する · スケジュール・ジョブを作成する · ジョブを今すぐ実行して試す
  • メンテナンスと監視 — 週次の検証とメンテナンスを一度実行する · リストア訓練を一度実行する · 監視用の問合せ · バックアップをサーバー外にコピーし、リカバリを試す · 別のテストサーバーで実際にリストアする · カタログ内のバックアップ履歴を監視する
環境に合わせた手順プランを開く →