使用者管理恢複
************************************ 一、Oracle恢複的體繫結構
二、恢複類型:執行個體恢複、介質恢複
1、執行個體恢複的前提是資料檔案、控制檔案和線上日誌均沒有損壞,完全自動
2、介質恢複:在檔案有物理損壞的情況下,將其還原、恢複、最後使資料庫得以正常開啟的操作稱為介質恢複,人工幹預
三、恢複方式:完全恢複、不完全恢複
四、恢複技術:使用者管理恢複和RMAN恢複
五、完全恢複案例
v$recover_file //哪個檔案需要恢複 select file#,change# from v$recover_file;
v$log //線上日誌 select min(first_change#) from v$log where status!='INACTIVE';
v$archived_log //歸檔日誌 select min(first_change#) from v$archived_log;
v$recovery_log //需要哪些archvielog做恢複
1、***情境1:資料庫關閉時的恢複(system,sysaux,undo,whole database):system資料表空間為例(冷備)
select * from v$dbfile;
shutdown immediate;
cp -rf /u01/app/oracle/oradata/ocp/* /backup/cold --冷備整個資料檔案
startup
conn gyj/gyj
insert into t1 values(4,'gyj4');
commit;
alter system switch logfile; --切換日誌
rm -rf system01.dbf --冊除system系統資料表空間
shutdown abort; --異常關機
cp /backup/cold/system01.dbf /u01/app/oracle/oradata/ocp/ --用備份先做還原
startup; --會報錯:ORA-01157,ORA-01110
recover datafile 1; --恢複
一直斷行符號
alter database open;
2、***情境2:資料庫開啟時的恢複以使用者資料的資料表空間為例(熱備)
create tablespace tp5 datafile '/u01/app/oracle/oradata/ocp/tp5.dbf' size 10M;
conn gyj/gyj
create table t5 (id int,name varchar2(10)) tablespace tp5;
insert into t5 values(1,'gyj1');
commit;
alter tablespace tp5 begin backup; --熱備
!cp /u01/app/oracle/oradata/ocp/tp5.dbf /backup/hot
alter tablespace tp5 end backup;
conn gyj/gyj
insert into t5 values(2,'gyj2');
commit;
rm -rf tp5.dbf;
alter database datafile 9 offline;
!cp /backup/hot/tp5.dbf /u01/app/oracle/oradata/ocp/ --用備份先做還原
recover datafile 9; --恢複
alter database datafile 9 online;
3、控制檔案的恢複
select controlfile_sequence# from v$database;--當前控制項檔案記錄的序號
select hxfil as file#,FHCSQ from x$kcvfh;
select controlfile_change# from v$database; --控制自身的檢查點
select file#,checkpoint_change# from v$datafile_header;
select checkpoint_change# from v$database; --資料庫的檢查點
select file#,checkpoint_change# from v$datafile; --從控制檔案中讀的scn
(1)***情境1:控制檔案沒有全壞,有一個是好的
rm -rf control02.ctl
shutdown abort;
cp control01.ctl control02.ctl
startup