linux oracle12c rman,12C CDB模式下RMAN备份与恢复
12C 的RMAN和Oracle Enterprise Manager Cloud Control工具支持多租戶環(huán)境下的備份和恢復(fù),RMAN可以連接到目標(biāo)數(shù)據(jù)庫(kù)、Data Guard、輔助實(shí)例或輔助數(shù)據(jù)庫(kù),通過連接數(shù)據(jù)庫(kù)的類型不同,所完成的數(shù)據(jù)庫(kù)操作也不相同,在這里我們主要描述CDB和PDB備份恢復(fù)操作,在PDB環(huán)境中支持備份或恢復(fù)單個(gè)數(shù)據(jù)文件或表空間。
在從數(shù)據(jù)丟失恢復(fù)能力而言,單獨(dú)備份根和所有的PDB相當(dāng)于備份整個(gè)CDB。主要的區(qū)別是在RMAN命令的數(shù)目,您必須輸入和恢復(fù)時(shí)間。恢復(fù)整個(gè)CDB$ROOT的時(shí)間要比所有的PDB的時(shí)間少。
1.1.? RMAN連接數(shù)據(jù)庫(kù)
RMAN可通過操作系統(tǒng)認(rèn)證和密碼文件兩種方式連接到一個(gè)目標(biāo)數(shù)據(jù)庫(kù),使用RMAN備份恢復(fù)工具的用戶需要具有SYSDBA或SYSBACKUP系統(tǒng)權(quán)限,如果用戶需要連接到恢復(fù)目錄,需要被授予RECOVERY_CATALOG_OWNER對(duì)象權(quán)限。
操作系統(tǒng)認(rèn)證
我們?cè)贚INUX環(huán)境中使用操作系統(tǒng)認(rèn)證方式連接到數(shù)據(jù)庫(kù),我們需要滿足以下兩個(gè)條件:
設(shè)定ORACLE_SID變量,例如數(shù)據(jù)庫(kù)的SID為orcl,因此我們?cè)?bash_profile文件或者命令行設(shè)置ORACLE_SID變量。
ORACLE_SID=orcl; export ORACLE_SID
執(zhí)行rman命令用戶需要具有SYSDBA或者SYSBACKUP權(quán)限,Linux環(huán)境下的OSDBA用戶組為dba。
具有SYSDBA權(quán)限用戶連接到RMAN
rman target '"/ as sysdba"'
具有SYSBACKUP權(quán)限用戶連接到RMAN
rman target '"/ as sysbackup"'
具有SYSDBA權(quán)限用戶隱式連接到RMAN
rman target /
密碼文件認(rèn)證
數(shù)據(jù)庫(kù)使用密碼文件認(rèn)證管理用戶,RMAN可以使用密碼連接。使用本地或遠(yuǎn)程訪問的密碼文件。使用服務(wù)名方式連接數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)必須使用一個(gè)密碼文件,同樣連接到數(shù)據(jù)庫(kù)的用戶需要具有SYSDBA或SYSBACKUP權(quán)限。
密碼文件認(rèn)證具有SYSDBA權(quán)限用戶連接到RMAN
rman target '"zlhis@orcl assysdba"'
target database Password: password
connected to target database: orcl(DBID=39525561)
密碼文件認(rèn)證具有SYSBACKUP權(quán)限用戶連接到RMAN
rman target '"zlhis@orcl as sysbackup"'
target database Password: password
connected to target database: orcl(DBID=39525561)
1.2.? 只備份CDB
只備份CDB數(shù)據(jù)庫(kù)需要具有SYSDBA或SYSBACKUP權(quán)限用戶連接到CDB的root環(huán)境下,執(zhí)行backupdatabase root命令即可完成對(duì)CDB的備份,方法如下:
RMAN> backupdatabase root;
啟動(dòng) backup 于 17-3月 -16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=50 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號(hào)=00001 名稱=/u01/app/oracle/oradata/cdb/system01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00003 名稱=/u01/app/oracle/oradata/cdb/sysaux01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00004 名稱=/u01/app/oracle/oradata/cdb/undotbs01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00006 名稱=/u01/app/oracle/oradata/cdb/users01.dbf
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 17-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 17-3月 -16
段句柄=/u01/app/oracle/fast_recovery_area/CDB/backupset/2016_03_17/o1_mf_nnndf_TAG20160317T152301_cgnptp1s_.bkp標(biāo)記=TAG20160317T152301 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:01:55
完成 backup 于 17-3月 -16
啟動(dòng) Control File and SPFILE Autobackup 于 17-3月 -16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_17/o1_mf_s_906737097_cgnpydod_.bkpcomment=NONE
完成 Control File and SPFILE Autobackup 于 17-3月 -16
執(zhí)行backup database root不給數(shù)據(jù)文件保存位置時(shí),備份文件默認(rèn)存放在快速恢復(fù)區(qū)中。
1.3.? 備份整個(gè)CDB及其下面的所有PDB
備份整個(gè)CDB數(shù)據(jù)庫(kù)及其下面的所有PDB類似于非CDB數(shù)據(jù)庫(kù)方法相同,使用具有SYSDBA或SYSBACKUP權(quán)限用戶連接到CDB的root環(huán)境下面,然后執(zhí)行backupdatabase命令即可完成整個(gè)CDB的備份,方法如下:
RMAN> backup database;
啟動(dòng) backup 于 17-3月 -16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=50 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號(hào)=00001 名稱=/u01/app/oracle/oradata/cdb/system01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00003 名稱=/u01/app/oracle/oradata/cdb/sysaux01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00004 名稱=/u01/app/oracle/oradata/cdb/undotbs01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00006 名稱=/u01/app/oracle/oradata/cdb/users01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00009 名稱=/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00008 名稱=/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00010 名稱=/u01/app/oracle/oradata/cdb/pdb1/pdb1_users01.dbf
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 17-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 17-3月 -16
段句柄=/u01/app/oracle/fast_recovery_area/CDB/backupset/2016_03_17/o1_mf_nnndf_TAG20160317T152301_cgnptp1s_.bkp標(biāo)記=TAG20160317T152301注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:01:55
完成 backup 于 17-3月 -16
啟動(dòng) Control File andSPFILE Autobackup 于17-3月-16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_17/o1_mf_s_906737097_cgnpydod_.bkpcomment=NONE
完成 Control File andSPFILE Autobackup 于17-3月-16
1.4.? 備份單個(gè)和多個(gè)PDB
在CDB中允許備份一個(gè)或多少PDB數(shù)據(jù)庫(kù),備份一個(gè)PDB數(shù)據(jù)庫(kù)可以通過以下兩個(gè)方式備份:
在CDB根(root)使用BACKUP PLUGGABLE DATABASE命令備份一個(gè)或多個(gè)PDB數(shù)據(jù)庫(kù)。
[oracle@localhost ~]$ rman target /
恢復(fù)管理器: Release 12.1.0.2.0 - Production on 星期二 3月 22 17:11:27 2016
Copyright (c) 1982, 2014, Oracle and/or itsaffiliates.? All rights reserved.
已連接到目標(biāo)數(shù)據(jù)庫(kù): CDB (DBID=2023252752)
RMAN> backuppluggable database pdb1;
啟動(dòng) backup 于 22-3月 -16
使用目標(biāo)數(shù)據(jù)庫(kù)控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=57 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號(hào)=00009 名稱=/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00008 名稱=/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00010 名稱=/u01/app/oracle/oradata/cdb/pdb1/pdb1_users01.dbf
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 22-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 22-3月 -16段句柄=/u01/app/oracle/fast_recovery_area/CDB/2E26709E68912450E055000000000001/backupset/2016_03_22/o1_mf_nnndf_TAG20160322T171142_ch232hxb_.bkp標(biāo)記=TAG20160322T171142 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:01:05
完成 backup 于 22-3月 -16
啟動(dòng) Control File and SPFILE Autobackup 于 22-3月 -16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_22/o1_mf_s_907175569_ch234n0h_.bkpcomment=NONE
完成 Control File and SPFILE Autobackup 于 22-3月 -16
如果要備份多個(gè)pdb,只需在備份命令后面跟上多個(gè)你想備份的pdb實(shí)例的名稱,如下backup pluggable database pdb1,pdb2;
在PDB中使用BACKUP DATABASE備份當(dāng)前連接的PDB數(shù)據(jù)庫(kù),前提條件是需要配置好TNSNAMES.ORA文件。
[oracle@localhost admin]$ rman target sys/oracle@pdb1
恢復(fù)管理器: Release 12.1.0.2.0 - Production on 星期三 3月 23 09:35:16 2016
Copyright (c) 1982, 2014, Oracle and/or itsaffiliates.? All rights reserved.
已連接到目標(biāo)數(shù)據(jù)庫(kù): CDB (DBID=2023252752)
RMAN> backup database;
啟動(dòng) backup 于 23-3月 -16
使用目標(biāo)數(shù)據(jù)庫(kù)控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=69 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號(hào)=00009 名稱=/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00008 名稱=/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
輸入數(shù)據(jù)文件: 文件號(hào)=00010 名稱=/u01/app/oracle/oradata/cdb/pdb1/pdb1_users01.dbf
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 23-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 23-3月 -16
段句柄=/u01/app/oracle/fast_recovery_area/CDB/2E26709E68912450E055000000000001/backupset/2016_03_23/o1_mf_nnndf_TAG20160323T100113_ch3y7byj_.bkp標(biāo)記=TAG20160323T100113 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:01:05
完成 backup 于 23-3月 -16
啟動(dòng) Control File and SPFILE Autobackup 于 23-3月 -16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_23/o1_mf_s_907236140_ch3y9jyb_.bkpcomment=NONE
完成 Control File and SPFILE Autobackup 于 23-3月 -16
1.5.? 整體數(shù)據(jù)庫(kù)恢復(fù)(CDB和所有PDB)
12C數(shù)據(jù)庫(kù)加強(qiáng)了RMAN恢復(fù)的功能,恢復(fù)的方式基本同以前的模式一樣,如果是在一個(gè)全新的異地進(jìn)行恢復(fù),同樣的也是先手工創(chuàng)建與原庫(kù)相同的CDB和PDB實(shí)例,然后關(guān)閉實(shí)例,刪除所有數(shù)據(jù)文件,通過RMAN命令或者拷貝原始庫(kù)的控制文件到新庫(kù)上,啟動(dòng)CDB數(shù)據(jù)庫(kù)到mount狀態(tài),如下
[oracle@localhostadmin]$rman target /
恢復(fù)管理器: Release 12.1.0.2.0 -Production on 星期三 7月 13 11:27:33 2016
Copyright(c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
已連接到目標(biāo)數(shù)據(jù)庫(kù) (未啟動(dòng))
RMAN>startup mount;
Oracle實(shí)例已啟動(dòng)
數(shù)據(jù)庫(kù)已裝載
系統(tǒng)全局區(qū)域總計(jì)? ? 2516582400 字節(jié)
FixedSize? ? ? ? ? ? ? ? ? ? 3048776 字節(jié)
VariableSize? ? ? ? ? ? ? ? 671091384 字節(jié)
DatabaseBuffers? ? ? ? ? ? 1828716544 字節(jié)
RedoBuffers? ? ? ? ? ? ? ? ? 13725696 字節(jié)
RMAN>restoredatabase;
。。。。。。。(此處省略)
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00098 還原到 ….ORADATA/ORCL/ZL9WZARDDATA.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00099 還原到 ….ORADATA/ORCL/ZL9IDEXPSS.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00100 還原到 ….ORADATA/ORCL/ZLBA5.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00101 還原到 ….ORADATA/ORCL/MGMTAD4J.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00102 還原到 ….ORADATA/ORCL/MGMTDBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00103 還原到 ….ORADATA/ORCL/MGMTDEPOT.DBF
通道 ORA_DISK_1: 正在讀取備份片段 /u01/app/oracle/fast_recovery_area/CDB/autobackup/01RAH8KJ_1_1
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00002 還原到 ….ORADATA/CDB/PDBSEED/SYSTEM01.DBF
通道 ORA_DISK_1:` 將數(shù)據(jù)文件 00004 還原到 ….ORADATA/CDB/PDBSEED/SYSAUX01.DBF
通道 ORA_DISK_1: 正在讀取備份片段D:\APP\RMAN\04RAH9B2_1_1
。。。。。。。(此處略過)
通道 ORA_DISK_1: ORA-19870:還原備份片段 /u01/app/oracle/fast_recovery_area/CDB/autobackup 04RAH9B2_1_1 時(shí)出錯(cuò)
ORA-19504:無法創(chuàng)建文件"….ORADATA/CDB/PDBSEED/SYSAUX01.DBF"
ORA-27040:文件創(chuàng)建錯(cuò)誤, 無法創(chuàng)建文件
OSD-04002:無法打開文件
O/S-Error:(OS 3) 系統(tǒng)找不到指定的路徑。
故障轉(zhuǎn)移到上一個(gè)備份
RMAN-00571:===========================================================
RMAN-00569:=============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571:===========================================================
RMAN-03002:restore 命令 (在 07/13/2016 11:55:19 上) 失敗
RMAN-06026:有些目標(biāo)沒有找到 - 終止還原
RMAN-06023:沒有找到數(shù)據(jù)文件4的副本來還原
RMAN-06023:沒有找到數(shù)據(jù)文件2的副本來還原
在還原的時(shí)候可能遇到RMAN-06023錯(cuò)誤,這是由于恢復(fù)數(shù)據(jù)文件路徑不存在導(dǎo)致,我只需要手工創(chuàng)建路徑,然后重復(fù)執(zhí)行下restore database命令就可以了,之前已經(jīng)恢復(fù)的文件會(huì)自動(dòng)略過,如下
。。。。。。。(此處省略)
正在略過數(shù)據(jù)文件111; 已還原到文件 ....ORADATA/ZLEMR/ZLDOCBASE.DBF
正在略過數(shù)據(jù)文件112; 已還原到文件 ....ORADATA/ZLEMR/ZLDOCINDEX.DBF
正在略過數(shù)據(jù)文件113; 已還原到文件 ....ORADATA/ZLEMR/ZLDOCDATA.DBF
正在略過數(shù)據(jù)文件114; 已還原到文件 ....ORADATA/ZLEMR/ZLDOCDATAINDEX.DBF
正在略過數(shù)據(jù)文件115; 已還原到文件 ....ORADATA/ZLEMR/ZLDOCXML.DBF
通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00002 還原到 ....ORADATA/CDB/PDBSEED/SYSTEM01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00004 還原到 ....ORADATA/CDB/PDBSEED/SYSAUX01.DBF
通道 ORA_DISK_1: 正在讀取備份片段D:\APP\RMAN\04RAH9B2_1_1
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:55
完成 restore 于 13-7月 -16
RMAN>recoverdatabase;
。。。。。。(此處省略)
歸檔日志文件名=…..ARCHIVE/ARC0000000588_0915209064.0001線程=1 序列=588
歸檔日志文件名=…..ARCHIVE/ARC0000000589_0915209064.0001線程=1 序列=589
歸檔日志文件名=…..ARCHIVE/ARC0000000590_0915209064.0001線程=1 序列=590
歸檔日志文件名=…..ARCHIVE/ARC0000000591_0915209064.0001線程=1 序列=591
歸檔日志文件名=…..ARCHIVE/ARC0000000592_0915209064.0001線程=1 序列=592
歸檔日志文件名=…..ARCHIVE/ARC0000000593_0915209064.0001線程=1 序列=593
歸檔日志文件名=…..ARCHIVE/ARC0000000594_0915209064.0001線程=1 序列=594
歸檔日志文件名=…..ARCHIVE/ARC0000000595_0915209064.0001線程=1 序列=595
介質(zhì)恢復(fù)完成, 用時(shí): 00:04:32
完成 recover 于 13-7月 -16
RMAN>alter database open resetlogs;
已處理語(yǔ)句
1.6.? 單個(gè)PDB數(shù)據(jù)庫(kù)恢復(fù)
恢復(fù)單個(gè)PDB的前提是CDB已經(jīng)能夠正常啟動(dòng),在CDB啟動(dòng)的情況下在RMAN中采用restore pluggable database pdb名稱指定單個(gè)PDB數(shù)據(jù)庫(kù)進(jìn)行恢復(fù),如下
RMAN>restore pluggable database orcl;
啟動(dòng) restore 于 13-7月 -16
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00056 還原到 ....ORADATA/ORCL/SYSTEM01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00057 還原到 ....ORADATA/ORCL/SYSAUX01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00058 還原到 ....ORADATA/ORCL/USERS
。。。。。。。(此處省略)
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00102 還原到 ....ORADATA/ORCL/MGMT.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00103 還原到 ....ORADATA/ORCL/MGMT_DEPOT.DBF
通道 ORA_DISK_1: 正在讀取備份片段D:\APP\RMAN\01RAH8KJ_1_1
通道 ORA_DISK_1: 段句柄 =…..RMAN/01RAH8KJ_1_1 標(biāo)記 = TAG20160712T160849
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:07:07
完成 restore 于 13-7月 -16
RMAN>recover pluggable database orcl;
啟動(dòng) recover 于 13-7月 -16
使用通道 ORA_DISK_1
正在開始介質(zhì)的恢復(fù)
歸檔日志文件名=…..ARCHIVE/ARC0000000591_0915209064.0001線程=1 序列=591
歸檔日志文件名=…..ARCHIVE/ARC0000000592_0915209064.0001線程=1 序列=592
歸檔日志文件名=…..ARCHIVE/ARC0000000593_0915209064.0001線程=1 序列=593
歸檔日志文件名=…..ARCHIVE/ARC0000000594_0915209064.0001線程=1 序列=594
歸檔日志文件名=…..ARCHIVE/ARC0000000595_0915209064.0001線程=1 序列=595
介質(zhì)恢復(fù)完成, 用時(shí): 00:01:10
完成 recover 于 13-7月 -16
最后,在以restlogs方式,打開pdb實(shí)例,如下
SQL*Plus:Release 12.1.0.2.0 Production on 星期三 7月 13 15:12:57 2016
Copyright(c) 1982, 2014, Oracle.? All rightsreserved.
SQL>conn / as sysdba
已連接。
SQL>show pdbs
CON_ID CON_NAME? ? ? ? ? ? ? ? ? ? ? OPEN MODE? RESTRICTED
---------------------------------------- ---------- ----------
2 PDB$SEED? ? ? ? ? ? ? ? ? ? ? READ ONLY? NO
3 ORCL? ? ? ? ? ? ? ? ? ? ? ? ? MOUNTED
4 ZLEMR? ? ? ? ? ? ? ? ? ? ? ? ? MOUNTED
SQL>alter pluggable database pdb1 orcl resetlogs;
插接式數(shù)據(jù)庫(kù)已變更。
SQL>show pdbs
CON_ID CON_NAME? ? ? ? ? ? ? ? ? ? ? OPEN MODE? RESTRICTED
---------------------------------------- ---------- ----------
2 PDB$SEED? ? ? ? ? ? ? ? ? ? ? READ ONLY? NO
3 ORCL? ? ? ? ? ? ? ? ? ? ? ? ? READ WRITE NO
4 ZLEMR? ? ? ? ? ? ? ? ? ? ? ? ? MOUNTED
1.7.? 恢復(fù)PDB數(shù)據(jù)文件
數(shù)據(jù)庫(kù)在open的時(shí)候,會(huì)對(duì)當(dāng)前的數(shù)據(jù)的所有數(shù)據(jù)文件進(jìn)行檢查。
對(duì)于system,sysaux和undo表空間的數(shù)據(jù)文件,如果有問題,數(shù)據(jù)庫(kù)無法open。如果是PDB中某個(gè)普通的數(shù)據(jù)文件出現(xiàn)丟失,我們可以先用offline方式跳過,然后再打數(shù)據(jù)庫(kù),稍后再對(duì)數(shù)據(jù)文件做恢復(fù):
例:
SQL> startup;
ORACLE instance started.
Total System Global Area? 835104768 bytes
Fixed Size? ? ? ? ? ? ? ? ? 2293880 bytes
Variable Size? ? ? ? ? ? 322965384 bytes
Database Buffers? ? ? ? ? 503316480 bytes
Redo Buffers? ? ? ? ? ? ? ? 6529024 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6- see DBWR trace file
ORA-01110: data file 6:'/u01/app/oracle/oradata/c12/users01.dbf'
SQL> alter database datafile 6 offline;
Database altered.
SQL> alter database open;
Database altered.
使用rman
RMAN> restore datafile 6;
RMAN> recover datafile 6;
然后對(duì)數(shù)據(jù)文件進(jìn)行online處理
SQL> alter database datafile 6 online;
再看看pdb的數(shù)據(jù)文件.摸擬pdb數(shù)據(jù)文件刪除
[oracle@o12c pdb2]$ mv pdb2_users01.dbfpdb2_users01.dbfold
啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例
SQL> startup;
ORACLE instance started.
Total System Global Area? 835104768 bytes
Fixed Size? ? ? ? ? ? ? ? ? 2293880 bytes
Variable Size? ? ? ? ? ? 322965384 bytes
Database Buffers? ? ? ? ? 503316480 bytes
Redo Buffers? ? ? ? ? ? ? ? 6529024 bytes
Database mounted.
Database opened.
由此我們可以得出一個(gè)結(jié)論,當(dāng)cdb在打開的時(shí)候,數(shù)據(jù)庫(kù)不會(huì)檢查pdb中的數(shù)據(jù)文件。
SQL> alter pluggable database pdb2 open;
alter pluggable database pdb2 open
ERROR at line 1:
ORA-01157: cannot identify/lock data file 13- see DBWR trace file
ORA-01110: data file 13:'/u01/app/oracle/oradata/c12/pdb2/pdb2_users01.dbf'
只有在打開pluggabledatabase時(shí),會(huì)效驗(yàn)PDB數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,。
SQL> alter session set container=pdb2;
Session altered.
SQL> alter pluggable database datafile 13 offline;
Pluggable database altered.
數(shù)據(jù)文件file#(文件號(hào))是唯一的,但我們?cè)贑DB中操作時(shí)找不到該文件,必須要進(jìn)入PDB模式,如果在CDB試圖去offline一個(gè)數(shù)據(jù)文件時(shí)會(huì)報(bào)錯(cuò):
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter database datafile 10 offline;
alter database datafile 10 offline
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01516: 不存在的日志文件, 數(shù)據(jù)文件或臨時(shí)文件 "10"*
但是在rman中可以直接使用datafile號(hào)進(jìn)行恢復(fù)
[oracle@localhost admin]$ rman target /
恢復(fù)管理器: Release 12.1.0.2.0 - Production on 星期三 3月 23 11:04:15 2016
Copyright (c) 1982, 2014, Oracle and/or itsaffiliates.? All rights reserved.
已連接到目標(biāo)數(shù)據(jù)庫(kù): CDB (DBID=2023252752)
RMAN> restore datafile 10;
啟動(dòng) restore 于 23-3月 -16
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00010 還原到 /u01……/backupset/2016_03_23/o1_mf_nnndf_TAG20160323T100113_ch3y7byj_.bkp
通道 ORA_DISK_1: 段句柄 = /u01…….backupset/2016_03_23/o1_mf_nnndf_TAG20160323T100113_ch3y7byj_.bkp標(biāo)記 = TAG20160323T100113
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:01
完成 restore 于 23-3月 -16
RMAN> recover datafile 10;
啟動(dòng) recover 于 23-3月 -16
使用通道 ORA_DISK_1
正在開始介質(zhì)的恢復(fù)
介質(zhì)恢復(fù)完成, 用時(shí): 00:00:00
完成 recover 于 23-3月 -16;
總結(jié)
以上是生活随笔為你收集整理的linux oracle12c rman,12C CDB模式下RMAN备份与恢复的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言从字符串中提取数字
- 下一篇: 计算机专业专科生毕业论文题目,★专科生计