oracle查看还原点,在天堂 - 技术老男

从 Oracle Database 19c 开始,DG 在主库上创建的还原点会自动复制到备库,这也是DG的新特性之一。

什么是还原点

还原点其实就是SCN的标签或别名,它分为两种类型:

正常还原点(Normal Restore Points )

保证还原点(Guaranteed Restore Points )

还原点提供与闪回数据库和其他介质恢复操作相关的功能。 特别是,在系统改变号(SCN)上创建的保证还原点可以使用闪回数据库将数据库回滚到此SCN。 还原点功能和闪回数据库功能可以单独使用,也可以一起使用。

正常还原点

创建正常还原点会将还原点名称分配给SCN或特定时间点。

建的正常还原点,可以代替时间在将来用于操作撤销到特点时间点。

还原点的名称和SCN是存储在控制文件中的。

如果使用闪回功能或基于时间点的恢复,则可以使用还原点的名称而不是时间或SCN。

以下命令支持使用还原点:

RMAN中的RECOVER DATABASE和FLASHBACK DATABASE命令

SQL中的FLASHBACK TABLE语句

创建正常还原点消除了事先手动记录SCN或通过使用闪回查询等功能确定事后的正确SCN。

正常还原点是轻量级的。 控制文件可以维护数千个正常还原点的记录,而不会对数据库性能产生重大影响。

如果不手动删除,正常还原点最终会从控制文件中老化,因此它们不需要持续维护。

保证还原点

保证还原点与正常还原点一样充当恢复操作中SCN的别名。 主要区别在于保证的还原点永远不会超出控制文件的范围,必须明确删除。它的使用和正常还原点没有区别。

需要注意的是,无论是否启动了闪回数据库功能,保证还原点都可以使用闪回数据库将数据库回滚到还原点SCN的状态。

如果启用了闪回日志记录,则保证还原点会强制保留从最早的保证还原点之后,闪回数据库闪回到任意SCN所需的闪回日志。

因此,如果启用了闪回日志记录,则可以将数据库闪回到开启保证还原点以后的任何SCN,而不是仅闪回到单个SCN。

12c以后,可以在CDB和PDB级别创建还原点

复制还原点

从 Oracle Database 19c 开始,在主数据库上创建的还原点会自动复制到备用数据库。

在备库上生成的还原点称为复制还原点。无论主库上的还原点是保证还原点还是正常还原点,备库相应的复制还原点始终是正常还原点。

备库上的复制还原点信息,是通过redo传输的备库的。所以会在备库应用日志完成才会出现。

复制还原点的名字有个特别的约定,在还原点名称后使用后缀_PRIMARY

如:主库还原点名称为:DBSTYLE,则备库复制还原点名称为:DBSTYLE_PRIMARY

需要注意:

如果备库存在同名的复制还原点,则主库的还原点不会在备库创建

删除主库上的还原点时,也会删除备库上相应的复制还原点。

演示请看以下的实验过程:

1. 查看是否创建过还原点,下面输出显示没有创建过还原点;

[oracle@sdedu ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 22:07:09 2019

Version 19.2.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0

SQL> select * from v$restore_point;

no rows selected

2. 接下来创建还原点dbstyle_sd;

SQL> create restore point dbstyle_sd;

Restore point created.

3. 通过 v$restore_point 动态性能视图查看还原点信息,其中正常还原点的 storage_size 为零,保证还原点的 storage_size 会显示所用空间 ;

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2092260 NO 0 DBSTYLE_SD NO

4. 主库创建还原点以后,经过日志同步过去后,可以看到备库也出现了还原点。备库还原点的名称为dbstyle_sd_primary ,说明使用了_primary后缀,同时replicated列显示YES,表明是复制得到的;

[oracle@sdrep ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 11:11:28 2019

Version 19.2.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2092260 NO 0 DBSTYLE_SD_PRIMARY YES

5. 现在可以在备库使用这个还原点,进行闪回和还原等操作。我们用 flashback 做测试,首先要确保备库打开闪回功能(开启闪回以后在创建还原点);

SQL> select flashback_on from v$database;

FLASHBACK_ON

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

YES

备库开启闪回数据库的命令如下,在 recover 停掉后可以直接在备库执行;

SQL> alter database flashback on;

Database altered.

6. 接下来停掉recover过程后,可以在备库使用复制还原点对数据库进行闪回;

SQL> recover managed standby database cancel;

Media recovery complete.

SQL> flashback database to restore point dbstyle_sd_primary;

Flashback complete.

7. 闪回完成后,可以观察到当前备库的SCN和复制还原点的SCN一致;

SQL> select current_scn from v$database;

CURRENT_SCN

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

2092260

8. 再次开启recover,应用主库传过来的日志,SCN开始增加,说明备库日志应用正常。

SQL> recover managed standby database disconnect from session;

Media recovery complete.

SQL> select current_scn from v$database;

CURRENT_SCN

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

2093938

9. 当然在备库直接创建还原点也是允许的,如下输出可以看到还原点dbstyle的replicated列显示的是NO,说明不是从主库复制所生成。

SQL> recover managed standby database cancel;

Media recovery complete.

SQL> create restore point dbstyle;

Restore point created.

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2092260 NO 0 DBSTYLE_SD_PRIMARY YES

2093938 NO 0 DBSTYLE NO

10. 回到主库,在创建一个还原点dbstyle;

SQL> create restore point dbstyle;

Restore point created.

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2092260 NO 0 DBSTYLE_SD NO

2108821 NO 0 DBSTYLE NO

11. 在备库中再次查看还原点信息,观察到由于备库有和主库一样名称的还原点,主库创建的还原点dbstyle,不会同步到备库中;

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2092260 NO 0 DBSTYLE_SD_PRIMARY YES

2093938 NO 0 DBSTYLE NO

12. 在主库中删除还原点;

SQL> drop restore point dbstyle_sd;

Restore point dropped.

SQL> drop restore point dbstyle;

Restore point dropped.

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

no rows selected

13. 在备库中查看还原点信息,可以看到主库复制过来的还原点已经同步删除,在备库中创建的还原点还存在;

SQL> select scn, guarantee_flashback_database, storage_size, name, replicated from v$restore_point;

SCN GUA STOR NAME REP

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

2093938 NO 0 DBSTYLE NO

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值