oracle12C下一個CDB庫(test),兩個PDB庫(test1,test2)
一、備份
rman target sys/oracle@test
1.顯示數據庫結構
RMAN>report schema;
Report of database schema for database with db_unique_name TEST
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- ---------------------------------------------------------------------------------------------------------- ------- ------------------------
1 930 SYSTEM YES +DATA/TEST/DATAFILE/system.261.1013957131
2 3140 SYSAUX NO +DATA/TEST/DATAFILE/sysaux.262.1013957135
3 965 UNDOTBS1 YES +DATA/TEST/DATAFILE/undotbs1.263.1013957135
4 200 UNDOTBS2 YES +DATA/TEST/DATAFILE/undotbs2.264.1013957143
5 5 USERS NO +DATA/TEST/DATAFILE/users.265.1013957145
6 32000 USERS NO +DATA/TEST/DATAFILE/users02.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- ------------------------------------------------------------------------------------------------------------------ ----------- --------------------
1 78 TEMP 32767 +DATA/TEST/TEMPFILE/temp.257.1013957137
2.備份全庫
RMAN> backup database;
3.備份CDB庫
RMAN> backup database root;
4.備份PDB庫(可多個)
RMAN> backup pluggable database test1,test2; (如果要備份根容器需要加"")
5.備份表空間
rman target sys/oracle@test1
RMAN> backup tablespace TEST;
二、恢復
1.恢復全庫
rman target sys/oracle@test
run
{
allocate channel c1 type disk;
startup mount;
restore database;
recover database;
alter database open;
release channel c1;
}
2.恢復CDB庫
connect target sys/oracle@test
run
{
allocate channel c1 type disk;
startup mount;
restore database root;
recover database root;
alter database open;
release channel c1;
}
3.恢復PDB庫(可多個同時恢復)
connect target sys/oracle@test
run
{
allocate channel c1 type disk;
alter pluggable database test1,test2 close;
restore pluggable database test1,test2;
recover pluggable database test1,test2;
alter pluggable database test1,test2 open;
release channel c1;
}
4.單獨恢復CDB庫數據文件
connect target sys/oracle@test
run{
allocate channel c1 type disk;
sql 'alter database datafile 11 offline';
restore datafile 11;
recover datafile 11;
sql 'alter database datafile 11 online';
release channel c1;
}
5.單獨恢復PDB庫數據文件
connect target sys/oracle@test2
run{
allocate channel c1 type disk;
sql 'alter database datafile 15 offline';
restore datafile 15;
recover datafile 15;
sql 'alter database datafile 15 online';
release channel c1;
}
6. 恢復控制文件:
關閉數據庫:
sqlplus / as sysdba
shutdown immediate
rman登錄:
rman target /
startup nomount
restore controlefile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;
alter pluggable database all open;
7. 恢復system或undo表空間
關閉數據庫:
sqlplus / as sysdba
shutdown immediate
rman登錄:
rman target /
startup mount
restore tablespace system;
recover tablespace system;
alter database open;
alter pluggable database all open;
8. 恢復SYSAUX或其他根表空間
不需要關閉數據庫
rman登錄:
alter tablespace sysaux offline immediate;
restore tablespace sysaux;
recover tablespace sysaux;
alter tablespace sysaux online;
9. 恢復PDB數據文件
(1)丟失未開啟pdb的system表空間(CDB和其他PDB在還原和恢復期間仍可打開)
rman登錄:
restore tablespace test1:system;
recover tablespace test1:system;
alter pluggable database test1 open;
注:若pdb已開啟,此時丟失system表空間,則要關閉整個CDB。
(2)丟失PDB非system數據文件
sqlplus / as sysdba
conn sys/oracle@test1;
alter tablespace test offline;
登錄rman:
restore tablespace test1:test;
recover tablespace test1:test;
sqlplus / as sysdba
conn sys/oracle@test1;
alter tablespace test offline;