Oracleのバックアップについてメモ(特にRMAN)

Oracleのバックアップについてメモ。

バックアップ対象

  • 物理バックアップ
    • データファイル
    • 制御ファイル
    • REDOログ

   など

  • 論理バックアップ
    • ストアド・プロシージャ

   など

バックアップ方法

  • 物理バックアップ
    • Recovery Manager(RMAN)(コマンドおよびOEMの形式で提供)
    • ユーザー管理のバックアップおよびリカバリ(OSコマンドとSQL*Plusリカバリ・コマンドで実施)
  • 論理バックアップ

Recovery Manager(RMAN)

概要

Recovery Manager(RMAN)とは、データベースでバックアップおよびリカバリ・タスクを実行し、バックアップ計画の管理を自動化するOracle Databaseクライアントのことです。Recovery Managerによって、データベースのバックアップ、リストアおよびリカバリが大幅に簡単になります。

バックアップ操作
  • 対話開始
RMAN
  • 認証

SQL*Plusによるデータベースへの接続と同じ方法で指定および認証する。SYSDBA権限必須で、AS SYSDBAは暗黙指定。

CONNECT TARGET SYS@接続識別子
  • バックアップ(バックアップ・セット)
BACKUP DATABASE;
  • バックアップ(イメージ・コピー)
BACKUP AS COPY DATABASE;
  • ARCHIVELOGモードでのデータベースのバックアップ
BACKUP DATABASE PLUS ARCHIVELOG;
  • NOARCHIVELOGモードでのデータベースのバックアップ
    • オフライン(ただしマウント状態)でデータベースをバックアップ
BACKUP DATABASE;
BACKUP INCREMENTAL LEVEL 0 DATABASE;
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
BACKUP INCREMENTAL LEVEL 1 DATABASE;
リストア操作
  • リストアのプレビュー
RESTORE DATABASE PREVIEW SUMMARY;
STARTUP FORCE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
SQL 'ALTER TABLESPACE users OFFLINE';

RUN
{
  SET NEWNAME FOR DATAFILE '/disk1/oradata/prod/users01.dbf' 
    TO '/disk2/users01.dbf';
  RESTORE TABLESPACE users;
  SWITCH DATAFILE ALL;   # update control file with new file names
  RECOVER TABLESPACE users;
}

SQL 'ALTER TABLESPACE users ONLINE';
情報表示操作
LIST
REPORT SCHEMA;

RMAN使用上の注意

Oracle Databaseバックアップおよびリカバリ・リファレンス - BACKUP

RMANでバックアップできるのは、データファイル、制御ファイル、サーバー・パラメータ・ファイル、アーカイブREDOログ・ファイル、およびこれらのファイルのRMANバックアップのみです。その他のデータベース関連ファイル(ネットワーク構成ファイル、パスワード・ファイル、ブロック・チェンジ・トラッキング・ファイルなど)およびOracleホーム・ディレクトリの内容は、バックアップできません。また、外部表やBFILEデータ型などのOracle Databaseの一部の機能についても、同様に、前述のファイル以外のファイルにデータが格納されます。RMANでは、これらのファイルをバックアップできません。

RMAN実行例(NO ARCHIVE LOGモードで、ファイル形式でバックアップ)

1. マウント状態へ変更
sqlplus sys as sysdba
alter database mount;
quit
2. RMANでバックアップ(オフライン)実行
rman
connect target sys
backup device type disk database format 'C:\tem\db';
quit
3. オープン状態に戻す
sqlplus sys as sysdba
alter database open;
quit
(補足)バックアップ実行時の標準出力内容
backupが開始されました(開始時間: 12-10-21)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=10 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル・ファイル番号=00001 名前=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SY
STEM01.DBF
入力データファイル・ファイル番号=00002 名前=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SY
SAUX01.DBF
入力データファイル・ファイル番号=00005 名前=C:\APP\ADMINISTRATOR\ORADATA\ORCL\EX
AMPLE01.DBF
入力データファイル・ファイル番号=00003 名前=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UN
DOTBS01.DBF
入力データファイル・ファイル番号=00004 名前=C:\APP\ADMINISTRATOR\ORADATA\ORCL\US
ERS01.DBF
チャネルORA_DISK_1: ピース1(12-10-21)を起動します
チャネルORA_DISK_1: ピース1(12-10-21)が完了しました
ピース・ハンドル=C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_10
_21\O1_MF_NNNDF_TAG20121021T233050_8881RVNB_.BKP タグ=TAG20121021T233050 コメン
ト=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:02:25
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
現行の制御ファイルをバックアップ・セットに組み込んでいます
バックアップ・セットに現行のSPFILEを組み込んでいます
チャネルORA_DISK_1: ピース1(12-10-21)を起動します
チャネルORA_DISK_1: ピース1(12-10-21)が完了しました
ピース・ハンドル=C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_10
_21\O1_MF_NCSNF_TAG20121021T233050_8881XJ6K_.BKP タグ=TAG20121021T233050 コメン
ト=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:03
backupが完了しました(完了時間: 12-10-21)

⇒バックアップファイルは「C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_10_21\O1_MF_NCSNF_TAG20121021T233050_8881XJ6K_.BKP
」に作成されたとわかる。

フラッシュバック

通常、フラッシュバック機能が適用されるほとんどの場合は、フラッシュバック機能の方がメディア・リカバリより効率的で簡単です。

参考

辿り方は以下の通り。

Oracle Database 11g リリース2 (11.2) ドキュメント>Database Administration>Backup and Recovery>バックアップおよびリカバリ・ユーザーズ・ガイド
 (※上記ページの「Recovery Managerのドキュメント・ロードマップ」の項が、RMANドキュメントのリンク集になっている。)