验证实时主备中数据守护的作用
概述:
验证实时主备中数据守护的作用
对比oracle dg数据保护模式。
首先实时主备数据库状态和归档状态都是由数据守护修改的。
备库关闭对主库的影响?
守护进程挂了会产生什么问题?
1.守护进程完好,备库关闭
两种情况:
1.备库数据库异常关闭
守护进程会尝试启动备库:
1.检测到instance状态error
2.守护进程切换状态从open到startup
3.开始恢复实例(重启,实例恢复)recover to ok
4.守护进程切换状态到unify ep统一节点状态。
5.守护进程再切换到startup状态,最后open。
2.通过monitor关闭
守护进程不会尝试启动备库
2.守护进程修改归档状态
1.关闭备库守护进程,关备库(直接kill进程)
备库归档会被改成invalid,主库正常:
1.主库守护从open到mon confirm状态,实例进入挂起状态
2.监视器确认备库异常后,守护进程进入failover状态
3.守护进程从failover到open,实例从挂起到open。
主库可以正常操作:
备库归档为invaild:
2.关主库守护进程,关备库(kill主库守护进程,通过monitor关闭备库)
备库归档不会被改成invalid,主库commit操作会挂起数据库:
启动备库守护进程:
1.守护进程从startup到unify ep状态,实例启动到mount
2.守护进程从unify ep到startup ,实例启动到open
3.守护进程从startup到open。
通知主库守护进程进行数据恢复
1.主库守护进程从open到recovery(备库关闭期间的归档再次发送到备库)
2.主库守护进程从recovery到open
异常情况:模拟守护异常
手动杀掉主库守护进程,monitor下关闭备库实例:
monitor下:kill instance dm1.dmstd
1.备库实例被关闭,状态为error
2.备库守护进程进入shutdown状态。
此时主库进入suspend状态,数据库不可用了。
suspend状态下可以进行查询和修改数据,但是数据库恢复正常后,suspend期间所有操作都会回滚。
总结:
数据守护作用:
1.监控并自动拉起数据库(守护挂了monitor就查不到数据库最新信息了,kill数据库进程,数据库会被自动启动)
2.修改归档状态(备库关闭后,通过monitor关闭的,守护不会自动启动数据库)主库的守护会把到备库的归档状态改成失效,从而不影响主库正常运行。如果主库的守护挂了,然后备库挂了,则触发写redo日志的操作会导致数据库挂起。重启守护后,数据库会自动恢复正常,并回滚suspend期间操作。
主库守护 |
备库守护 |
主库实例 |
备库实例 |
归档状态 |
正常 |
正常 |
open |
自动重启 |
valid |
正常 |
shutdown |
open |
关闭 |
invalid |
kill |
shutdown |
suspend |
关闭 |
valid |
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341