/* 2008/05/28
*环境:Windows XP +Oracle10.2.0.1
*Oracle 备份与恢复培训教程 Kenny Smith,Stephan Haisley著 周琪、韩岷、李渝琳等译
*第二部分:用户管理的备份与恢复
*第5章:从打开的数据库备份与恢复
*/
练习5.4:从打开的数据库备份中进行不完全恢复
1、删除一个表
对用户scott解琐
SQL> alter user scott account unlock;
用户已更改。
SQL> connect scott/tiger
ERROR:
ORA-28001: the password has expired
更改 scott 的口令
新口令:
重新键入新口令:
口令已更改
已连接。
SQL> select id,to_char(time,'yyyy-mm-dd HH24:MI:SS') time from test;
ID TIME
---------- -------------------
1 2008-05-28 15:33:31
删除scott.emp表
SQL> drop table scott.emp;
表已删除。
SQL> insert into test values(2,sysdate);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select id,to_char(time,'yyyy-mm-dd HH24:MI:SS') time from test;
ID TIME
---------- -------------------
1 2008-05-28 15:33:31
2 2008-05-28 15:42:50
不完全恢复到删除表只前,也就是test表只有1数据。
2、重新命名一个归档日志
用基于取消的恢复,当某个归档日志文件损坏或丢失时,常常使用基于取消的恢复。
确定当前日志文件:
SQL> select sequence#,status from v$log;
SEQUENCE# STATUS
---------- ----------------
8 CURRENT
6 INACTIVE
7 ACTIVE
当前日志文件序号为8,找到日志文件序号为7的归档O1_MF_1_7_43T38PB7_.ARC 重命名为
O1_MF_1_7_43T38PB7_.ARC.backup。
3、检查恢复
找出需要恢复到某一时间点
SQL> select sequence#,first_change#,to_char(first_time,'yyyy-mm-dd hh24:mi:ss')
2 first_time from v$log_history;
SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ------------- -------------------
1 534907 2008-05-28 15:19:11
2 541971 2008-05-28 15:19:43
3 550006 2008-05-28 15:34:21
4 550018 2008-05-28 15:34:47
5 551127 2008-05-28 15:37:24
6 551180 2008-05-28 15:38:47
7 551263 2008-05-28 15:39:34
已选择7行。
4、还原数据库
关闭数据库,把原来备份的数据文件拷贝回来
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del G:\oracle\product\10.2.0\oradata\risenet\*.dbf
G:\oracle\product\10.2.0\oradata\risenet\*, 是否确认(Y/N)? y
SQL> host copy e:\backup\*.dbf G:\oracle\product\10.2.0\oradata\risenet
e:\backup\open_backup_output.lst
e:\backup\SYSTEM01.DBF
e:\backup\UNDOTBS01.DBF
e:\backup\SYSAUX01.DBF
e:\backup\USERS01.DBF
e:\backup\RISE.DBF
已复制 6 个文件。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 104858404 bytes
Database Buffers 159383552 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
5、将数据库恢复到某一点上
查看哪些需要恢复
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
1 ONLINE ONLINE 551181 28-5月 -08
2 ONLINE ONLINE 551205 28-5月 -08
3 ONLINE ONLINE 551218 28-5月 -08
4 ONLINE ONLINE 551236 28-5月 -08
5 ONLINE ONLINE 551249 28-5月 -08
SQL> alter database recover automatic until time '2008-05-28:15:33:31';
alter database recover automatic until time '2008-05-28:15:33:31'
*
第 1 行出现错误:
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01195: 文件 1 的联机备份需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF'
SQL> alter database recover until cancel using backup controlfile;
alter database recover until cancel using backup controlfile
*
第 1 行出现错误:
ORA-00279: 更改 551181 (在 05/28/2008 15:38:48 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_6_%U_.ARC
ORA-00280: 更改 551181 (用于线程 1) 在序列 #6 中
注意:需要归档日志时,需要把刚才重命名的日志改回来。
SQL> recover database using backup controlfile until time '2008-05-28:15:33:31';
ORA-00279: 更改 551263 (在 05/28/2008 15:39:34 生成) 对于线程 1 是必需的
ORA-00289: 建议:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_7_%U_.ARC
ORA-00280: 更改 551263 (用于线程 1) 在序列 #7 中
指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;
数据库已更改。
6、验证数据库恢复
SQL> select * from test;
ID TIME
---------- --------------
1 28-5月 -08
SQL> select * from scott.emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-12月-80 800
问答:
1、某个处于备份模式的联机表空间中的数据文件并不发生变化,或由数据库写进程用更改过的数据块予以
更新
A、True
B、False
答案:B
在热备份模式中,数据文件块被持续不断地读出和写入,数据文件首部和重做内容的控制不一样。
2、为什么要清理归档日志目的路径中已经归档的重做日志文件?
A、这些已经归档的重做日志文件与数据库参数文件冲突了
B、将它们脱机以防不测
C、这样归档目的路径有空间容纳更多的归档文件
D、以防一个新数据库的文件覆盖已有的归档文件
答案:BCD
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-321869/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12778571/viewspace-321869/