设为首页 收藏本站
查看: 340|回复: 0

[经验分享] Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-19 09:02:08 | 显示全部楼层 |阅读模式
之前我们讨论过《Linux Oracle 11g dataguard物理standby 配置过程》,
但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种模式,
保护最大化:这种模式的配置可以保证主库和备库的同步,任何情况下主库的损毁都不会导致已提交数据的丢失。如果主库和备库之间的网络出现问题,或者备库本身出现问题,都会导致主库停止数据处理。
可用最大化:这种模式和上面一种类似,也是会保证主库和备库的同步,区别在于,当网络或备库不可用时,主库仍然可以继续处理。
性能最大化:主库和备库是异步的。这种模式可能在主库出现损毁时,丢失一部分数据。但是这种模式对主库负荷最小,因此具有最好的性能。

1.最大保护模式:(如果采用这种模式,最好能建立多个standby database,以确保日志能够至少归档到一台备用机上,减少down机的机会。)
1).这种模式提供了最高级别的数据保护能力
2).重做日志在至少一个物理从库[url=]数据库[/url]后,主库的事务才能够提交
3).主库找不到合适的从库写入时,主库会自动关闭,防止无保护的数据出现
4).优点:该模式可以保证从库没有数据丢失
5).缺点:主库的自动关闭会影响到主库的可用性,同时需要从库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会受到非常大的影响。

2.最大可用性模式:(如果只有一台standby,又不想有数据丢失的话,推荐采用这种模式。)
1).这种模式提供了仅次于“最大保护模式”的数据保护能力
2).重做日志在至少一个物理从库数据库后,主库的事务才能够提交
3).主库找不到合适的从库写入时,主库不会关闭,而是临时降低到“最大性能模式”模式,直到问题得到处理
4).优点:该模式可以在没有问题出现的情况下保证从库没有数据丢失,是一种折中的方法
5).缺点:在正常运行的过程中缺点是主库的性能收到诸多因素的影响

3.最大性能模式:
1).默认模式,提供主数据库的最高可用性
2).保证主库运行过程中不受从库的影响,主库事务正常提交,不因从库的任何问题影响到主库的运行
4).优点:避免了从库对主数据库的性能和可用性影响
5).缺点:如果与主库提交的事务相关的恢复数据没有发送到从库,这些事务数据将被丢失,不能保证数据无损失
可以选择适合自己合适的模式进行配置,在这里我们选择更改模式为Protection
打开主库,修改主库DataGuard保护模式
1
2
3
4
5
6
7
8
9
10
11
SQL> shutdown immediate

    SQL> startup mount

    SQL> select name,db_unique_name,protection_mode from v$database;

    NAME DB_UNIQUE_NAME PROTECTION_MODE
    ----- --------------- --------------------
    ORCL orcl            MAXIMUM PERFORMANCE

    SQL> alter database set standby database to maximize protection;



切换主库保护模式的语法:
1
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AVAILABILITY | PERFORMANCE }



打开主库到OPEN状态,监控alert日志文件,查看是否配置成功。
有实际切换中可能会遇到若干问题,如本人在切换过程中日志报以下错误,主数据不能OPEN
错误日志:
LGWR: Minimum of 1 synchronous standby database required
Errors in file /oracle/app/oracle/diag/rdbms/nod1/test/trace/test_lgwr_7255.trc:
ORA-16072: a minimum of one standby database destination is required
Errors in file /oracle/app/oracle/diag/rdbms/nod1/test/trace/test_lgwr_7255.trc:
ORA-16072: a minimum of one standby database destination is required
解决方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL> conn /as sysdba
SQL>startup mount;
SQL> alter database set standby database to maximize protection;
SQL>alter system set log_archive_dest_2='SERVICE=nod2 LGWR SYNC AFFIRM NET_TIMEOUT=120 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=nod2'  ;

SQL> alter database open;

Database altered.

SQL> select name,db_unique_name,protection_mode from v$database;

NAME      DB_UNIQUE_NAME                 PROTECTION_MODE
--------- ------------------------------ --------------------
TEST    nod1                           MAXIMUM PROTECTION



在实际运行中又有一个问题,就是发现日志恢复不能实时到备库,能不能在日志恢复的同时可以用只读的方式打开数据库,这就不得不提到ORACLE 11G中的一个特性:Oracle 11g物理Active Data Guard实时查询(Real-time query)功能,用以下方法实现
此过程只须在备库实现
1)查看备库当前状态

1
2
3
4
5
6
7
SQL> select open_mode from v$database;

OPEN_MODE
--------------------
MOUNTED

此时备库处于MOUNT状态。



2)取消备库的自动恢复
1
2
3
SQL> alter database recover managed standby database cancel;

Database altered.



3)OPEN备库调整为“READ ONLY”状态
1
2
3
4
5
6
7
8
9
SQL> alter database open;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY



4)在“READ ONLY”状态下进一步启动备库的恢复
1
2
3
4
5
6
7
8
9
10
11
sys@ora11gdg@> alter database recover managed standby database using current logfile disconnect;

Database altered.

选项“USING CURRENT LOGFILE”的含义是当备库收到日志后,尽快完成恢复。

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY WITH APPLY



状态“READ ONLY WITH APPLY”即表示此时备库处于Read Only状态的同时可以接受主库传过来的日志进行恢复,以便达到备库可以即时查看到主库变化的目的。
  测试过程过程比较简单,我们在主库导入一个数据表,然后会看到在备库几乎没有什么延迟就过去了,
1
[iyunv@nod1 ~]# imp system/wolf@nod1 fromuser=kiss touser=kiss file=kiss.DMP ignore=y log=kiss.log



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-78680-1-1.html 上篇帖子: oracle物化视图的两个典型应用场景 下篇帖子: Linux Oracle 11g dataguard物理standby 配置过程 Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表