#管理还原点

还原点(Restore Point)类似于书签,用于标记一个特定的SCN或时间戳,方便事后需要执行全库闪回时能更便捷地定位目标点。

根据有效属性,可分为永久还原点和普通还原点:

特性 永久还原点 普通还原点
闪回日志依赖性 强制保留该还原点后的闪回日志文件 闪回日志文件可被自动清理,相关文件被清理后普通还原点失效
存储开销
始终需保留闪回日志

仅记录时间戳或SCN
删除机制 只能手动删除 * 可手动删除
* 关闭闪回功能时,自动删除所有普通还原点
恢复机制 * 对于备份与恢复:恢复后始终会删除所有还原点
* 对于全库恢复:取决于恢复到的时间点与目标还原点的创建时间点的先后关系
同永久还原点
其他 * 强制保留该还原点的归档日志文件
* 通常存在永久还原点时无法关闭全库闪回功能,但执行SWITCHOVER时会强制自动关闭旧主的闪回功能(即使存在永久还原点)
-

# 创建还原点

在执行高风险操作前,可以创建还原点以标记已知的良好状态,并根据恢复需求选择永久还原点或普通还原点。

# 前提条件

  • 开启全库闪回功能。

  • 执行相应操作的实例必须处于MOUNT或OPEN阶段。

  • 用户权限要求:

    • 永久还原点:必须使用超级管理员sys用户执行相应操作。

    • 普通还原点:执行相应操作的用户需具备FLASHBACK ANY TABLE及以上权限。

  • 获取V$FLASHBACK_DATABASE_LOG视图里显示的最老时间线(OLDEST_FLASHBACK_SCN、OLDEST_FLASHBACK_TIME),创建还原点指定的时间线不得早于该值。

# 操作步骤

  1. 以符合权限要求的用户连接并登录数据库。
$ yasql sales/********@192.168.1.2:1688
YashanDB SQL Enterprise Edition Release {version_number} x86_64

Connected to:
YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux

SQL> 
  1. 执行CREATE RESTORE POINT语句,创建永久还原点:
-- 方式1:基于SCN创建永久还原点
-- 1. 获取SCN信息,本文已获取当前SCN为例
SELECT CURRENT_SCN FROM V$DATABASE;

          CURRENT_SCN
---------------------
   725539138356854784

-- 2. 创建永久还原点
CREATE RESTORE POINT G20241201_01 AS OF SCN 725539138356854784 GUARANTEE FLASHBACK DATABASE;

-- 方式2:基于时间戳创建永久还原点
CREATE RESTORE POINT G20241201_02 AS OF TIMESTAMP SYSTIMESTAMP() GUARANTEE FLASHBACK DATABASE;

-- 方式3:直接创建当前时刻的永久还原点
CREATE RESTORE POINT G202412011100 GUARANTEE FLASHBACK DATABASE;

# 查看已有还原点

GV$RESTORE_POINT/V$RESTORE_POINT记录了还原点的信息,在执行全库闪回前可以先通过视图找到需要恢复到哪个目标时间点。

SELECT NAME,SCN,IS_GUARANTEE FROM V$RESTORE_POINT;

NAME                                                                               SCN IS_GUARANTEE
---------------------------------------------------------------- --------------------- ------------
G20241201_01                                                        725539138356854784            1
G20241201_02                                                        725542053510234112            1
G202412011100                                                       725539138356854784            1
N20241201_01                                                        725539138356854784            0
N20241201_02                                                        725542222390407168            0
N202412011100                                                       725539138356854784            0
  • IS_GUARANTEE = 1表示该还原点为永久还原点。

  • IS_GUARANTEE = 0表示该还原点为普通还原点。

# 删除已有还原点

在明确某个还原点无需使用后,可以删除清理相关记录,避免无关信息太多,在执行全库闪回时干扰选择。

对于永久还原点,为避免日志文件堆积导致空间不足,更应定期进行手动删除。

如需关闭全库闪回功能,必须先手动删除所有永久还原点。

# 前提条件

  • 开启全库闪回功能。

  • 执行相应操作的实例必须处于MOUNT或OPEN阶段。

  • 用户权限要求:

    • 永久还原点:必须使用超级管理员sys用户执行相应操作。

    • 普通还原点:执行相应操作的用户需具备FLASHBACK ANY TABLE及以上权限。

# 操作步骤

  1. 以符合权限要求的用户连接并登录数据库。

    $ yasql sales/********@192.168.1.2:1688
    YashanDB SQL Enterprise Edition Release {version_number} x86_64
    
    Connected to:
    YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux
    
    SQL> 
    
  2. 查询还原点信息,获取目标名称。

    SELECT NAME,SCN,IS_GUARANTEE FROM V$RESTORE_POINT;
    
    NAME                                                                               SCN IS_GUARANTEE
    ---------------------------------------------------------------- --------------------- ------------
    G20241201_01                                                        725539138356854784            1
    G20241201_02                                                        725542053510234112            1
    G202412011100                                                       725539138356854784            1
    N20241201_01                                                        725539138356854784            0
    N20241201_02                                                        725542222390407168            0
    N202412011100                                                       725539138356854784            0
    
  3. 执行DROP RESTORE POINT语句,删除还原点。

    DROP RESTORE POINT N202412011100;
    
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流