- 5
- 0
- 约1.32万字
- 约 31页
- 2018-11-19 发布于江苏
- 举报
第9章 闪回操和Undo表空间
第9章 闪回操作和Undo表空间 9.1闪回操作 闪回在Oracle9i就已经提出,在Oracle 10g中,数据闪回功能更加完善,可以在 不对数据库进行不完全恢复的情况下,对某一个指定的表进行恢复。 9.1.1基本概念 闪回操作使数据库中的实体显示或回到过去某一时间点,这样可以实现对历史数 据的恢复。闪回数据库功能可以将Oracle数据库恢复到以前的时间点。传统方法 是进行时间点恢复。然而,时间点恢复需要数小时甚至几天的时间。闪回数据库 是进行时间点恢复的新方法。它能够快速将Oracle数据库恢复到以前的时间,以 正确更正由于逻辑数据损坏或用户错误而引起的任何问题。当需要恢复时,可以 将数据库恢复到错误前的时间点,并且只恢复改变的数据块。 在Oracle 10g中,闪回操作包括: (1) 查询闪回(Flashback Query):查询过去某个指定时间、指定实体的数 据,恢复错误的数据库更新、删除等。 (2) 表闪回(Flashback Table):使表返回到过去某一时间的状态,可以恢复 表、取消对表进行的修改。 删除闪回(Flashback Drop):可以将删除的表重新恢复。 (4) 数据库闪回(Flashback Database):可以将整个数据库回退到过去某个时 间点。 9.1.2查询闪回 Oracle查询闪回使管理员或用户能够查询过去某些时间点的任何数据,查看和重 建因意外被删除或更改而丢失的数据。闪回查询管理简单,数据库可自动保存必 要的信息,以在可配置时间内重新将数据恢复过去的状态。 执行查询闪回操作时,需要使用两个时间函数:TIMESTAMP和TO_TIMESTAMP。其中,函数TO_TIMESTAMP的语法格式为: TO_TIMESTAMP(’timepoint’,’format’) 其中: timepoint:表示某时间点。 format:需要把timepoint格式化成何种格式。 9.1.2查询闪回 【例9.1】使用查询闪回恢复删除的数据。 (1) 查询表XS_JSJ中的数据: SQLSET TIME ON 16:11:37 SQLSELECT * FROM XS_JSJ; XH XM ZYM XB CSSJ ZXF BZ 061101 王林 计算机 男 1986-02-10 50 NULL 061102 程明 计算机 男 1987-02-01 50 NULL 061103 王燕 计算机 女 1985-10-06 50 NULL 061104 韦严平 计算机 男 1986-08-26 50 NULL 061106 李方方 计算机 男 1986-11-20 50 NULL 061107 李明 计算机 男 1986-05-01 54 提前修完《数据结 构》,并获学分 061108 林一帆 计算机 男 1985-08-05 52 已提前修完一门课 061109 张强民 计算机 男 1984-08-11 50 NULL 061110 张蔚 计算机 女 1987-07-22 50 三好生 061111 赵琳 计算机 女 1986-03-18 50 NULL 061113 严红 计算机 女 1985-08-11 48 有一门功课不及 格,待补考 9.1.2查询闪回 (2) 删除表XS_JSJ中所有记录并提交。 16:12:24 SQLDELETE FROM XS_JSJ; 16:13:15 SQLCOMMIT; (3) 进行查询回闪。 16:14:12 SQLSELECT * FROM XS_JSJ AS OF TIMESTAMP TO_TIMESTAMP(2006-5-31 16:12:25, YYYY-MM-DD HH24:MI:SS); 执行以上语句后,可以看到表中原来的数据。 (4) 将闪回中的数据重新插入XS_JSJ表中。 16:16:21 SQLINSERT INTO XS_JSJ SELECT * FROM XS_JSJ AS OF TIMESTAMP TO_TIMESTAMP(2006-5-31 16:12:25, YYYY-MM-DD HH24:MI:SS); 9.1.3表闪回 利用表闪回可以恢复表,取消对表所进行的修改。表闪回要求用户具有以下权限: (1) FLASHBACK ANY TABLE权限或者是该表的Flashback对象权限。 (2) 有该表的SELECT、INSERT、DELETE、ALTER权限。 (
原创力文档

文档评论(0)