一.把資料庫恢復到某個時間點
恢復到資料庫的某個時間點屬於資料庫的不完全恢復。確認存在rman的備份,並且備份可以使用。模擬操作
sql>alter session set nls_date_format='yyymmdd hh24:mi:ss';
select sysdate from dual;
執行刪除或者修改操作,過了10多天,已經不能使用資料庫的flashback特性進行恢復,只能使用rman的備份恢復資料庫
sql>conn sys/sys as sysdba
sql>shutdown immediate
export oracle_sid=orcl
rman target/
rman>startup mount
rman>restore database;
rman>sql 'alter session set nls_data_format="yyyymmdd hh24:mi:ss''';
rman>recover database until time '201703012 11:53:34';
rman>sql 'alter database open resetlogs';屬於不完全恢復,資料庫的重做日誌將重新生成。>?
rman>exit
$sqlplus / as sysdba
sql>archive log list;
資料庫恢復完成,立即重新全庫備份資料庫,執行相應的指令碼
二.把資料庫恢復到某個scn(系統改變號) 模擬相關操作 oracle資料庫的內部時間
檢視當前資料庫的scn號
sql>conn / as sysdba
sql>select dbms_flashback.get_system_change_number from dual;
通過scn號檢視對應的時間
sql>select to_char(scn_to_timestamp(963959),'yyyy-mm-dd hh34:mi:ss') from dual;
通過時間找到對應的scn號
sql>select timestamp_to_scn(to_date('2016-02-23 12:34:19','yyyy-mm-dd hh24:mi:ss')) from dual;
執行刪除或者修改操作,過去10天無法用flashback恢復,只能用rman的備份恢復。恢復之前確定時間對應的scn
sql>conn sys/sys as sysdba
sql>alter session set nls_date_format='yyyymmdd hh24:mi:ss';
sql>select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where rownum<10;確認時間對應的scn
開始恢復
sql>conn sys/sys as sysdba
sql>shutdowm immediate
$export oracle_sid=orcl
$rman target/
rman>startup mount
rman>restore database;
rman>recover database until scn 963915;屬於不完全恢復
rman>sql 'slter database open resetlogs';
exit
恢復完成之後需要立即備份 ./backupfull.sh
RMAN 工具 恢復資料庫
使用rman工具,備份生產機資料庫以及恢復資料庫 1 先開啟告警日誌 cd oracle base diag rdbms oraxx oraxx trace tail f alert oraxx.log 2 登入資料庫軟體 sqlplus as sysdba 3 啟動資料庫 startup exit...
rman異機恢復資料庫
實驗環境 源資料庫伺服器名 china 資料庫全域性名和sid orcl 目標資料庫伺服器名 beijing 只安資料庫軟體,未新建資料庫 1.源資料庫備份資料並拷貝到目標資料庫伺服器 2.目標資料庫上建立service服務 oradim new sid orcl 3.使用源資料庫的spfile生成...
rman異機恢復資料庫
實驗環境 源資料庫伺服器名 china 資料庫全域性名和sid orcl 目標資料庫伺服器名 beijing 只安資料庫軟體,未新建資料庫 1.源資料庫備份資料並拷貝到目標資料庫伺服器 2.目標資料庫上建立service服務 oradim new sid orcl 3.使用源資料庫的spfile生成...