模拟工业场景:数据库的用户被删除掉了,表空间,数据文件都在的 能否恢复?...

本文通过创建和删除用户的过程,演示了如何使用Oracle闪回数据库功能进行数据恢复。实验关键在于确定闪回时间戳,确保其位于创建和删除操作之间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

[html] view plain copy
  1. SQL>select*fromv$versionwhererownum=1;
  2. BANNER
  3. ----------------------------------------------------------------
  4. OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Prod
  5. SQL>!uname-a
  6. Linuxthink-V30SA2.6.35-22-generic#33-UbuntuSMPSunSep1920:34:50UTC2010i686GNU/Linux

我打算用闪回数据库来恢复,关于开启闪回数据库请参见: 闪回如何开启及注意事项


模拟的实验过程如下:

  1. SQL>showuser
  2. USERis"SYS"
  3. SQL>selectflashback_onfromv$database;
  4. FLASHBACK_ON
  5. ------------------
  6. YES
  7. SQL>createuseru1identifiedbyu1defaulttablespaceusersquota10monusers;--20:56分创建u1用户
  8. Usercreated.
  9. SQL>grantconnect,createanytabletou1;
  10. Grantsucceeded.
  11. SQL>connu1/u1
  12. Connected.
  13. SQL>createtabletest(iint);
  14. Tablecreated.
  15. SQL>insertintotestvalues(1);
  16. 1rowcreated.
  17. SQL>insertintotestvalues(2);
  18. 1rowcreated.
  19. SQL>commit;
  20. Commitcomplete.
  21. SQL>select*fromtest;
  22. I
  23. ----------
  24. 1
  25. 2
  26. SQL>conn/assysdba
  27. Connected.
  28. SQL>dropuseru1cascade;--21:09分把u1及其关联对象删除。
  29. Userdropped.
  30. SQL>shutdownimmediate
  31. SQL>startupmount
  32. SQL>flashbackdatabasetotimestampsysdate-9/1440;
  33. Flashbackcomplete.
  34. SQL>alterdatabaseopenresetlogs;
  35. Databasealtered.
  36. SQL>select*fromu1.test;
  37. I
  38. ----------
  39. 1
  40. 2

小结:

整个模拟实验的关键在于创建u1和删除u1之间的时间差,flashback database指定的timestamp要落在这个之间,否则实验会失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值