我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Snapshot standby模式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Snapshot standby模式

    客户某生产业务增量生产时发现数据库会切换Snapshot standby模式。进行学习测试。

一、原理说明

在Oracle 11g中,data guard最吸引人的active data guard的实时查询特性(即可以以只读方式打开物理standby数据库的同时MRP进程能继续做recover),快照备用数据库这个特性也是不错,比较适用于快速部署一个临时的与线上环境相同的测试数据库.它是通过还原点(restore point)和闪回数据库的原理(flashback database),可以以读/写方式打开物理备用数据库,对数据库进行修改,之后再根据还原点,恢复到物理备用数据库。

Snapshot standby模式,即在备库进行,开启此模式时为了在备库进行一些测试操作,而又不行留存在数据库中,当备库切换回physical standby物理备库时,之前在snapshot standby模式进行的测试将会被丢弃

备注:

物理standby是最高保护模式(maximum protection),是不能转换为snapshot standby的.

物理standby使用了standby redo log,在create restore point后,要alter system switch logfile;,以保证还原点的scn在物理standby库上是归档的,不然可能无法成功闪回到还原点.

物理standby在切换为快照standby后,如果间隔很长时间,primary数据库产生的大量的重做日志,这样可以在转换为物理standby后,通过对primary数据库的增量备份并recover到物理standby,来加快物理standby的还原速度.

注意:

1.需首先确认备库已经结束日志应用了!(本次测试因为没有确认导致部分步骤报错)

2.snapshot standby模式时,闪回数据库功能可开启也也可关闭,默认是关闭状态;但必须设置快速恢复区大小及路径

二、备库节点node2测试步骤:

[oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 19 21:46:34 2018

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

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production


SQL> select flashback_on from v$database;


FLASHBACK_ON

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

NO


SQL> select open_mode,database_role from v$database;


OPEN_MODE            DATABASE_ROLE

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

READ ONLY WITH APPLY PHYSICAL STANDBY


SQL> select status from v$instance;


STATUS

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

OPEN


SQL> alter database convert to snapshot standby;

alter database convert to snapshot standby

*

ERROR at line 1:

ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_06/15/2018

02:27:25'.

ORA-01153: an incompatible media recovery is active

查询网络资料:

ORA-01153: an incompatible media recovery is active


Cause: Attempted to start an incompatible media recovery or open resetlogs

during media recovery or RMAN backup . Media recovery sessions are

incompatible if they attempt to recover the same data file. Incomplete media

recovery or open resetlogs is incompatible with any media recovery. Backup or

restore by RMAN is incompatible with open resetlogs


Action: Complete or cancel the other media recovery session or RMAN backup

解决方法:

SQL> alter database recover managed standby database cancel;

Database altered.


SQL> alter database  recover managed standby database using current logfile disconnect from session; 

Database altered.


SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE

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

MOUNTED              PHYSICAL STANDBY


SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-10456: cannot open standby database; media recovery session may be in progress

原因:开启备库应用日志之后没取消应用日志,直接启库,报错

SQL> alter database recover managed standby database cancel;

Database altered.


SQL> alter database open;

Database altered.

SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE

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

READ ONLY            PHYSICAL STANDBY


SQL> alter database convert to snapshot standby;

alter database convert to snapshot standby

*

ERROR at line 1:

ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_06/15/2018

02:46:02'.

ORA-38786: Recovery area is not enabled.

创建一个目录用于存放快速恢复区

[root@node2 oradata]# su - oracle

[oracle@node2 ~]$ cd /oradata/

[oracle@node2 oradata]$ mkdir recovery


SQL> show parameter recovery;

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string

db_recovery_file_dest_size           big integer 4182M

recovery_parallelism                 integer     0

SQL> alter system set db_recovery_file_dest='/oradata/recovery';

System altered.


SQL> alter system set db_recovery_file_dest_size=2G;

System altered.


解决完报错就可以执行快照

SQL> alter database convert to snapshot standby;

Database altered.


三、查看快照信息(可以查看alert日志,会发现数据库创建了一个guaranteed restore point,确保我们切回主备,可应用日志)

[oracle@node2 trace]$ tail -f alert_orcls.log 

alter database convert to snapshot standby

Starting background process RVWR

Fri Jun 15 02:51:28 2018

RVWR started with pid=19, OS id=7250 

Allocated 3981120 bytes in shared pool for flashback generation buffer

Created guaranteed restore point SNAPSHOT_STANDBY_REQUIRED_06/15/2018 02:51:28

Killing 3 processes with pids 7193,7197,7195 (all RFS) in order to disallow current and future RFS connections. Requested by OS process 7182

All dispatchers and shared servers shutdown

CLOSE: killing server sessions.

CLOSE: all sessions shutdown successfully.


四、查看备库数据库状态,进行测试

SQL>select open_mode,database_role from v$database;


OPEN_MODE            DATABASE_ROLE

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

MOUNTED              SNAPSHOT STANDBY

SQL>  select flashback_on from v$database;


FLASHBACK_ON

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

RESTORE POINT ONLY


SQL>  select open_mode,database_role from v$database;


OPEN_MODE            DATABASE_ROLE

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

MOUNTED              SNAPSHOT STANDBY


SQL> alter database open;


Database altered.


SQL> select open_mode,database_role from v$database;


OPEN_MODE            DATABASE_ROLE

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

READ WRITE           SNAPSHOT STANDBY


做测试

SQL> CREATE TABLE ZHU (A INT);


Table created.


SQL> INSERT INTO ZHU VALUES (1);


1 row created.


SQL> COMMIT;


Commit complete.


SQL> SELECT * FROM ZHU;


         A

----------

         1

         

五、 恢复物理备库,数据库需要在mount下完成切换 ,并验证测试         

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.


Total System Global Area  776646656 bytes

Fixed Size                  2257272 bytes

Variable Size             507514504 bytes

Database Buffers          264241152 bytes

Redo Buffers                2633728 bytes

Database mounted.

SQL> alter database convert to physical standby;


Database altered.


SQL> select status from v$instance;


STATUS

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

STARTED

切换完成后需要重启到mount应用日志         


SQL> shutdown immediate;

ORA-01507: database not mounted



ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.


Total System Global Area  776646656 bytes

Fixed Size                  2257272 bytes

Variable Size             507514504 bytes

Database Buffers          264241152 bytes

Redo Buffers                2633728 bytes

Database mounted.

SQL> alter database recover managed standby database using current logfile disconnect from session; 


Database altered.


SQL> alter database recover managed standby database cancel;


Database altered.


SQL> select database_role,open_mode from v$database;


DATABASE_ROLE    OPEN_MODE

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

PHYSICAL STANDBY MOUNTED


SQL>  alter database open; 


Database altered.


SQL>  select database_role,open_mode from v$database;


DATABASE_ROLE    OPEN_MODE

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

PHYSICAL STANDBY READ ONLY

验证在SNAPSHOT STANDBY模式下创建的表

SQL> select * from ZHU;

select * from ZHU

              *

ERROR at line 1:

ORA-00942: table or view does not exist


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Snapshot standby模式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ORA-16710: snapshot standby database should be converted back to a physical standby database as soon

文档解释ORA-16710: snapshot standby database should be converted back to a physical standby database as soon as
ORA-16710: snapshot standby database should be converted back to a physical standby database as soon
2023-11-05

ORA-16419: Snapshot standby must be converted to a physical standby database. ORACLE 报错 故障修复 远程处理

文档解释ORA-16419: Snapshot standby must be converted to a physical standby database.Cause: The database was not a physical
ORA-16419: Snapshot standby must be converted to a physical standby database. ORACLE 报错 故障修复 远程处理
2023-11-04

DG -- READ ONLY模式怎么打开物理Standby

本篇文章给大家分享的是有关DG -- READ ONLY模式怎么打开物理Standby,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。物理Standby 概念DG通过REDO应
2023-06-06

ORA-38799: Cannot drop guaranteed restore point internally created for snapshot standby ORACLE 报错 故障

文档解释ORA-38799: Cannot drop guaranteed restore point internally created for snapshot standbyCause: An attempt is made to
ORA-38799: Cannot drop guaranteed restore point internally created for snapshot standby ORACLE 报错 故障
2023-11-05

ORA-16420: fast-start failover target cannot be converted to snapshot standby ORACLE 报错 故障修复 远程处理

文档解释ORA-16420: fast-start failover target cannot be converted to snapshot standbyCause: The database chosen for
ORA-16420: fast-start failover target cannot be converted to snapshot standby ORACLE 报错 故障修复 远程处理
2023-11-05

NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】

本文实例讲述了NodeJS设计模式。分享给大家供大家参考,具体如下: 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直接返回,若不存在,则创建实例对象,并将实例对象保存在静态变量中,
2022-06-04

Java设计模式-模板方法模式

定义Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses
2023-06-05

Java设计模式之模板方法模式

这篇文章介绍了Java设计模式之模板方法模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

Java设计模式-单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供
2023-06-05

Memento模式与Prototype模式结合

我是菜鸟,刚开始学习设计模式,参考jdon的设计模式这本书,里面关于 Memento模式的例子如下(本人稍加修改)[@more@]我在另一个网站上的文章: http://www.matrix.org.cn/thread.shtml?topi
2023-06-03

Python设计模式——单例模式

一、单例模式理论单例模式:    保证某一个类只有一个实例,而且在全局只有一个访问点优点:    1、由于单例模式要求在全局内只有一个实例,因而可以节省比较多的内存空间    2、全局只有一个接入点,可以更好地进行数据同步控制,避免多重占用
2023-01-31

编程热搜

目录