RMANバックアップを自動化するスクリプトの作り方

OS

Oracle Databaseのバックアップを定期的かつ確実に取得するには、RMAN(Recovery Manager)による自動化が最も有効です。
本記事では、実際に動作確認済みのスクリプトを用いて、バックアップの自動化手順を解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


■ 自動化の全体構成(テキスト図)

+-----------------------------+
| Linuxサーバー(Oracle稼働)|
+-----------------------------+
▼ cronで定期実行
+------------------------------+
| /home/oracle/scripts/backup_rman.sh |
+------------------------------+

+------------------------------+
| /home/oracle/scripts/backup.rman |
+------------------------------+

+------------------------------+
| /home/oracle/rman_backup/*.bkp(出力先) |
+------------------------------+

■ 前提条件

  • Oracle Database が稼働している(例:19c)
  • データベースがアーカイブログモードである
  • Oracleユーザーの環境変数(ORACLE_HOMEORACLE_SID)が正しく設定されている
  • /home/oracle/rman_backup ディレクトリが作成済み

■ 1. RMANスクリプト(backup.rman)の作成

-- /home/oracle/scripts/backup.rman

RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT '/home/oracle/rman_backup/db_%U.bkp';
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
RELEASE CHANNEL ch1;
}

■ 2. シェルスクリプト(backup_rman.sh)の作成

# /home/oracle/scripts/backup_rman.sh

#!/bin/bash

export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

export LOG_DIR=/home/oracle/scripts/log
export DATE=$(date '+%Y%m%d_%H%M')
export LOG_FILE=$LOG_DIR/backup_$DATE.log

mkdir -p $LOG_DIR

rman target / cmdfile=/home/oracle/scripts/backup.rman log=$LOG_FILE
  • 実行権限を付与します:
chmod +x /home/oracle/scripts/backup_rman.sh

■ 3. バックアップ出力先ディレクトリの作成

mkdir -p /home/oracle/rman_backup
chown oracle:oinstall /home/oracle/rman_backup
chmod 700 /home/oracle/rman_backup

■ 4. 手動で動作確認

/home/oracle/scripts/backup_rman.sh

バックアップが成功すれば /home/oracle/rman_backup/.bkp ファイルが作成されます。
ログは /home/oracle/scripts/log/backup_YYYYMMDD_HHMM.log に出力されます。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


■ 5. cronで定期実行を設定

crontab -e

以下を追加して、毎日2:00にバックアップ実行

0 2 * * * /home/oracle/scripts/backup_rman.sh

■ 6. バックアップとログの確認方法

バックアップファイルの確認

ls -lh /home/oracle/rman_backup/

RMAN上で確認

rman target /
RMAN> list backup;

ログの確認

cat /home/oracle/scripts/log/backup_YYYYMMDD_HHMM.log

■ まとめ

ステップ内容
スクリプト作成backup.rman にRMAN定義、backup_rman.sh で自動実行構成
実行権限付与chmod +x を忘れずに
cron登録定期的に自動バックアップを実現
ログ確認実行後は .log で成否をチェック


[参考]
バックアップおよびリカバリ・ユーザーズ・ガイド

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました