首页 > 其他分享 >闪回还原点(Restore Point)

闪回还原点(Restore Point)

时间:2024-04-26 11:47:11浏览次数:21  
标签:Restore 闪回 point Point restore ORA11GR2 SCOTT flashback 还原点

还原点概念

Restore point 有两种类型: Normal 和 Guaranteed
1) Normal restore point
创建语法:create restore point rp_name;
相当于某个时间点或者 SCN 的一个别名。 restore point 的名字和对应的 SCN 会保存在控制文件中。创建了 normal restore point 后,如果需要执行 flashback database/flashback
table/point-in-time recovery 等操作时,就可以制定目标时间点为该 restore point,而不需要指定当时的 SCN 了。在很多关于恢复和闪回的试验中,作者都是在试验前查询系统当前的 SCN,执行某些操作,然后恢复或者闪回到之前查询到的 SCN。有了 normal restore point 后,就不再需要查询系统当前 scn 了,只需要创建一个有意思的 normal restore point 名,以后使用该名字即可。

—————————————————————————————————————————————
注 1: Normal restore point
 保存在 undo 表空间中
2:必须拥有 SELECT ANY DICTIONARY 或 FLASHBACK ANY TABLE 权限才可以创建 Normal 还原点

—————————————————————————————————————————————
2) Guaranteed restore point
创建语法:
create restore point rp_name guarantee flashback database;
Guaranteed restore point 的功能和 normal restore point 的功能基本一致,也是作为SCN 的一个别名。但是它还有一些和 flashback database 相关的特性。前面也提到,在执行flashbackdatabase 到之前的某个时间点时,必须保证所需要的 flashback log 存在。
创建一个 guaranteed restore point,可以保证能将数据库 flashback 到该点,即使没有系统启用 flashback database 日志!这是因为,在创建 guaranteed restore point 之后,对于任何 block 的第一次变更,都会将其前映象整个的记录下来
如果系统启用了 flashback database 日志,那么 guaranteed restore point 可以保证能将数据库 flashback 到 guaranteed restore point 之后的任何时间点。
一旦创建了可靠还原点,要密切关注 flashback_recovery_area 空间的使用情况,因为在创建guaranteed restore point 之后,对于任何 block 的第一次变更,都会将其前映象整个的记录下来。所以当不再使用某一可靠还原点后要及时删除;

——————————————————————————————————————————————
注 1: Guaranteed restore point 保存在闪回日志中
   2:必须拥有 SYSDBA 系统权限才有权创建可靠还原点
   3:必须启用快速恢复区
   4:数据库必须处于归档模式
3) 删除语法: drop restore point point_name;

 

1.7.2. 测试基于可靠还原点闪回数据库
1) SCOTT 用户下创建测试表并插入一条记录

SCOTT@ORA11GR2>create table fbdb_point as select * from fbdb_scn where 1=2;

 

Table created.

 

SCOTT@ORA11GR2>insert into fbdb_point select 1 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;

 

1 row created.

 

SCOTT@ORA11GR2>commit;

 

Commit complete.

SCOTT@ORA11GR2>select * from fbdb_point;

 

        ID        SCN DD

---------- ---------- -------------------

         1    1876290 2016-10-01 08:12:39

2) 连接到 sys 用户创建可靠还原点,因为只有拥有 sysdba 系统权限的用户才有权创建可靠还原点

SCOTT@ORA11GR2>conn / as sysdba

Connected.

SYS@ORA11GR2>create restore point rp_fbdb guarantee flashback database;

 

Restore point created.

 

3) 再次插入一条记录,验证当闪回到可靠还原点后,本次插入的记录将不存在

SYS@ORA11GR2>conn scott/tiger;

Connected.

SCOTT@ORA11GR2>insert into fbdb_point select 2 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;

 

1 row created.

 

SCOTT@ORA11GR2>commit;

 

Commit complete.

 

SCOTT@ORA11GR2>select * from fbdb_point;

 

        ID        SCN DD

---------- ---------- -------------------

         1    1876290 2016-10-01 08:12:39

         2    1876411 2016-10-01 08:15:48

 

4) 删除 SCOTT 用户,数据库启动到 mount 模式

SCOTT@ORA11GR2>conn / as sysdba

Connected.

SYS@ORA11GR2>drop user scott cascade;

 

User dropped.

 

SYS@ORA11GR2>shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS@ORA11GR2>startup mount;

ORACLE instance started.

 

Total System Global Area  730714112 bytes

Fixed Size                  2256832 bytes

Variable Size             452984896 bytes

Database Buffers          272629760 bytes

Redo Buffers                2842624 bytes

Database mounted.

5) 执行基于还原点的闪回数据库

SYS@ORA11GR2>flashback database to restore point rp_fbdb;

 

Flashback complete.

 

6) 以 resetlogs 方式打开

SYS@ORA11GR2>alter database open resetlogs;

 

Database altered.

注 既然是还原点,那么那个还原点一定是我想还原到的地方,所以无需 read only 打开验证

 

7) 验证结果

SYS@ORA11GR2>select * from scott.fbdb_point;

 

        ID        SCN DD

---------- ---------- ---------

         1    1876290 01-OCT-16

 

SYS@ORA11GR2>conn scott/tiger

Connected.

SCOTT@ORA11GR2>select * from scott.fbdb_point;

 

        ID        SCN DD

---------- ---------- -------------------

         1    1876290 2016-10-01 08:12:39

 

SCOTT@ORA11GR2>conn / as sysdba

Connected.

 

8) 查看还原点,将其删除

SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;

 

NAME                   SCN STORAGE_SIZE GUA

--------------- ---------- ------------ ---

RP_FBDB            1876367     52428800 YES

 

SYS@ORA11GR2>drop restore point rp_fbdb;

 

Restore point dropped.

 

SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;

 

no rows selected

注: 用完可靠还原点以后,一定要记得将其删除,因为启用了可靠还原点,那么数据库的一举一动都会记录闪回日志中,从启用可靠还原点起,直到删除,这个期间是不受闪回日志保留期限的约束的,也就是说,只要你不删除可靠还原点,那么日志就一直保留着,确实够意思,真没白叫可靠还原点。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31397003/viewspace-2126613/,如需转载,请注明出处,否则将追究法律责任。

标签:Restore,闪回,point,Point,restore,ORA11GR2,SCOTT,flashback,还原点
From: https://www.cnblogs.com/aries0228/p/18159684

相关文章

  • PImpl:Pointer to Implementation
    Pimpl(Pointertoimplementation)是一种C++编程技术,用于将类的实现细节与其接口分离。通常情况下,类的实现细节会暴露在类的头文件中,这会增加代码的复杂性并使得类的修改和维护变得困难。使用Pimpl技术,可以在类的头文件中只暴露必要的接口,而将具体实现细节放在单独的实现文件中,通过......
  • 【Flink入门修炼】2-3 Flink Checkpoint 原理机制
    如果让你来做一个有状态流式应用的故障恢复,你会如何来做呢?单机和多机会遇到什么不同的问题?FlinkCheckpoint是做什么用的?原理是什么?一、什么是Checkpoint?Checkpoint是对当前运行状态的完整记录。程序重启后能从Checkpoint中恢复出输入数据读取到哪了,各个算子原来的状态是......
  • WPF 触摸下如何给 StylusPointCollection 添加点
    本文告诉大家如何在触摸下给WPF的StylusPointCollection添加新的点在自己默认创建的StylusPointCollection里面添加点是十分简单的,如以下代码,可以非常简单添加到集合StylusPointCollectionstylusPointCollection=newStylusPointCollection();stylus......
  • 21. CheckPoint
    CheckPoint的作用缩短数据库的恢复时间数据库宕机恢复依赖redolog。当恢复时不需要重做所有日志,因为CheckPoint之前的页都已经刷盘,只需要对CheckPoint之后的日志进行恢复,从而缩短恢复时间缓冲池不够用时,将脏页刷新到磁盘当缓冲池不够时,LRU算法会溢出最近最少使用的页,若......
  • 打印文件 -批量打印PDF/WORD/EXCEL/POWER POINT文件
     打印软件下载地址链接:https://pan.baidu.com/s/1IjRlNb2Krl8P_pCuIhbL-g提取码:gzkn--来自百度网盘超级会员V4的分享批量打印PDF/WORD/EXCEL/POWERPOINT文件|SW技巧网(peesky.com)   ......
  • 22.Postgresql的checkpoint功能
    PostgreSQL中的checkpoint是数据库管理系统(DBMS)中的一项重要机制,用于确保数据的一致性、可恢复性和性能管理。以下是关于PostgreSQLcheckpoint的详细解释:checkpoint的定义与作用定义:Checkpoint是一个在WAL(Write-AheadLog)序列中的点,此时所有数据文件已更新,反映了到该点为止......
  • dbt-checkpoint 确保dbt 项目质量的pre-commit hooks 工具
    dbt-checkpoint实际上属于pre-commithooksplugin实现了不少hooks可以用来提升dbt项目的模型质量内部处理上实际是对于dbt的元数据进行解析,当然dbt-checkpoint也提供了不少其他扩展目前包含的hooks只大概说明下,详细的后边介绍下,目前涉及了,model,source,script,macro,modifier......
  • dbt-checkpoint 源码结构简单说明
    前边说过dbt-checkpoint是基于dbt的元数据解析,然后集合规则进行check,属于一个pre-commit插件,以下简单说明下内部实现配置核心是.pre-commit-hooks.yaml文件,一个标准的pre-commit定义内容核心是id,name,entry,language,entry实际上就是一个pythonentry_points的console_......
  • 【Spring】AOP进阶-JoinPoint和ProceedingJoinPoint详解
    2024-04-141.前言在Spring AOP中,JoinPoint和ProceedingJoinPoint都是关键的接口,用于在切面中获取方法的相关信息以及控制方法的执行。它们的主要区别在于它们在AOP通知中的使用方式和功能。2.JoinPoint简介Joinpoint是面向切面编程(AOP)中的一个重要概念,指的是在应用程序执行......
  • [转帖][译] 使用 Linux tracepoint、perf 和 eBPF 跟踪数据包 (2017)
    http://arthurchiao.art/blog/trace-packet-with-tracepoint-perf-ebpf-zh/ 译者序本文翻译自2017年的一篇英文博客 Tracingapacket’sjourneyusingLinuxtracepoints,perfandeBPF ,并添加了章节号以方便阅读。由于译者水平有限,本文不免存在遗漏或错误之处。如......