当前位置: 首页 > news >正文

Data Guard故障自动切换的想法(r11笔记第39天)

    大概在2年前,我写过一篇文章,当时也算是随感。

    但是可能很多人都会碰到了这样一个问题,那就是在公司内造轮子的情况非常普遍,而且很多时候一个脚本,工具,系统只是适用于具体的业务,脱离了系统平台,部门之外,公司之外都无法适用。很多应用要联系具体场景,这个无可厚非,就如同一个表test,含有3个字段,里面可以存放100条应用数据,也可以存放200条,这个是根据具体业务具体对待的。很多时候都是由个别几个人牵头做成的,而有一个似乎不变的现象就是一旦负责人离开,要么就是重复造轮子,要么就是被废弃。

   从公司的层面来说,其实一定程度上有耦合是件好事,因为很多东西不希望太通用,太容易被复制。这个原因可能会略微复杂一些,但是也没有错。

  延伸到数据库方面,我想对于很多DBA来算,能够做到故障的自动切换是一件蛮不错的事情。这个从能力,技术上都是一种非常大的提升和考验。

  我也有很多不错的想法,但是如果有时候没有切磋交流,就会发现其实有些想法不是太迫切,有些细节是需要引起注意的。

   打个比方,一个普通的Data Guard故障切换场景可能看起来简单,其实涉及很多面,而这些方方面面如果都能够逐个攻破,那就回归了问题的本质,有个说法挺好,提高DBA的幸福度。

    有些场景是一主一备的,可能实现的时候就是只考虑了这样的情况。

   0?wx_fmt=png

    有些场景可能会有代理服务器,中控服务器等的角色,这个对原来已有的实现方式就有很大的改动。

0?wx_fmt=png

    有些场景可能是一主多备的架构,那么故障切换的时候就需要做很多的事情。如果再加上代理服务器,中控服务器,这个场景就更加复杂。

0?wx_fmt=png

    目前设想的Data Guard故障切换的具体实现方式,主要是解决计划外的故障场景,比如服务器宕机,切换业务到备库,对调IP地址,重新配置主备关系,甚至实现自动化搭建备库的场景。这样一来我们就可以极大的从中受益。

     这件事情,还是要做的,而且我觉得也是目前对我来说感觉相对自由,有一些自己的空间的一个原因。

     要实现这个需求,说实话,有些地方简单,需要地方真心难。但是凡事都有循序渐进的过程,我简单梳理了一下,和团队也做了简单的交流,大体是这样的一个演进方式。

1.    梳理目前的资产信息,系统资产列表目前只有物理信息,但是对于主备关系的标识,机房位置,备库的切换优先级目前需要进一步补充。

大体上上面的一个步骤,尤其是第7步,是本次故障自愈的一个亮点,那就是自动化搭建Data Guard,思路就是使用一台备用服务器,根据需求搭建Data Guard,比如我有10套环境,我们添加一个服务器作为备机,在故障发生的时候,能够根据故障情况搭建Data Guard.

   我现在也在规划中,最近会打算在github上来一起做点东西出来。

相关文章:

  • Data Guard实现故障自动切换(二)(r11笔记第40天)
  • 《横道世之介》观后感(r11笔记第44天)
  • 炉石传说罕见数据库事故!丢失30%数据,疑似误操作?
  • 假期前的数据库检查之主动优化(r11笔记第50天)
  • 回家(r11笔记第51天)
  • 新春快乐(r11笔记第57天)
  • 一个闪回区报警的数据恢复(r11笔记第62天)
  • 一个细小的空间问题触发的报警(r11笔记第68天)
  • Oracle Data Guard延迟的原因(r11笔记第69天)
  • 那些年我们追过的拳皇 (r11笔记第76天)
  • 今天比较忙比较累
  • 换工作这件事(一)(r11笔记第81天)
  • 浅谈MySQL Group Replication(r11笔记第80天)
  • 分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)
  • 当拳皇遇上数据库,会擦出什么样的火花?
  • 5、React组件事件详解
  • IndexedDB
  • Laravel 中的一个后期静态绑定
  • QQ浏览器x5内核的兼容性问题
  • spring-boot List转Page
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 产品三维模型在线预览
  • 读懂package.json -- 依赖管理
  • 缓存与缓冲
  • 基于web的全景—— Pannellum小试
  • 聊聊directory traversal attack
  • 前端性能优化--懒加载和预加载
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 删除表内多余的重复数据
  • 深入浅出webpack学习(1)--核心概念
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我的业余项目总结
  • 线性表及其算法(java实现)
  • 一些关于Rust在2019年的思考
  • 原生 js 实现移动端 Touch 滑动反弹
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • $(selector).each()和$.each()的区别
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (十三)Flask之特殊装饰器详解
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)ABI是什么
  • (转)h264中avc和flv数据的解析
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .describe() python_Python-Win32com-Excel
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • .考试倒计时43天!来提分啦!
  • /etc/sudoer文件配置简析