*[[Oracle]]/RMAN [#r2347e38] #contents **キーワード [#s6fc0669] |BGCOLOR(#f0f8ff):''キーワード''|BGCOLOR(#f0f8ff):''説明''| |完全リカバリ|REDOなどを適用しDBの更新状態が最新でリカバリされること| |不完全リカバリ|REDOログ破損などにより過去の時間までのリカバリ。データベースをMOUINT状態にする必要がある| |リストア|バックアップファイルから、データを物理的に復元すること| |リカバリ|REDOログから最新の更新状態を適用していく| #br **RMAN接続 [#v609caf5] -- RMAN接続後のDATE型のフォーマットを時分秒まで表示できるようにする NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" ※ Windowsの場合は、SET NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss -- RMANへ接続 rman target [USER]/[PASS]@[識別子] ~ #br **RMANリポジトリ構成 [#b45b9bf6] RMANリポジトリはデフォルトでは制御ファイルで管理している。~ 制御ファイルのリポジトリ情報は、保存期間に制限がある。(CONTROL_FILE_RECORD_KEEP_TIME初期化パラメータで指定(デフォルトは7日))~ リカバリ・カタログを作成し制御ファイルのリポジトリ情報を保持することで保存期間の制限をなくせる。~ -- 表領域を作成 CREATE TABLESPACE rcat_tbs DATAFILE '/opt/app/oracle/oradata/orcl11/rman.dbf' SIZE 15M; --リカバリカタログ用のユーザーを作成 CREATE USER rmansys IDENTIFIED BY oracle TEMPORARY TABLESPACE temp DEFAULT TABLESPACE rcat_tbs QUOTA UNLIMITED ON rcat_tbs; --リカバリカタログオーナー権限を付与 GRANT RECOVERY_CATALOG_OWNER TO rmansys; --リカバリカタログの作成 $ rman RMAN> CONNECT CATALOG rmansys/oracle@<SID> RMAN> CREATE CATALOG; --ターゲット・データベースをリカバリ・カタログに登録 $ rman TARGET / CATALOG rmansys/oracle@<SID> ※ターゲットDBと、リカバリ・カタログの両方に接続 RMAN> REGISTER DATABASE; ~ #br **RMANコマンド [#s11e6303] *** BACKUP [#cc3b98d1] BACKUP { DATABASE [追加オプション] | TABLESPACE 表領域[,表領域] | DATAFILE 'ファイル名'['ファイル名'] | SPFILE] [オプション] |BGCOLOR(#f0f8ff):''オプション''|BGCOLOR(#f0f8ff):''説明''| |AS BACKUPSET|バックアップセット(RMAN専用の形式でリカバリが簡単)| |AS COPY|イメージコピー(OSに存在してるファイルと全く同じ形式)| |FORMAT '保存先'|バックアップ先(省略時はCONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'フォーマット'で指定された場所)| |AS COMPRESSED BACKUPSET|バックアップセットをバックアップする際にファイルを圧縮する| |INCLUDE CURRENT CONTROLFILE|制御ファイルも一緒にバックアップする| |INCREMENTAL LEVEL 0|レベル0増分バックアップ。バックアップセット、イメージコピーどちらも可| |INCREMENTAL LEVEL 1 [CUMULATIVE]|レベル1増分バックアップ。バックアップセットでのみ指定可能&br;CUMULATIVE句を付与すると累積増分バックアップ(レベル0からの差分)になる| |KEEP UNTIL TIME 保存期限|アーカイブログの保存日数を指定する(この期限を過ぎると不要とマークされる)&br;コマンド実行次点から10日間保存したい場合は、'SYSDATE+10'| |BGCOLOR(#f0f8ff):''追加オプション''|BGCOLOR(#f0f8ff):''説明''| |PLUS ARCHIVELOG [ DELETE INPUT ]|全体バックアップ+アーカイブREDOログファイルも同時にバックアップ| |SKIP READONLY|読み取り専用領域をバックアップ対象から除外| #br *** DELETE [#dc4053ae] DELETE [オプション] キーワード |BGCOLOR(#f0f8ff):''オプション''|BGCOLOR(#f0f8ff):''説明''| |EXPIRED|指定したバックアップファイルが期限切れの場合、削除する| |OBSOLETE [保存ポリシー]|保存ポリシーに合致したファイルを削除する| |BGCOLOR(#f0f8ff):''キーワード''|BGCOLOR(#f0f8ff):''削除対象''| |BACKUPSET [キー]|バックアップセット| |COPY|全てのイメージコピー| |DATAFILECOPY キー|指定したイメージコピー| |BACKUP OF TABLESPACE 表領域|領域| |CONTROLFILECOPY キー|制御ファイル| #br *** RESTORE [#n29afb48] RESTORE [ AUTOMATIC ] { DATABASE | TABLESPACE 表領域名 | DATAFILE { ファイル番号|'ファイル名'} } RMANを使用してファイルをリストア(取得しておいたバックアップから、データを物理的に復元)する。~ RMANでアーカイブREDOログファイルをバックアップしている場合はアーカイブREDOログのリストアは不要。~ ORA-19573 が発生する場合、DB全体の場合はMOUNT、表領域の場合は対象表領域がOFFLINEになっていることを確認する。~ |BGCOLOR(#f0f8ff):''オプション''|BGCOLOR(#f0f8ff):''説明''| |AUTOMATIC|自動的にアーカイブREDOログファイルの場所を判断し適用することができる(省略した場合は、必要なアーカイブREDOログファイルが表示される)| |DATABASE|データベース全体のリストア。マウント状態でリストアする(RMAN> STARTUP FORCE MOUNT;)データベースOPENは ALTER DATABASE OPEN| |TABLESPACE|表領域のリストア。表領域はOFFLINEにする(ALTER TABLESPACE 表領域 OFFLINE)| |DATAFILE|データファイルのリストア。表領域はOFFLINEにする(ALTER DATABASE DATAFILE 'ファイル名' OFFLINE)| ~ RESTORE ARCHIVELOG FROM SEQUENCE ログ順序番号 アーカイブREDOログファイルのみリストアする。~ #br *** RECOVER [#mbec0e60] RECOVER { DATABASE | TABLESPACE 表領域名 | DATAFILE { ファイル番号|'ファイル名'} } [ DELETE ARCHIVELOG ] メディアリカバリ(変更内容を反映させ最新の状態に戻す)を実行する。~ DELETE句を使用するとリストアされたアーカイブREDOログファイルを削除する。~ アーカイブREDOログファイルがフラッシュリカバリ領域に保存されている場合は自動で削除される。~ ~ #br ***LIST [#xab611fa] LIST [EXPIRED] { BACKUP [SUMMARY] | COPY | ARCHIVELOG ALL | RESTORE POINT ALL } [オプション]; |BGCOLOR(#f0f8ff):''オプション''|BGCOLOR(#f0f8ff):''説明''| |EXPIRED|期限切れの対象ファイルを表示| |BACKUP|バックアップセットに関する情報を表示| |COPY|データベースファイルとアーカイブREDOログファイルのコピーを表示| |ARCHIVELOG ALL|アーカイブログに関する情報を表示| |RESTORE POINT ALL|リストアポイントを表示| 詳細は[[Databaseバックアップおよびリカバリ・リファレンスのLIST>https://docs.oracle.com/cd/E60665_01/db112/RCMRF/rcmsynta027.htm#i1017406]]参照。~ |BGCOLOR(#f0f8ff):''ステータス''|BGCOLOR(#f0f8ff):''状態''|BGCOLOR(#f0f8ff):''RMANリポジトリ情報とファイルの状態''| |AVAILABLE|正常|リポジトリに登録されファイルも存在する| |EXPIRED|期限切れ|リポジトリに登録されているがファイルが存在しない| |UNAVAILABLE|使用不可|CHANGEコマンドで意図的に使用不可にした状態| #br *** CONFIGURE [#ef864d3b] SHOW ALL 設定されてるパラメータを表示する~ ~ CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'ファイルフォーマット' バックアップファイルの保存先を指定。ファイル名が一意になるよう「%U」変数を使用すること~ %TはYYYYMMDDになる。その他の置換変数(FormatSpec)は[[WEB>https://docs.oracle.com/cd/E16338_01/backup.112/b56270/rcmsubcl010.htm]]参照~ フラッシュリカバリ領域を指定(ファイルフォーマットブランク)している場合はOMFにより一意なファイルが作成される~ フラッシュリカバリ領域以外を指定した場合は、高速リカバリ領域によるディスク管理を行わない~ ~ CONFIGURE CONTROLFILE AUTOBACKUP ON バックアップの最後(BACKUPコマンドを発行)に制御ファイルとSPファイルもバックアップする。~ 表領域のオフライン/オンラインの変更、データファイル追加/削除した場合も自動保存される。~ ~ CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '保存先%F' フラッシュリカバリ領域以外に制御ファイルをバックアップする場合に保存先を指定する。~ 保存先の指定には「%F」置換変数を含めDBIDや日付が含まれたファイルを作成する必要がある。~ ~ CONFIGURE BACKUP OPTIMIZATION ON データベース全体のバックアップを行う際、読取り専用表領域のデータファイルやオフラインファイル、リテンションポリシーに従って保存されているファイルをスキップする。~ 「不要」と判断されているファイルはバックアップ対象になる。~ ~ CONFIGURE EXCLUDE FOR TABLESPACE 表領域 データベース全体バックアップを行う際、除外したい表領域を指定。~ ~ CONFIGURE DEFAULT DEVICE TYPE TO { DISK | SBT } デフォルトデバイスを指定。ディスクまたはテープ~ ~ CONFIGURE DEVICE TYPE DISK PARALLELISM 並列度 複数のチャネルを起動して並列処理を行うことができる~ ~ CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO { BACKUPSET | COPY | COMPRESSED BACKUPSET } デフォルトのバックアップを指定。バックアップセット、イメージコピー、圧縮バックアップセット~ ~ CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'ファイルフォーマット' バックアップファイルの保存先を指定。ファイル名が一意になるよう「%U」変数を使用すること~ %TはYYYYMMDDになる。その他の置換変数(FormatSpec)は[[WEB>https://docs.oracle.com/cd/E16338_01/backup.112/b56270/rcmsubcl010.htm]]参照~ フラッシュリカバリ領域を指定(ファイルフォーマットブランク)している場合はOMFにより一意なファイルが作成される~ フラッシュリカバリ領域以外を指定した場合は、高速リカバリ領域によるディスク管理を行わない~ ~ CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 最大サイズ バックアップセットで作成されるピースの最大バックアップピースサイズを指定~ ~ CONFIGURE 〜 CLEAR 設定値をデフォルトに戻す~ #br ***REPORT [#y7b8f288] -- 表領域、データファイル名、サイズなどのスキーマ情報を表示。BACKUP DATABASEの対象ファイルとなる。 REPORT SCHEMA; -- 現状で構成しているバックアップ保存方針、またはオプションで指定した保存方針を基に「不要」または「バックアップの作成」が必要なバックアップを表示。 REPORT { OBSOLETE | NEED BACKUP } [保存ポリシー]; |BGCOLOR(#f0f8ff):''保存ポリシー''|BGCOLOR(#f0f8ff):''説明''| |増分バックアップ個数&br;NEED BACKUPのみ|&color(#0000ff){INCREMENTAL}; &color(#ff0000){個数};&br;指定した個数を超える増分バックアップを指定しなければリカバリが完了しないファイル| |日数&br;NEED BACKUPのみ|&color(#0000ff){DAYS}; &color(#ff0000){日数};&br;指定した日数以上バックアップしてないファイル| |冗長性|&color(#0000ff){REDUNDANCY}; &color(#ff0000){個数};&br;NEED BACKUP:指定した個数以上のバックアップ数が取得されてないファイル=必要なファイル&br;OBSOLETE :指定した個数以上のバックアップ数が取得されているファイル=不要なファイル| |リカバリウィンドウ|&color(#0000ff){RECOVERY WINDOW OF &color(#ff0000){日数}; DAYS};&br;NEED BACKUP:指定した日数より古いアーカイブREDOログファイルを適用しなければリカバリできないファイル&br;OBSOLETE :指定した日数より古いアーカイブREDOログファイルを適用しなければリカバリできるファイル| ~ ** 不完全リカバリ [#qde74f73] データベースをMOUINT状態にする必要がある。 RUN { SET UNTIL TIME "TO_DATE('2017-04-09 23:50:00','YYYY-MM-DD HH24:MI:SS')"; RESTORE DATABASE; RECOVER DATABASE; } ある特定時間の状態に戻したい場合は SET UTIL TIME で時間をセットする。(SETはRUNコマンド内で実行する必要がある)~ ALTER DATABASE OPEN RESETLOGS; でOPENする必要がある。~ ~ #br **アーカイブログの削除 [#m3b1083a] 削除条件を指定した後、対象ファイルが表示され、YES/NO の選択がでる。YESを選択することで削除される。~ 削除されたアーカイブログは、V$ARCHIVED_LOG の NAME 列が空白になる。~ -- RMAN に接続 NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" rman target / rman target [USER]/[PASS]@[識別子] -- アーカイブログのリスト表示 list archivelog all; list archivelog like '%ファイル%'; -- 7日以上前のアーカイブログ削除 delete archivelog until time 'sysdate-7'; -- シーケンスNo 105 までのアーカイブログ削除 delete archivelog until sequence 105 [ thread 1 ];