前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >备库关联查询的设计思考(r7笔记第41天)

备库关联查询的设计思考(r7笔记第41天)

作者头像
jeanron100
发布2018-03-16 17:26:21
6500
发布2018-03-16 17:26:21
举报

现在有一个需求,目前在开发的同学需要做一些查询,但是涉及的两个表在两个不同的数据库里面。就是下面的形式。从他们的反馈来看还需要做表关联,是统计业务相关,对于数据的实时性要求不是很高。

所以这个需求看起来是需要直接用db link来做关联了,但是两个表都还比较大,一个local,一个remote还是有不少的潜在风险,表的数据量在百万,千万级,所以对于这种关联的统计查询,我是不主张直接在主库用的。所以首先向到了备库。 因为是11g的adg,所以这个问题其实也算是一个不错的思路。 于是实现方式就类似下面的形式。

在db1的备库中创建一个同义词指向db2,使用db link的形式。这种方式看起来还行,但是一个潜在的风险就是这种关联查询在db2中会很可能有较高的负载。 所以这部分压力可以分担开来直接指向db2的备库,类似下面的形式。

基本的读取压力解决了,来看看安全问题。 现在的问题是,目前的这种需求我的主张是不让开发的同学在主库上运行这种查询,从而避免更多的误操作和潜在风险。 那么怎么来实现呢。可以看看下面这个完整的图。

在 这种实现方式中,基本都是备库之间的事儿了,app直接指向两个备库,以db1为基准节点做表关联查询,防火墙在db1,db2之间都是彼此不通的,只在 备库之间开,那么在db1的主库创建了db link之后,因为备库的网路互通,主库网络不互通,所以db link其实只在备库生效。然后在主库创建同义词的ddl会同步到备库去,这样就间接同步了这种结构。 所以备库之间做关联查询大体来看是没有问题的,那么开发的同事需要做什么查询对于DBA来说还是需要做一些改进和审核的,我们也可以提供不少的改进经验进来。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档