这篇文章主要讲解了“Oracle的快照standby有什么特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle的快照standby有什么特点”吧!众所周知,Oracle的standby数据库有三种模式:物理standby数据库、逻辑standby数据库和快照standby数据库。在这里主要讲述快照standby数据库的特点,数据库版本为11gR2。一、快照standby数据库的特点快照standby数据库有如下特点:1、能在读写模式打开,是完全免费主机域名可更新的standby数据库2、从主数据库接收相关日志,但不应用3、当转换为物理standby数据库时,首先会抛弃所有之前的更新,然后应用接收到的redo数据4、不能作为switchver或者failover的目标。在执行角色转换之前,必须首先转换为物理standby数据库5、在最大保护Data Guard配置中,快照standby数据库不能是唯一的standby数据库。注意:使用Flashback Database技术的任何操作都是不可逆的,Flashback Database将阻止一个快照standby转换为物理standby二、快照standby数据库的搭建1、物理standby数据库搭建快照standby数据库由物理standby数据库转换而来。因此首先搭建物理standby数据库,过程略。2、将物理standby数据库转换为快照standby数据库1)主库上查看目的地的数据库模式、恢复模式和保护模式SQL> select dest_id,database_mode,recovery_mode,protection_mode from v$archive_dest_status where dest_id = 2; DEST_ID DATABASE_MODE RECOVERY_MODE PROTECTION_MODE———- ————— ———————– ——————– 2 OPEN_READ-ONLY MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE可看到standby数据库以只读方式打开,在最高可用性级别实时应用redo 2)停止物理standby数据库的Redo ApplySQL> alter database recover managed standby database cancel;Database altered.3)免费主机域名如果物理standby数据库是RAC,则只保留一个实例,其他关闭。本环境中物理standby数据库是单实例。4)确保闪回恢复区被配置SQL> show parameter db_recoverNAME TYPE VALUE———————————— ———– ——————————db_recovery_file_dest string /opt/app/oracle/fast_recovery_areadb_recovery_file_dest_size big integer 4182M否则在转换时会报错:ORA-38784: Cannot create restore point ‘SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:41:21’.ORA-38786: Recovery area is not enabled.5)将物理standby数据库转换为快照standby数据库备库上执行:SQL> alter database convert to snapshot standby;Database altered.可看到数据库创建了一个还原点:SQL> select name,storage_size from v$restore_point;NAME STORAGE_SIZE———————————————– ————SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:43:28 1073741824此时数据库处于mounted状态:SQL> select name,
2 database_role,
3 switchover_status,
4 open_mode,
5 protection_mode
6 from v$database;NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE——————– ——————– —————————— ——————– ——————–BDDEV2 SNAPSHOT STANDBY NOT ALLOWED MOUNTED MAXIMUM PERFORMANCE6)打开备库SQL> select name,
2 database_role,
3 switchover_status,
4 open_mode,
5 protection_mode
6 from v$database;此时备库已转换完成:NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE——————– ——————– —————————— ——————– ——————–BDDEV2 SNAPSHOT STANDBY NOT ALLOWED READ WRITE MAXIMUM PERFORMANCE三、快照standby转换为物理standby1.将备库重启到mount模式SQL> startup force mountORACLE instance started.2.备库执行语句,转换为物理standbySQL> alter database convert to physical standby;Database altered.转换后数据库被卸载,需要重启3.重启数据库SQL> startup force;ORACLE instance started.4.恢复redo应用SQL> alter database recover managed standby database using current logfile disconnect;Database altered.SQL> select name, 2 database_role, 3 switchover_status, 4 open_mode, 5 protection_mode 6 from v$database;NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE——————– ——————– —————————— ——————– ——————–BDDEV2 PHYSICAL STANDBY RECOVERY NEEDED READ ONLY MAXIMUM PERFORMANCE四、快照standby数据库测试1.测试是否可读写1)对表scott.tb_test进行更新:SQL> delete from scott.tb_test where object_id = 20;1 row deleted.2)删除表scott.tb_test:SQL> drop table scott.tb_test purge;Table dropped.此时表scott.tb_test在备库中已经不存在了,但在主库中还存在3)创建新表SQL> create table scott.tb_test2(id int);Table created.2.测试是否能接收日志且不应用主库:SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /opt/app/oracle/archivelog/Oldest online log sequence 77Next log sequence to archive 79Current log sequence 79可看到主库当前日志序号为79备库:SQL> SELECT PROCESS, 2 PID, 3 STATUS, 4 SEQUENCE#, 5 DELAY_MINS 6 FROM V$MANAGED_STANDBY;PROCESS PID STATUS SEQUENCE# DELAY_MINS—————————— ———- ——————– ———- ———-ARCH 25422 CLOSING 78 0ARCH 25425 CONNECTED 0 0ARCH 25427 CLOSING 76 0ARCH 25429 CLOSING 77 0RFS 26020 IDLE 0 0RFS 26023 IDLE 0 0RFS 26026 IDLE 79 0可看到备库RFS进程正在接收的redo序号也为79,因此备库此时可以接收日志;备库中MRP进程没有启动,因此可断定此时日志没有应用3.将快照standby转换为物理standby,看scott.tb_test是否能恢复按照三中的步骤,将快照standby转换为物理standby,此时查看备库中是否有scott.tb_test:SQL> select count(1) from scott.tb_test; COUNT(1)———- 86415查看之前在备库建的表scott.tb_test2还是否存在:SQL> desc scott.tb_test2ERROR:ORA-04043: object scott.tb_test2 does not exist综上,说明快照standby转换到物理standby时,会抛弃在快照standby状态时所做的更改。感谢各位的阅读,以上就是“Oracle的快照standby有什么特点”的内容了,经过本文的学习后,相信大家对Oracle的快照standby有什么特点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!
相关推荐: PostgreSQL中的ProcessRepliesIfAny函数分析
本篇内容主要讲解“PostgreSQL中的ProcessRepliesIfAny函数分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL中的ProcessRepliesIfAny函数分析”吧!调用…