不足しているデータベース(ドキュメントID 1438776.1)制御ファイルのバックアップを復元する方法

制御ファイルのバックアップ不足しているときにデータベースを復元する方法(ドキュメントID 1438776.1)

に適用されます:

Oracleデータベース-エンタープライズ・エディション-バージョン9.2.0.1以降
のOracle Databaseのクラウドスキーマサービス-バージョンN / A以降
のOracle DatabaseのExadataクラウドマシン-バージョンN / A以降
のOracleクラウドインフラストラクチャ-データベースサービス-バージョンN / A以降
のOracleデータベースのExadataエクスプレスクラウドサービス-バージョンN / A以降
このドキュメントの情報は、任意のプラットフォームに適用されます。
*** *** 16-NOV-2015に関連性のためにチェック

ゴール

顧客がデータベースをマウントし、リストアを開始することは必須である制御ファイルのバックアップを除き、データベースのすべてのバックアップ・ピースを持っている場合は、この記事では、場合に役立ちます。

顧客が(制御ファイルのバックアップを除く)すべてのバックアップ・セットのデータベースを持っている場合は、この記事が役立ちます。制御ファイルのバックアップは、データベースをインストールし、必要なリストアを開始することです。

溶液

ここでは、我々は、現在のデータベース構造を持っているし、彼/彼女は、制御ファイルのバックアップを欠落しているお客様の環境をシミュレートする一つのテストケースを与えています

ここで、我々は現在のクライアントのデータベース構造を持っているし、シミュレートお客様の環境が制御ファイルのバックアップの欠如テストケース与える

現在のデータベース構造を参照してください。1.   現在のデータベースの構造を表示します

RMAN>レポートスキーマ; 
代わりに、リカバリ・カタログのターゲット・データベースの制御ファイルを使用して
データベーススキーマのレポート

常設データファイルの一覧
=========================== 
ファイルサイズ(MB)表領域RB SEGSデータ・ファイルの名前
---- -------- -------------------- ------- ------- ----------------- 
1 510 SYSTEM *** + DATA / ora102 /データファイル/ system.257.775126603 
2 595 UNDOTBS1 *** + DATA / ora102 /データファイル/ undotbs1.256.775126561 
3 250 SYSAUX *** + DATA / ora102 /データファイル/ sysaux.258.775126637 
4 28 USERS *** + DATA / ora102 /データファイル/ users.259.775126653 
5 50 USERS *** + DATA / ora102 /データファイル/ users.262.776000421 

一時一覧ファイルの 
=======================
ファイルサイズ(MB)表領域MAXSIZE(MB)一時ファイル名
---- -------- -------------------- ----------- ------- ------------- 
1つの29 TEMP 32767 /u01/app/oracle/oradata/ora102/ORA102/datafile/o1_mf_temp_7lqq1qko_.tmp 

RMAN>終了

リカバリマネージャの完全な。

 

2.ダミーのインスタンスを作成/データファイル1のバックアップピースからを抽出し、バックアップ・ピースからデータ・ファイル1を復元するために既存のデータベースを使用することができ

    仮想インスタンスの作成/バックアップファイルからデータファイルを抽出し、バックアップファイルからデータファイル1 1を復元するために、既存のデータベースを使用することができます

SQL> DECLAREの
  DEVTYPEのVARCHAR2(256); 
  ブール行わ; 
  BEGIN 
  DEVTYPE = dbms_backup_restore.DeviceAllocate(タイプ=> NULL、IDENT => 'D1')を、
  dbms_backup_restore.RestoreSetDatafile; 
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 1、toname => '/u03/datafile1.dbf')。
  dbms_backup_restore.RestoreBackupPiece(行わ=>行わ、ハンドル=> '/ U03 /バックアップ/ 2cn5blrn_1_1'、paramsは=> NULL); 
  dbms_backup_restore.DeviceDeallocate; 
 終わり; 
/

3.データファイル1と制御ファイルの作成    、データファイル1を使用して制御ファイルを作成します。

SQL>は!猫は/u03/1.ctl 
CONTROLFILE REUSEデータベース"ORA102" NORESETLOGS ARCHIVELOG CREATE 
MAXLOGFILES 16の
MAXLOGMEMBERS 3 
MAXDATAFILES 100の
MAXINSTANCES 8 
MAXLOGHISTORY 292 
LOGFILE 
GROUP 1「は/ u01 / app / oracle / oradataに/ ora102 / ORA102 / ONLINELOG / o1_mf_1_7lqq1m62_を。ログ'SIZEの50M、
グループ2 '/u01/app/oracle/oradata/ora102/ORA102/onlinelog/o1_mf_2_7lqq1myr_.log' SIZEの50M、
グループ3' / U01 /アプリ/オラクル/ oradataに/ ora102 / oRA102 / ONLINELOG / o1_mf_3_7lqq1nr0_。 「SIZE 50Mログイン
DATAFILE 
'/u03/datafile1.dbf' 
CHARACTER SET WE8ISO8859P1 
SQL> @ / U03 / 1.ctl 

制御ファイルが作成されました。

SQL>五$データファイルから名前を選択します。

-------------------------------------------------- ------------------------------ 
/u03/datafile1.dbf 

SQL>終了し
たOracle Database 10g付属Enterprise Editionのリリース10.2.0.5から切断します0.0 -生産
パーティション、OLAP、データマイニングとReal Application Testingのオプション付き

すべてのCataogピース...バックアップ4. Cataogすべてのバックアップ・セット

[オラクル@ oel57〜] $ Recovery Managerターゲット/ 

リカバリマネージャ:リリース10.2.0.5.0 -木3月8日11時55分58秒2012年に制作

著作権(C)1982、2007、Oracleの。全著作権所有。

ターゲット・データベースに接続:ORA102(DBID = 396070408、開いていない)

RMAN>でカタログの開始'/ U03 /バックアップ/' NOPROMPT。

ターゲット・データベースの制御ファイルの代わりに、リカバリ・カタログの使用
パターン/ U03 /バックアップ/一致するすべてのファイルを検索し

、データベースへのファイル不明の一覧を
===================== ================ 
ファイル名:/ U03 /バックアップ/ 28n5bki6_1_1 
ファイル名:/u03/backup/ORA1122-backup-080312.log 
ファイル名:/ U03 /バックアップ/ 2dn5blsq_1_1 
ファイル名前:/ U03 /バックアップ/ 2cn5blrn_1_1 
ファイル名:/u03/backup/ora102-080312.log
ファイル名:/ U03 /バックアップ/ 27n5bkd0_1_1 
カタログファイル... 
済カタログ

カタログ化されたファイルの一覧
======================= 
ファイル名:/ U03 /バックアップ/ 2dn5blsq_1_1 
ファイル名:/ U03 /バックアップ/ 2cn5blrn_1_1 

どのファイルをカタログ化されないの一覧
================================ ======= 
ファイル名:/ U03 /バックアップ/ 28n5bki6_1_1 
RMAN-07518:理由:外国データベースファイルのDBID:2353175563データベース名:ORA1122 
ファイル名:/u03/backup/ORA1122-backup-080312.log 
RMAN-07517 :理由:ファイル・ヘッダーが破損している
ファイル名:/u03/backup/ora102-080312.log 
RMAN-07517:理由:ファイル・ヘッダーが破損している
ファイル名:/ U03 /バックアップ/ 27n5bkd0_1_1 
RMAN-07518:理由:外国のデータベースファイルのDBID:2353175563データベース名:ORA1122 

RMAN>リストのバックアップ;

代わりに、リカバリ・カタログのターゲット・データベースの制御ファイルを使用して

バックアップ・セットのリスト
=================== 

BSキータイプLVサイズデバイスタイプ経過時間完了時間
------- ---- - ---------- ----------- ------------ ----------- ---- 
1フル1.05M DISK夜十二時00分00秒08-MAR-12 
BPキー:1つの状態:AVAILABLE圧縮:YESタグ:TAG20120308T101415の
ピース名:/ U03 /バックアップ/ 2dn5blsq_1_1 
含まれる制御ファイル:CKP SCN:1320981 CKP時間:08-MAR-12 
SPFILEが含まれています:修正時間:08-MAR-12 

BSキータイプLVサイズデバイスタイプ経過時間完了時間 
----- - ---- - ---------- ----------- ------------ --------- ------
2フル107.40M DISK夜12時00分00秒08-MAR-12 
BPキー:2つの状態: AVAILABLE圧縮:YESタグ:TAG20120308T101415
ピース名:/ U03 /バックアップ/ 2cn5blrn_1_1 
バックアップセット2内のデータファイルの一覧
ファイルの種類LV CKP SCN CKP時間名
---- - ---- ---------- ------ --- ---- 
1フル1320981 08-MAR-12 + DATA / ora102 /データファイル/ system.257.775126603 
2フル1320981 08-MAR-12 
3フル1320981 08-MAR-12 
4フル1320981 08-MAR-12 
5フル1320981 08-MAR-12 

RMAN>

 

5.次にDBMS_BACKUP_RESTOREパッケージを使用してデータファイルを復元します。データファイルのしてください音名、私たちは、データファイルを復元するために、任意の一意の名前を付けることができ、ここでは重要ではありません

さて、DBMS_BACKUP_RESTOREパッケージは、データファイルを復元します。データファイル名は重要ではないことに注意してください、我々は、データファイルを復元するために、任意の一意の名前を使用することができます

SQL> -使用するスクリプトの

DECLAREの
  DEVTYPEのVARCHAR2(256); 
  ブール行わ; 
BEGIN 
  DEVTYPE = dbms_backup_restore.DeviceAllocate(タイプ=> NULL、IDENT => 'D1')を、
  dbms_backup_restore.RestoreSetDatafile; 
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 4、toname => '/u03/datafile4.dbf')。
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 2、toname => '/u03/datafile2.dbf')。
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 3、toname => '/u03/datafile3.dbf')。
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 5、toname => '/u03/datafile5.dbf')。
  dbms_backup_restore.RestoreDatafileTo(dfnumber => 1、toname => '/u03/datafile1.dbf')。
  dbms_backup_restore.RestoreBackupPiece(なさ=>行って、ハンドル=> '/ U03 /バックアップ/ 2cn5blrn_1_1'、のparams => ヌル); 
  dbms_backup_restore.DeviceDeallocate;
終わり; 
/ 

PL / SQLプロシージャが正常に完了しました。

 

メタデータは、データ・ファイルのみ1が表示されます。我々は、すべての関連する復元dataifilesと制御ファイルを再作成する必要があります

メタデータは、データファイルだけ1が表示されます。私たちは、に復元されたすべての関連データを使用する必要が制御ファイルを再作成します

SQL>五$データファイルから名前を選択します。

NAME 
------------------------------------------------- ------------------------------- 
+ DATA / ora102 /データ・ファイルの/ system.257.775126603 

SQL> SHUTDOWN IMMEDIATE; 
ORA-01109:データベースオープンしていない データベースがマウント解除。 ORACLEインスタンスがシャットダウンします。SQL>起動NOMOUNT; ORACLEインスタンスが始まりました。 トータルシステムグローバル領域209715200はバイト 固定サイズ1272864バイト 可変サイズ142607328バイト データベースバッファ58720256バイト やり直しバッファ7114752バイトSQL>を!猫は/u03/1.ctl CONTROLFILE REUSEデータベース"ORA102" NORESETLOGS ARCHIVELOG CREATE MAXLOGFILES 16の MAXLOGMEMBERS 3

MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u01/app/oracle/oradata/ora102/ORA102/onlinelog/o1_mf_1_7lqq1m62_.log' SIZE 50Mと、 GROUP 2 '/u01/app/oracle/oradata/ora102/ORA102/onlinelog/o1_mf_2_7lqq1myr_.log' SIZE 50Mと、 GROUP 3 '/u01/app/oracle/oradata/ora102/ORA102/onlinelog/o1_mf_3_7lqq1nr0_.log' SIZE 50M DATAFILE '/u03/datafile1.dbf'、 '/u03/datafile4.dbf'、 「/ U03 / datafile2.dbf」、 '/u03/datafile3.dbf'、 '/u03/datafile5.dbf' 文字セットWE8ISO8859P1 SQL> @ / U03 / 1.ctl 制御ファイルが作成されました。 SQL>五$データファイルから名前を選択します。 /u03/datafile2.dbf /u03/datafile3.dbf /u03/datafile4.dbf / U03 /datafile5.dbf

 

6.私たちが復元されたどのようなバックアップは、我々は、したがって、データベースを回復する必要があり、その後コールドバックアップされていない場合、我々は、アーカイブが含まれているバックアップ・ピースをカタログアーカイブを復元し、リカバリを行うことができます

  私たちはバックアップをリストアした場合はコールドバックアップではありません、我々は、バックアップディレクトリはアーカイブが含まれている分類のアーカイブファイルを復元してから回復することができますので、我々は、データベースを復元する必要があります

キャンセルされるまでSQL>は、データベースを回復します。
メディア・リカバリが完了しました。
SQL> ALTER DATABASE OPEN RESETLOGS; 
データベースが変更されました。
SQL>

 

7.一貫した状態に私たちができるデータベースたら   RESETLOGSオプションでデータベースをオープンする
  データベースが整合状態になると、我々はデータベースのリセットログを開くオプションを使用することができます

SQL> ALTER DATABASE OPEN RESETLOGS; 
データベースが変更されました。
SQL>

 

:マルチセクション・バックアップの場合、我々は、データファイルを復元するには、以下のように、すべてのバックアップ・ピース(すべてのセクション)と使用機能initmsrを考慮する必要があります

:それはマルチパートのバックアップであれば、我々はすべてのバックアップ・ピース(すべての部分を)検討する必要があり、データファイルを復元することがinitmsr下記に示す機能を使用して 

DECLAREの
DEVTYPEのVARCHAR2(256)。
ブール行わ; 
BEGIN 
DEVTYPE = dbms_backup_restore.DeviceAllocate(タイプ=> NULL、IDENT => 'D1')を、   
dbms_backup_restore.RestoreSetDatafile; 
dbms_backup_restore.initmsr(1 '/ ud1001 / PROD / oradataの/ system01-TEST.DBF')。
dbms_backup_restore.RestoreDatafileTo(dfnumber => 1、toname => '/ud1001/PROD/oradata/system01-test.dbf')。
dbms_backup_restore.RestoreBackupPiece(なさ=>行って、ハンドル=> '/バックアップ/オラクル、DB-2014年8月7日/ db_L0_PROD_e6pf7too_1_1.rman'、のparams => NULL); 
dbms_backup_restore.RestoreBackupPiece(なさ=>行って、ハンドル=> '/バックアップ/オラクル、DB-2014年8月7日/ db_L0_PROD_e6pf7too_2_1.rman'、のparams => NULL); 
終わり; 
/

  

おすすめ

転載: www.cnblogs.com/zylong-sys/p/12006204.html