查看: 2094|回复: 0

[Oracle数据库] 闪回数据库的使用

发表于 2018-3-8 08:00:02
  1. oracle闪回技术-----使用闪回日志来恢复用户的逻辑错误,这种修复只针对用户逻辑错误的恢复,而不涉及整个数据库的恢复
  2. 恢复更具有针对性而且恢复时间大大减少。
  3. 对于闪回数据库而言,闪回日志不会被归档
  4. 启用闪回数据库-----数据库处于归档模式
  5. 使用DB_RECOVERY_FILE_DEST参数指定的目录作为存储目录,该参数的值即为快速恢复区
  6. db_flashback_retention_target,该参数的值是一个一分钟为单位的数字。
  7. 通过数据字典v$flashback_database_log来评估需要的快闪恢复区空间
  8. select estimated_flashback_size,retention_target,flashback_size
  9. from v$flashback_database_log
  10. mount - alter database flashback on
  11. 查看启用状态
  12. select flashback_on from v$database;
  13. 关闭闪回数据库
  14. alter database falshback off;
  15. 禁用某个表空间的闪回特性
  16. alter tablespace users flashback off;
  17. 通过数据字典V$TABLESPACE来查询该表空间是否已经不被闪回保护
  18. col flashback_on for a15
  19. select name,flashback_on
  20. from v$tablespace;
  21. 如果要重新对表空间启用闪回数据库--需要将数据库启动到Mount状态
  22. startup mount
  23. alter tablespace users flashback on;
  24. startup mount
  25. alter database flashback off;
  26. 闪回数据库方法
  27. 可以使用RMAN方法也可以使用SQL指令的方法实现。
  28. 使用RMAN闪回数据库如下3中方法
  29. 1.将数据库闪回到过去的某个时间点,通过to_date函数指定具体的时间
  30. flashback database to time=to_date('xxxx-xx-xx xx:xx:xx','yyyy-mm-dd hh24:mi:ss')
  31. 2.将数据库闪回到过去的某个SCN,不太实际
  32. flashback database to scn =xxxxx
  33. 3.将数据库闪回到特定的日志序列号之前的状态,不包括序列号345
  34. flashback database to sequence=345 thread=1;
  35. 使用sql指令闪回数据库
  36. 1.将数据库闪回到时间戳指定的状态
  37. flashback database to timestamp (sysdate-1/24)
  38. 2.闪回数据库到某个过去的SCN
  39. flashback database to scn 678854
  40. 执行闪回数据库时,需要将数据库切换到MOUNT状态,在闪回数据库结束之后,需要用resetlogs开库,即需要重新设置重做日志
  41. ,使得重做日志序列号重新计数
  42. 使用闪回数据库
  43. 创建用户,并授予相关权限
  44. 登录到新建用户下,创建测试用表,插入记录
  45. 删除用户
  46. 在闪回日志中查看相关记录,使用到的视图v$flashback_database_log
  47. select * from v$flashback_database_log;
  48. 使用resetlogs打开数据库,闪回日志仍然有效。
  49. 监控闪回数据库
  50. 使用v$flashback_database_log查询可以闪回到的最小SCN号以及可以闪回到的时间点。
  51. select oldest_flashback_scn,oldest_flashback_time
  52. from v$flashback_database_log;
  53. 数据字典视图v$flashback_database_stat,用于监视闪回日志写入闪回数据的各种开销,
  54. 比如记录当前闪回记录起止时间,闪回记录的数据量以及重做日志记录的数据量等信息
  55. select * from v$flashback_database_stat;
  56. 监控快闪恢复区的空间变化,在必要时候增加快闪恢复区的空间
  57. select name,space_limit,space_used,space_reclaimable,number_of_files
  58. from v$recovery_file_dest
  59. name 快速恢复区的目录
  60. space_limit 空间最大使用上限
  61. space_used 已使用了的空间
  62. space_reclaimable 可以回收的空间
  63. 使用闪回数据库的限制
  64. 1.数据文件被删除或缩短
  65. 2.在闪回时间范围内复原或重建了一个控制文件
  66. 3.在resetlogs操作之前
  67. 4.表空间被删除
复制代码




回复

使用道具 举报