首页 > 数字化转型 > ERP > 用户管理的不完全恢复
一,基于时间点的不完全恢复
恢复到备份点与失败点之间某个特定时间点的状态
RECOVER DATABASE UNTIL TIME
二,基于取消的不完全恢复
恢复到备份点与失败点之间某个日志序列号之前的状态
RECOVER DATABASE UNTIL CHANGE
三,基于SCN的不完全恢复
恢复到备份点与失败点之间某个特定SCN值的状态
RECOVER DATABASE UNTIL CANCEL
四,基于控制文件副本的不完全恢复
使用备份控制文件将数据库恢复到备份点与失败点之间某个时刻的状态
RECOVER DATABASE ….USING BACKUP CONTROLFILE
基于时间点的不完全恢复(非rman的方式)
idle> conn / as sysdba
已连接。
sys@OMAR> alter database begin backup;
数据库已更改。
sys@OMAR> select name from v$datafile;
NAME
------------------------------------------------------------------------
D:ORACLEORADATAORCLSYSTEM01.DBF
D:ORACLEORADATAORCLUNDOTBS01.DBF
D:ORACLEORADATAORCLSYSAUX01.DBF
D:ORACLEORADATAORCLUSERS01.DBF
D:ORACLEORADATAORCLEXAMPLE01.DBF
sys@OMAR> host copy D:ORACLEORADATAORCL*.dbf e:test
D:ORACLEORADATAORCLUNDOTBS01.DBF
D:ORACLEORADATAORCLSYSTEM01.DBF
D:ORACLEORADATAORCLSYSAUX01.DBF
D:ORACLEORADATAORCLEXAMPLE01.DBF
D:ORACLEORADATAORCLUSERS01.DBF
D:ORACLEORADATAORCLTEMP01.DBF
已复制 6 个文件。
sys@OMAR> alter database backup controlfile to 'e:testcontrol.bak';
数据库已更改。
sys@OMAR> alter database end backup;
数据库已更改。
sys@OMAR> set time on
11:21:33 sys@OMAR> alter system archive log current;
系统已更改。
11:22:49 sys@OMAR> create table emp as select * from scott.emp;
表已创建。
11:32:04 sys@OMAR> drop table emp;
表已删除。
11:32:23 sys@OMAR> alter system archive log current;
系统已更改。
11:32:34 sys@OMAR> shutdown abort
11:32:53 sys@OMAR> host del D:ORACLEORADATAORCL*
D:ORACLEORADATAORCL*, 是否确认(Y/N)? y
D:ORACLEORADATAORCLUNDOTBS01.DBF
D:ORACLEORADATAORCLSYSTEM01.DBF
D:ORACLEORADATAORCLSYSAUX01.DBF
D:ORACLEORADATAORCLEXAMPLE01.DBF
D:ORACLEORADATAORCLUSERS01.DBF
D:ORACLEORADATAORCLCONTROL01.ctl
D:ORACLEORADATAORCLcontrol02.ctl
D:ORACLEORADATAORCLcontrol03.ctl
11:36:36 idle> host copy e:test*.dbf d:oracleoradataorcl
e:testUNDOTBS01.DBF
e:testSYSTEM01.DBF
e:testSYSAUX01.DBF
e:testEXAMPLE01.DBF
e:testUSERS01.DBF
e:testTEMP01.DBF
已复制 6 个文件。
11:39:22 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol01.ctl
已复制 1 个文件。
11:39:45 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol02.ctl
已复制 1 个文件。
11:39:48 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol03.ctl
已复制 1 个文件。
11:39:51 idle> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 71304548 bytes
Database Buffers 92274688 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
11:45:36 idle> recover database until time '2007-09-14 11:32:00' using backup controlfile
ORA-00279: 更改 9689186 (在 09/14/2007 11:14:31 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:TESTARC00003_0633140408.001
ORA-00280: 更改 9689186 (用于线程 1) 在序列 #3 中
11:45:47 指定日志: {
auto
ORA-00279: 更改 9689395 (在 09/14/2007 11:21:42 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:TESTARC00004_0633140408.001
ORA-00280: 更改 9689395 (用于线程 1) 在序列 #4 中
ORA-00278: 此恢复不再需要日志文件 'E:TESTARC00003_0633140408.001'
已应用的日志。
完成介质恢复。
11:45:58 idle> alter database open resetlogs;
数据库已更改。
11:46:42 idle> select count(*) from emp;
COUNT(*)
----------
14
基于SCN的不完全恢复(非rman的方式)
12:02:08 idle> alter database begin backup;
数据库已更改。
12:10:29 idle> host copy d:oracleoradataorcl*.dbf e:test
d:oracleoradataorclUNDOTBS01.DBF
d:oracleoradataorclSYSTEM01.DBF
d:oracleoradataorclSYSAUX01.DBF
d:oracleoradataorclEXAMPLE01.DBF
d:oracleoradataorclUSERS01.DBF
d:oracleoradataorclTEMP01.DBF
已复制 6 个文件。
12:12:59 idle> alter database backup controlfile to 'e:testcontrol.bak' reuse;
数据库已更改。
12:13:26 idle> alter database end backup;
数据库已更改。
12:14:26 idle> alter system archive log current;
系统已更改。
12:14:34 idle> select count(*) from emp;
COUNT(*)
----------
14
12:15:02 idle> select current_scn from v$database;
CURRENT_SCN
-----------
9691233
12:15:14 idle> drop table emp;
表已删除。
12:15:18 idle> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
12:15:48 idle> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 71304548 bytes
Database Buffers 92274688 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
12:16:10 idle> alter system archive log current;
系统已更改。
12:16:35 idle> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
12:17:06 idle> host del d:oracleoradataorcl*
d:oracleoradataorcl*, 是否确认(Y/N)? y
12:17:19 idle> host copy e:test*.dbf d:oracleoradataorcl
e:testUNDOTBS01.DBF
e:testSYSTEM01.DBF
e:testSYSAUX01.DBF
e:testEXAMPLE01.DBF
e:testUSERS01.DBF
e:testTEMP01.DBF
已复制 6 个文件。
12:20:01 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol01.ctl
已复制 1 个文件。
12:20:55 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol02.ctl
已复制 1 个文件。
12:20:58 idle> host copy e:testcontrol.bak d:oracleoradataorclcontrol03.ctl
已复制 1 个文件。
12:21:01 idle> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 71304548 bytes
Database Buffers 92274688 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
12:21:41 idle> recover database until change 9691233 using backup controlfile ;
ORA-00279: 更改 9691081 (在 09/14/2007 12:10:03 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:TESTARC00001_0633267965.001
ORA-00280: 更改 9691081 (用于线程 1) 在序列 #1 中
12:22:17 指定日志: {
auto
ORA-00279: 更改 9691216 (在 09/14/2007 12:14:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:TESTARC00002_0633267965.001
ORA-00280: 更改 9691216 (用于线程 1) 在序列 #2 中
ORA-00278: 此恢复不再需要日志文件 'E:TESTARC00001_0633267965.001'
已应用的日志。
完成介质恢复。
12:22:21 idle> alter database open resetlogs;
数据库已更改。
12:23:10 idle> select count(*) from emp;
COUNT(*)
----------
14
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9925929/viewspace-977873/ ,如需转载,请注明出处,否则将追究法律责任。