文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>《循序渐进ORACLE》学习笔记连载01

《循序渐进ORACLE》学习笔记连载01

时间:2010-03-08  来源:q3dx

前端时间开始了对《循序渐进ORACLE》这本书的学习研究 为了巩固学习知识,现每天日记于此 今天的话题: ORACLE的闪回特性 ORACLE的这个闪回特性,真是让人倍感兴奋,因为他减轻了DBA的工作复杂度。 如果用户误操作,删除业务中原本不该删除的数据 这是就要利用到oracle 9i 版本中全新推出的——闪回特性 案例模仿: 假如hr用户在工作过程中将自己的表hr_test中的数据误删除 conn hr/hr create table hr_test values(id number,name char(10)); commit; 插入数据以供模拟,(这里插入1000条记录以供测试) begin for i in 1 .. 1000 loop insert into hr_test values(i,'Love'); end loop; end; / commit; 现在删除20条记录 delete from hr_test where rownum < 21; commit;(注意此处已经提交) 接下来怎么恢复呢? 这个就要利用闪回特性了: 以sys用户查看此时系统的scn select dbms_flashback.get_system_change_number from dual; 结果为(我的测试库):2143983 在hr用户查看hr_test表的数据条数 select count(id) from hr_test ; 创建恢复数据表 create table hr_test_recov as select * from hr_test where 1=0; (注意上句的1=0的意思是创建与hr_test表结构一样但为空的数据表hr_test_recov) 开始恢复操作: 当前scn为2143983 select count(*) from hr_test as of scn 2120000; 看看结果为多少,如果结果出现诸如如下信息: ERROR at line 1:
ORA-08181: specified number is not a valid system change number
则说明scn提前过多 将scn往后推进,再试试 select count(*) from hr_test as of scn 2137799; 如出现:
count(*)
--------- 1000 则说明,此时的scn就是你需要的scn 马上进行如下操作:
insert into hr_test_recov select * from hr_test as of scn 2137799;
并提交 commit; 看看hr_test_recov表中的数据条数 select count(id) from hr_test_recov; 绝对是1000条 然后将hr_test_recov的数据导入hr_test表中即可。
可见,闪回特性真的很好。 ---THE END---
相关阅读 更多 +
排行榜 更多 +
试着飞手游下载

试着飞手游下载

休闲益智 下载
血染小镇(功能菜单)中文版下载

血染小镇(功能菜单)中文版下载

飞行射击 下载
泰坦之旅高爆版下载

泰坦之旅高爆版下载

角色扮演 下载