oracle create restore point,Oracle Restore Point

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

概述

还原点(Restore Point)是10gR2推出的一个新特性,是与数据库时间戳或SCN关联的。还原点可以用于将表或数据库闪回到还原点指定的时间。还原点分为正常还原点和保证还原点两种类型

正常还原点

创建正常还原点会将还原点分配给SCN或者特定时间点。控制文件存储还原点和SCN的名称。

如果使用闪回功能或者基于时间点的恢复,则可以使用还原点而不是时间戳或SCN。以下命令支持恢复点的使用:

RMAN中的RECOVER DATABASE和FLASHBACK DATABASE命令

FLASHBACK TABLE语句

正常还原点是轻量级的。控制文件可以维护数千个正常还原点,而不会对数据库造成重大影响。如果没有手动删除,控制文件会自动管理,无需持续维护。

保证还原点

与正常还原点一样,保证还原点也充当SCN的别名。主要区别在于保证还原点永远不会超出控制文件的限制,必须手动删除。

即使禁用了闪回日志,保证还原点也可以确保数据库闪回至还原点SCN状态。如果启用了闪回日志,则保证还原点会强制保留闪回数据库到还原点之后任何SCN所需的闪回日志.因此,如果启用了闪回日志记录,则可以将数据库还原到还原点之后任何的SCN点,而不仅限于一个SCN。

语法

先决条件

要创建或删除一个正常还原点,您必须具有SELECT ANY DICTIONARY或者FLASHBACK ANY TABLE特权。要创建或删除有保证的还原点,您必须拥有SYSDBA系统权限。

要查看或使用还原点,您必须具有SELECT ANY DICTIONARY或FLASHBACK ANY TABLE系统特权或SELECT_CATALOG_ROLE角色。

您可以在主数据库或备用数据库上创建还原点。数据库可以打开,也可以挂载但不能打开。如果安装了数据库,那么它必须在挂载之前一直关闭,除非它是物理备用数据库。

创建保证还原点之前,您必须创建了快速恢复区域。在创建还原点之前,您不需要启用闪回数据库。ARCHIVELOG如果您要创建有保证的还原点,数据库必须处于模式下。

创建还原点

f03e46ecba8406e55d18e3bd36eb886c.png

字段

含义

备注说明

restore_point

指定还原点的名称,最多由128个字符组成

数据库可以至少保留20148个还原点。正常还原点保留时间由CONTROL_FILE_RECORD_KEEP_TIME参数控制,默认为7天。保证还原点需手工删除

AS OF Clause

指定时间戳或SCN

如果指定TIMESTAMP,则expr必须是一个有效的日期时间表达式,以解析过去的时间。如果指定SCN,则expr过去必须是数据库中的有效SCN

PRESERVE

指定必须明确手工删除还原点

GUARANTEE FLASHBACK DATABASE

创建保证还原点选项

1、无论DB_FLASHBACK_RETENTION_TARGET初始化参数设置如何,保证还原点都可使您确定性地将数据库刷新到还原点。闪回能力取决于快速恢复区有足够的空间。 2、保证还原点仅保证数据库将维护足够的闪回日志以将数据库闪回到保证的还原点。它并不保证数据库将具有足够的撤销将任何表闪回到相同的还原点 3、保证还原点需要明确手工删除,因此为占用大量快速恢复区空间,因此需谨慎使用

删除还原点

f03e46ecba8406e55d18e3bd36eb886c.png

查看还原点

可在RMAN中列出单个还原点或所有还原点

1

2LIST RESTORE POINT restore_point_name ;

LIST RESTORE POINT ALL;

查看还原点具体信息

1

2SQL> SELECT NAME,SCN,TIME,DATABASE_INCARNATION#,

GUARANTEE_FLASHBACK_DATABASE,STORAGE_SIZE FROM V$RESTORE_POINT;

示例

创建正常还原点

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28SQL> CREATE RESTORE POINT good_data;

SQL> SELECT salary FROM employees WHERE employee_id = 108;

SALARY

----------

12000

SQL> UPDATE employees SET salary = salary*10

WHERE employee_id = 108;

SQL> SELECT salary FROM employees

WHERE employee_id = 108;

SALARY

----------

120000

SQL> COMMIT;

SQL> FLASHBACK TABLE employees TO RESTORE POINT good_data;

SQL> SELECT salary FROM employees

WHERE employee_id = 108;

SALARY

----------

12000

创建保证还原点

1SQL> CREATE RESTORE POINT before_upgrade GUARANTEE FLASHBACK DATABASE;

删除还原点

1SQL> DROP RESTORE POINT good_data;

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值