日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复...

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.做一個RMAN的全備

E:\oracle\rman_scripts>rman catalog target

恢復管理器: Release 10.2.0.1.0 - Production on 星期二 3月 10 14:52:50 2009

Copyright (c) 1982, 2005, Oracle.? All rights reserved.

連接到目標數據庫: ORASJH (DBID=2615173674)

連接到恢復目錄數據庫

RMAN> @full_back_db.sql

RMAN> # start backup database

2>

3> run {

4> allocate channel c1 type disk;

5> backup format 'E:\oracle\rman_backup\full%u_%s_%p' database

6> plus archivelog format 'E:\oracle\rman_backup\archive_%d_%T_%s' delete all in

put;

7> release channel c1;

8> }

分配的通道: c1

通道 c1: sid=143 devtype=DISK

啟動 backup 于 10-3月 -09

當前日志已存檔

通道 c1: 正在啟動存檔日志備份集

通道 c1: 正在指定備份集中的存檔日志

輸入存檔日志線程 =1 序列 =235 記錄 ID=13 時間戳=681062941

輸入存檔日志線程 =1 序列 =236 記錄 ID=11 時間戳=681058773

輸入存檔日志線程 =1 序列 =237 記錄 ID=12 時間戳=681062675

輸入存檔日志線程 =1 序列 =238 記錄 ID=14 時間戳=681142722

輸入存檔日志線程 =1 序列 =239 記錄 ID=15 時間戳=681144798

通道 c1: 正在啟動段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_12 標記=TAG20090310T145320

注釋=NONE

通道 c1: 備份集已完成, 經過時間:00:00:02

通道 c1: 正在刪除存檔日志

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00235_0679223338.001 記錄 ID=13 時間

戳 =681062941

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00236_0679223338.001 記錄 ID=11 時間

戳 =681058773

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00237_0679223338.001 記錄 ID=12 時間

戳 =681062675

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00238_0679223338.001 記錄 ID=14 時間

戳 =681142722

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00239_0679223338.001 記錄 ID=15 時間

戳 =681144798

完成 backup 于 10-3月 -09

啟動 backup 于 10-3月 -09

通道 c1: 啟動全部數據文件備份集

通道 c1: 正在指定備份集中的數據文件

輸入數據文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF

輸入數據文件 fno=00002 name=E:\ORACLE\ORASJH\UNDOTBS01.DBF

輸入數據文件 fno=00003 name=E:\ORACLE\ORASJH\SYSAUX01.DBF

輸入數據文件 fno=00004 name=E:\ORACLE\ORASJH\USERS01.DBF

通道 c1: 正在啟動段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1 標記=TAG20090310T145324 注釋=NONE

通道 c1: 備份集已完成, 經過時間:00:00:45

完成 backup 于 10-3月 -09

啟動 backup 于 10-3月 -09

當前日志已存檔

通道 c1: 正在啟動存檔日志備份集

通道 c1: 正在指定備份集中的存檔日志

輸入存檔日志線程 =1 序列 =240 記錄 ID=16 時間戳=681144850

通道 c1: 正在啟動段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14 標記=TAG20090310T145412

注釋=NONE

通道 c1: 備份集已完成, 經過時間:00:00:02

通道 c1: 正在刪除存檔日志

存檔日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001 記錄 ID=16 時間

戳 =681144850

完成 backup 于 10-3月 -09

啟動 Control File and SPFILE Autobackup 于 10-3月 -09

段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090310-00 commen

t=NONE

完成 Control File and SPFILE Autobackup 于 10-3月 -09

釋放的通道: c1

RMAN>

RMAN> # end

2> **文件結尾**

RMAN>

2.創建一個新的數據文件。

SQL> select name from v$datafile;

NAME

-----------------------------------------

E:\ORACLE\ORASJH\SYSTEM01.DBF

E:\ORACLE\ORASJH\UNDOTBS01.DBF

E:\ORACLE\ORASJH\SYSAUX01.DBF

E:\ORACLE\ORASJH\USERS01.DBF

SQL> create tablespace sjh datafile 'E:\ORACLE\ORASJH\sjh.dbf' size 2m;

表空間已創建。

SQL> create table test tablespace sjh as select * from dba_users;

表已創建。

SQL> select count(*) from dba_users;

COUNT(*)

----------

11

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系統已更改。

3.模擬所有控制文件,數據文件的丟失。

SQL> shutdown immediate;

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

手工刪除所有的控制文件,數據文件。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area? 167772160 bytes

Fixed Size????????????????? 1247876 bytes

Variable Size????????????? 71304572 bytes

Database Buffers?????????? 88080384 bytes

Redo Buffers??????????????? 7139328 bytes

ORA-00205: ?????????, ??????, ???????? --刪除了控制文件,數據庫無法mount。

4.恢復

4.1恢復控制文件

E:\oracle\rman_scripts>rman catalog target

恢復管理器: Release 10.2.0.1.0 - Production on 星期二 3月 10 15:32:46 2009

Copyright (c) 1982, 2005, Oracle.? All rights reserved.

連接到目標數據庫: orasjh (未裝載)

連接到恢復目錄數據庫

RMAN> restore controlfile to 'e:\contrl.bak' from autobackup;

啟動 restore 于 10-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 尋找以下日期的自動備份: 20090310

通道 ORA_DISK_1: 已找到的自動備份: c-2615173674-20090310-01通道 ORA_DISK_1: 從自動備份復原控制文件已完成

完成 restore 于 10-3月 -09

--因為RMAN的自動備份控制文件的選項已經打開,所以在創建數據文件的時候,控制文件自動備份了,這個備份不是全備時候的控制文件備份。為了模擬特定控制文件(沒記錄數據文件的創建),我們指定從全備中的備份集中恢復控制文件。

RMAN>? restore controlfile to 'e:\contrl.bak' from 'C:\ORACLE\PRODUCT\10.2.0\DB_

1\DATABASE\C-2615173674-20090310-00';

啟動 restore 于 10-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在復原控制文件

通道 ORA_DISK_1: 恢復完成, 用時: 00:00:02

完成 restore 于 10-3月 -09

--將e:\contrl.bak copy到控制文件的所在目錄并改名成:control1.ctl,control2.ctl,control3.ctl。

4.2恢復備份期間的歸檔日志

RMAN> restore archivelog sequence 240

2> ;

啟動 restore 于 10-3月 -09

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在啟動到默認目標的存檔日志恢復

通道 ORA_DISK_1: 正在恢復存檔日志

存檔日志線程 =1 序列=240

通道 ORA_DISK_1: 正在讀取備份段 E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14

通道 ORA_DISK_1: 已恢復備份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14 標記 = TAG20090310T145

412

通道 ORA_DISK_1: 恢復完成, 用時: 00:00:01

完成 restore 于 10-3月 -09

SQL> alter database mount;??? --因為恢復了控制文件,所以數據庫能mount。

數據庫已更改。

4.3還原數據文件

RMAN> restore database;

啟動 restore 于 10-3月 -09

釋放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在開始恢復數據文件備份集

通道 ORA_DISK_1: 正在指定從備份集恢復的數據文件

正將數據文件00001恢復到E:\ORACLE\ORASJH\SYSTEM01.DBF

正將數據文件00002恢復到E:\ORACLE\ORASJH\UNDOTBS01.DBF

正將數據文件00003恢復到E:\ORACLE\ORASJH\SYSAUX01.DBF

正將數據文件00004恢復到E:\ORACLE\ORASJH\USERS01.DBF

通道 ORA_DISK_1: 正在讀取備份段 E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1

通道 ORA_DISK_1: 已恢復備份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1 標記 = TAG20090310T145324

通道 ORA_DISK_1: 恢復完成, 用時: 00:00:45

完成 restore 于 10-3月 -09

4.4用備份控制文件恢復數據庫

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 403337 (在 03/10/2009 14:53:24 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001

ORA-00280: 更改 403337 (用于線程 1) 在序列 #240 中

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 403361 (在 03/10/2009 14:54:10 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001

ORA-00280: 更改 403361 (用于線程 1) 在序列 #241 中

ORA-00278: 此恢復不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001'

ORA-00283: 恢復會話因錯誤而取消

ORA-01244: 未命名的數據文件由介質恢復添加至控制文件

ORA-01110: 數據文件 5: 'E:\ORACLE\ORASJH\SJH.DBF'

ORA-01112: 未啟動介質恢復

SQL> select name from v$datafile;

NAME

-----------------------------------------------------------

E:\ORACLE\ORASJH\SYSTEM01.DBF

E:\ORACLE\ORASJH\UNDOTBS01.DBF

E:\ORACLE\ORASJH\SYSAUX01.DBF

E:\ORACLE\ORASJH\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005

--原來的控制文件中沒有新加數據文件的記錄,oracle自動生成一個缺省的文件名:UNNAMED00005

SQL> alter database create datafile 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA

MED00005' as 'E:\ORACLE\ORASJH\SJH.DBF';

數據庫已更改。

--可以通過CREATE AS方式修改控制文件中記錄。繼續應用所有歸檔和日志文件可以完成恢復。

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 403554 (在 03/10/2009 14:59:44 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001

ORA-00280: 更改 403554 (用于線程 1) 在序列 #241 中

指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 403840 (在 03/10/2009 15:01:54 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00242_0679223338.001

ORA-00280: 更改 403840 (用于線程 1) 在序列 #242 中

ORA-00278: 此恢復不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001'

指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于線程 1) 在序列 #243 中

ORA-00278: 此恢復不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00242_0679223338.001'

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\oracle\orasjh\REDO01.LOG

ORA-00310: 歸檔日志包含序列 241; 要求序列 243

ORA-00334: 歸檔日志: 'E:\ORACLE\ORASJH\REDO01.LOG'

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于線程 1) 在序列 #243 中

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\ORACLE\ORASJH\REDO02.LOG

ORA-00310: 歸檔日志包含序列 242; 要求序列 243

ORA-00334: 歸檔日志: 'E:\ORACLE\ORASJH\REDO02.LOG'

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 對于線程 1 是必需的

ORA-00289: 建議: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于線程 1) 在序列 #243 中

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\ORACLE\ORASJH\REDO03.LOG

已應用的日志。

完成介質恢復。

SQL> alter database open resetlogs;

數據庫已更改。

總結

以上是生活随笔為你收集整理的oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。