• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 21
    • 下载费用:30 金币  

    重庆时时彩带玩玩家: 数据库连接建立方法及装置.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201510651597.0

    申请日:

    2015.10.10

    公开号:

    CN106570021A

    公开日:

    2017.04.19

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06F 17/30申请日:20151010|||公开
    IPC分类号: G06F17/30 主分类号: G06F17/30
    申请人: 阿里巴巴集团控股有限公司
    发明人: 吴旭冬; 王骞; 高玉嵩
    地址: 英属开曼群岛大开曼资本大厦一座四层847号邮箱
    优先权:
    专利代理机构: 北京国昊天诚知识产权代理有限公司 11315 代理人: 许志勇
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201510651597.0

    授权公告号:

    |||

    法律状态公告日:

    2017.05.17|||2017.04.19

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本申请公开了一种数据库连接建立方法及装置,所述方法包括:代理服务器与数据库管理系统的主库连接,使得用户通过代理服务器与所述主库连接;其中,所述数据库管理系统至少包括两个,互为彼此的主库和备库;在所述主库满足重启条件的情况下,等待所述用户的请求处于空闲状态时,将与所述主库的连接切换至与所述主库的备库的连接。本申请实施例有效降低了由于用户连接闪断而对用户造成的影响。

    权利要求书

    1.一种数据库连接建立方法,其特征在于,包括:
    代理服务器与数据库管理系统的主库连接,使得用户通过代理服务器与
    所述主库连接;其中,所述数据库管理系统至少包括两个,互为彼此的主库
    和备库;
    在所述主库满足重启条件的情况下,等待所述用户的请求处于空闲状态
    时,将与所述主库的连接切换至与所述主库的备库的连接。
    2.如权利要求1所述的方法,其特征在于,所述等待所述用户的请求
    处于空闲状态时,将与所述主库的连接切换至与所述主库的备库的连接包
    括:
    在所述用户的请求处于空闲状态,获取所述主库与所述主库的备库的同
    步延迟情况;
    在所述主库以及所述备库的同步延迟小于等于第一阈值时,将与所述主
    库的连接切换至与所述备库的连接。
    3.如权利要求1所述的方法,其特征在于,在所述用户的请求为无法
    处理的请求时,所述方法还包括:
    在所述用户的请求为无法处理的请求时,断开与所述主库的连接;
    所述等待所述用户的请求处于空闲状态包括:
    在所述用户的请求处于未知事务状态时,从所述主库请求获取所述用户
    的请求的事务状态;
    在所述用户的请求处于事务状态或者所述用户的请求处于等待结果集
    状态时,等待所述事务退出或者所述用户的请求结束时,确定所述用户的请
    求处于空闲状态。
    4.如权利要求1~3任一项所述的方法,其特征在于,所述将与所述主
    库的连接切换至与所述主库的备库的连接之后,所述方法还包括:
    接收到用户的请求时,将所述用户的请求挂起;
    等待所述主库与所述备库同步一致之后,或者所述用户的请求挂起第一
    预设时间之后,将所述用户的请求发送至所述备库,请求所述备库执行。
    5.如权利要求1所述的方法,其特征在于,所述在所述主库满足重启
    条件的情况下,等待所述用户的请求处于空闲状态时,将与所述主库的连接
    切换至与所述主库的备库的连接包括:
    在所述主库满足重启条件,以及接收到健康检测程序检测所述主库与所
    述备库的同步延迟小于第一阈值时发送的连接转换请求的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。
    6.如权利要求5所述的方法,其特征在于,所述将与所述主库的连接
    切换至与所述主库的备库的连接之后,所述方法还包括:
    接收到所述用户的请求时,将所述用户的请求挂起;
    当接收到所述健康检测程序在所述主库与所述备库同步一致之后发送
    的连接释放请求,或者所述用户的请求挂起第一预设时间之后,将所述用户
    的请求发送至所述备库,请求所述备库执行。
    7.如权利要求1所述的方法,其特征在于,在所述主库满足重启条件
    的情况下,等待所述用户的请求处于空闲状态时,将与所述主库的连接切换
    至与所述主库的备库的连接包括:
    在所述主库满足重启条件的情况下,在预设时间范围内,等待所述用户
    的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接;
    若等待时间超出所述预设时间范围时,所述方法还包括:
    断开与所述主库的连接。
    8.一种数据库连接建立方法,其特征在于,包括:
    在用户通过代理服务器与主库连接之后,检测所述主库与所述主库的备
    库的同步延迟情况;其中,所述数据库管理系统至少包括两个,互为彼此的
    主库和备库;
    在所述主库与所述备库同步延迟小于第一阈值时,向所述代理服务器发
    送连接切换请求,以便于所述代理服务器在所述主库满足重启条件时,判断
    所述用户的请求是否处于空闲状态;等待所述用户的请求处于空闲状态时,
    将与所述主库的连接切换至与所述备库的连接。
    9.如权利要求8所述的方法,其特征在于,在所述主库与所述备库同
    步延迟小于第一阈值时,向所述代理服务器发送连接切换请求之后,所述方
    法还包括:
    将所述主库中的全部连接切断;
    设置所述主库为只读模式;
    在所述主库与所述备库同步一致之后,设置所述备库为读写模式,并向
    所述代理服务器发送连接释放请求,以便于所述代理服务器在接收到所述连
    接释放请求之后,将挂起的所述用户的请求发送至所述备库,请求所述备库
    执行。
    10.一种数据库连接建立装置,其特征在于,包括:
    连接建立???,用于建立与数据库管理系统主库的连接,使得用户通过
    代理服务器与主库连接;其中,所述数据库管理系统至少包括主库和备库,
    所述主库和所述备库互为彼此的备库;
    连接切换???,用于在所述主库满足重启条件的情况下,等待所述用户
    的请求处于空闲状态时,将与所述主库的连接切换至与所述主库的备库的连
    接。
    11.如权利要求10所述的装置,其特征在于,所述连接切换??榘ǎ?br />同步获取???,用于在所述用户的请求处于空闲状态,获取所述主库与
    所述主库的备库的同步延迟情况;
    连接切换子???,用于在所述主库以及所述备库的同步延迟小于等于第
    一阈值时,将与所述主库的连接切换至与所述备库的连接。
    12.如权利要求10所述的装置,其特征在于,还包括:
    第一闪断???,用于在所述用户的请求为无法处理的请求时,断开与所
    述主库的连接;
    状态确定???,用于在所述用户的请求处于未知事务状态时,从所述主
    库请求获取所述用户的请求的事务状态;在所述用户的请求处于事务状态或
    者所述用户的请求处于等待结果集状态时,等待所述事务退出或者所述用户
    的请求结束时,确定所述用户的请求处于空闲状态。
    13.如权利要求10~12任一项所述的装置,其特征在于,还包括:
    第一请求挂起???,接收到用户的请求时,将所述用户的请求挂起;
    第一请求处理???,用于等待所述主库与所述备库同步一致之后,或者
    所述用户的请求挂起第一预设时间之后,将所述用户的请求发送至所述备
    库,请求所述备库执行。
    14.如权利要求10所述的装置,其特征在于,所述连接切换??榫咛?br />用于:
    在所述主库满足重启条件,以及接收到健康检测程序检测所述主库与所
    述备库的同步延迟小于第一阈值时发送的连接转换请求的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。
    15.如权利要求14所述的装置,其特征在于,还包括:
    第二请求挂起???,用于接收到所述用户的请求时,将所述用户的请求
    挂起;
    第二请求处理???,用于当接收到所述健康检测程序在所述主库与所述
    备库同步一致之后发送的连接释放请求,或者所述用户的请求挂起第一预设
    时间之后,将所述用户的请求发送至所述备库,请求所述备库执行。
    16.如权利要求10所述的装置,其特征在于,所述连接切换??榫咛?br />用于:在所述主库满足重启条件的情况下,在预设时间范围内,等待所述用
    户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接;
    所述装置还包括:
    第二闪断???,用于在等待时间超出所述预设时间范围时,断开与所述
    主库的连接。
    17.一种数据库连接建立装置,其特征在于,包括:
    状态检测???,用于在用户通过代理服务器与主库连接之后,检测数据
    库管理系统的主库与备库的同步延迟情况;其中,所述数据库管理系统至少
    包括两个,互为彼此的主库和备库;
    切换触发???,用于在所述主库与所述备库同步延迟小于第一阈值时,
    向所述代理服务器发送连接切换请求,以便于所述代理服务器在所述主库满
    足重启条件时,判断所述用户的请求是否处于空闲状态;等待所述用户的请
    求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接。

    说明书

    数据库连接建立方法及装置

    技术领域

    本申请属于数据处理技术领域,具体地说,涉及一种数据库连接建立方
    法及装置。

    背景技术

    数据库管理系统主要用于建立、使用和维护数据库,对数据库进行
    统一的管理和控制,用户通过数据库管理系统实现对数据库的访问。

    用户通过数据库管理系统对数据库的访问,需要连接到数据库管理
    系统中,数据库连接也即是指与数据库管理系统的连接。

    但是,在用户连接到数据库管理系统之后,可能由于机器故障、数
    据库管理系统存在BUG,或者数据库升降级等原因,数据库管理系统可
    能需要重启,而数据库管理系统重启,用户与数据库管理系统的连接就
    会断开,存在用户连接闪断的问题。而用户连接闪断会导致一个不可用
    的时间点,导致用户请求无法进行处理,使得用户体验较差。

    发明内容

    有鉴于此,本申请所要解决的技术问题是提供了一种数据库连接建立方
    法及系统,用于解决由于用户连接闪断而影响用户的问题。

    为了解决上述技术问题,本申请公开了一种数据库连接建立方法,包括:

    代理服务器与数据库管理系统的主库连接,使得用户通过代理服务器与
    所述主库连接;其中,所述数据库管理系统至少包括两个,互为彼此的主库
    和备库;

    在所述主库满足重启条件的情况下,等待所述用户的请求处于空闲状态
    时,将与所述主库的连接切换至与所述主库的备库的连接。

    优选地,所述等待所述用户的请求处于空闲状态时,将与所述主库的连
    接切换至与所述主库的备库的连接包括:

    在所述用户的请求处于空闲状态,获取所述主库与所述主库的备库的同
    步延迟情况;

    在所述主库以及所述备库的同步延迟小于等于第一阈值时,将与所述主
    库的连接切换至与所述备库的连接。

    优选地,在所述用户的请求为无法处理的请求时,所述方法还包括:

    在所述用户的请求为无法处理的请求时,断开与所述主库的连接;

    所述等待所述用户的请求处于空闲状态包括:

    在所述用户的请求处于未知事务状态时,从所述主库请求获取所述用户
    的请求的事务状态;

    在所述用户的请求处于事务状态或者所述用户的请求处于等待结果集
    状态时,等待所述事务退出或者所述用户的请求结束时,确定所述用户的请
    求处于空闲状态。

    优选地,所述将与所述主库的连接切换至与所述主库的备库的连接之
    后,所述方法还包括:

    接收到用户的请求时,将所述用户的请求挂起;

    等待所述主库与所述备库同步一致之后,或者所述用户的请求挂起第一
    预设时间之后,将所述用户的请求发送至所述备库,请求所述备库执行。

    优选地,所述在所述主库满足重启条件的情况下,等待所述用户的请求
    处于空闲状态时,将与所述主库的连接切换至与所述主库的备库的连接包
    括:

    在所述主库满足重启条件,以及接收到健康检测程序检测所述主库与所
    述备库的同步延迟小于第一阈值时发送的连接转换请求的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。

    优选地,所述将与所述主库的连接切换至与所述主库的备库的连接之
    后,所述方法还包括:

    接收到所述用户的请求时,将所述用户的请求挂起;

    当接收到所述健康检测程序在所述主库与所述备库同步一致之后发送
    的连接释放请求,或者所述用户的请求挂起第一预设时间之后,将所述用户
    的请求发送至所述备库,请求所述备库执行。

    优选地,在所述主库满足重启条件的情况下,等待所述用户的请求处于
    空闲状态时,将与所述主库的连接切换至与所述主库的备库的连接包括:

    在所述主库满足重启条件的情况下,在预设时间范围内,等待所述用户
    的请求处于空闲状态时,将与所述主库的连接切换至与备库的连接;

    若等待时间超出所述预设时间范围时,所述方法还包括:

    断开与所述主库的连接。

    一种数据库连接建立方法,包括:

    在用户通过代理服务器与主库连接之后,检测所述主库与所述主库的备
    库的同步延迟情况;其中,所述数据库管理系统至少包括两个,互为彼此的
    主库和备库;

    在所述主库与所述备库同步延迟小于第一阈值时,向所述代理服务器发
    送连接切换请求,以便于所述代理服务器在所述主库满足重启条件时,判断
    所述用户的请求是否处于空闲状态;等待所述用户的请求处于空闲状态时,
    将与所述主库的连接切换至与所述备库的连接。

    优选地,在所述主库与所述备库同步延迟小于第一阈值时,向所述代理
    服务器发送连接切换请求之后,所述方法还包括:

    将所述主库中的全部连接切断;

    设置所述主库为只读模式;

    在所述主库与所述备库同步一致之后,设置所述备库为读写模式,并向
    所述代理服务器发送连接释放请求,以便于所述代理服务器在接收到所述连
    接释放请求之后,将挂起的所述用户的请求发送至所述备库,请求所述备库
    执行。

    一种数据库连接建立装置,包括:

    连接建立???,用于建立与数据库管理系统主库的连接,使得用户通过
    代理服务器与主库连接;其中,所述数据库管理系统至少包括主库和备库,
    所述主库和所述备库互为彼此的备库;

    连接切换???,用于在所述主库满足重启条件的情况下,等待所述用户
    的请求处于空闲状态时,将与所述主库的连接切换至与所述主库的备库的连
    接。

    优选地,所述连接切换??榘ǎ?br />

    同步获取???,用于在所述用户的请求处于空闲状态,获取所述主库与
    所述主库的备库的同步延迟情况;

    连接切换子???,用于在所述主库以及所述备库的同步延迟小于等于第
    一阈值时,将与所述主库的连接切换至与所述备库的连接。

    优选地,还包括:

    第一闪断???,用于在所述用户的请求为无法处理的请求时,断开与所
    述主库的连接;

    状态确定???,用于在所述用户的请求处于未知事务状态时,从所述主
    库请求获取所述用户的请求的事务状态;在所述用户的请求处于事务状态或
    者所述用户的请求处于等待结果集状态时,等待所述事务退出或者所述用户
    的请求结束时,确定所述用户的请求处于空闲状态。

    优选地,还包括:

    第一请求挂起???,接收到用户的请求时,将所述用户的请求挂起;

    第一请求处理???,用于等待所述主库与所述备库同步一致之后,或者
    所述用户的请求挂起第一预设时间之后,将所述用户的请求发送至所述备
    库,请求所述备库执行。

    优选地,所述连接切换??榫咛逵糜冢?br />

    在所述主库满足重启条件,以及接收到健康检测程序检测所述主库与所
    述备库的同步延迟小于第一阈值时发送的连接转换请求的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。

    优选地,还包括:

    第二请求挂起???,用于接收到所述用户的请求时,将所述用户的请求
    挂起;

    第二请求处理???,用于当接收到所述健康检测程序在所述主库与所述
    备库同步一致之后发送的连接释放请求,或者所述用户的请求挂起第一预设
    时间之后,将所述用户的请求发送至所述备库,请求所述备库执行。

    优选地,所述连接切换??榫咛逵糜冢涸谒鲋骺饴阒仄籼跫那榭?br />下,在预设时间范围内,等待所述用户的请求处于空闲状态时,将与所述主
    库的连接切换至与所述备库的连接;

    所述装置还包括:

    第二闪断???,用于在等待时间超出所述预设时间范围时,断开与所述
    主库的连接。

    一种数据库连接建立装置,包括:

    状态检测???,用于在用户通过代理服务器与主库连接之后,检测数据
    库管理系统的主库与备库的同步延迟情况;其中,所述数据库管理系统至少
    包括两个,互为彼此的主库和备库;

    切换触发???,用于在所述主库与所述备库同步延迟小于第一阈值时,
    向所述代理服务器发送连接切换请求,以便于所述代理服务器在所述主库满
    足重启条件时,判断所述用户的请求是否处于空闲状态;等待所述用户的请
    求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接。

    与现有技术相比,本申请可以获得包括以下技术效果:

    代理服务器与数据库管理系统的主库建立连接之后,使得用户通过代理
    服务器与主库连接,在主库满足重启条件时,代理服务器在等待用户的请求
    处于空闲状态时,可以将与主库的连接切换至与备库的连接,使得用户通过
    代理服务器实现与备库的连接,主库即便需要重启,由于用户通过代理服务
    器已与备库连接,可以正常处理用户请求,因此不会对用户造成很大的影响,
    避免了用户连接闪断导致的问题。

    当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技
    术效果。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部
    分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的
    不当限定。在附图中:

    图1是本申请实施例的数据库连接建立系统一种结构示意图;

    图2是本申请实施例的数据库连接建立方法一个实施例的流程图;

    图3是本申请实施例的数据库连接建立系统另一种结构示意图;

    图4是本申请实施例的数据库连接建立方法又一个实施例的流程图;

    图5是本申请实施例的数据库连接建立方法又一个实施例的信令图;

    图6是本申请实施例的数据库连接建立装置一个实施例的结构示意图;

    图7是本申请实施例的数据库连接建立装置又一个实施例的结构示意
    图;

    图8是本申请实施例的数据库连接建立装置又一个实施例的结构示意
    图;

    图9是本申请实施例的数据库连接建立装置又一个实施例的结构示意
    图。

    具体实施方式

    以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请
    如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解
    并据以实施。

    本申请实施例提供的技术方案用于解决数据库管理系统重启,导致用户
    与数据库管理系统连接闪断的问题。

    数据库管理系统主要用于建立、使用和维护数据库,对数据库进行统
    一的管理和控制,用户通过数据库管理系统实现对数据库的访问。

    在一个实际应用中,本申请实施例涉及的数据库管理系统可以是指
    关系数据库管理系统,例如MySQL,MySQL将数据保存在不同的表中,
    而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活
    性。MySQL所使用的SQL(Structured Query Language,结构化查询语
    言)语言是用于访问数据库的最常用标准化语言。在MySQL中,用户
    的请求均是基于SQL语言实现的,用户的请求可以包括查询请求、删
    除以及增加等更新请求等。

    用户与数据库管理系统的连接实际是指用户端,也即客户端与数据库管
    理系统的连接。

    正如背景技术中所述,用户连接闪断,会造成一个不可用的时间点,使
    得用户的请求无法正常处理,从而影响用户体验,例如对于游戏、视频等多
    媒体数据,用户连接闪断,将导致游戏或视频等中断,使得用户体验不好。
    因此用户连接闪断问题,成为本领域技术人员迫切需要解决的技术问题。

    发明人经过一系列的研究发现,用户连接闪断,通常是由于数据库管理
    系统的重启导致的,而数据库管理系统存在BUG、机器硬件故障或者升降
    级等维护性操作,均可能需要重启数据库管理系统,因此,为了解决用户连
    接闪断的问题,提出了本申请的技术方案,在本申请实施例中,数据库管理
    系统至少包括两个,互为彼此的主库和备库,以便于在任一个库出现故障时,
    由另一个库替代。用户通过代理服务器与数据库管理系统连接,也即用户先
    与代理服务器连接,代理服务器再将用户的认证信息,例如用户名以及密码
    等信息发送至数据库管理系统,建立与数据库管理系统的连接,从而实现用
    户与数据库管理系统的连接,用户的请求也经由代理服务器转发至数据库管
    理系统。

    本申请实施例应用的数据库连接建立系统的一种结构示意图可以如图1
    中所示,包括代理服务器101、用户102、主库103以及备库104。代理服
    务器建立与数据库管理系统主库的连接,使得用户通过代理服务器与主库连
    接之后,在所述主库满足重启条件时,判断所述用户的请求是否处于空闲状
    态;等待所述用户的请求处于空闲状态时,将与所述主库的连接切换至与所
    述主库的备库的连接。在主库需要重启时,由代理服务器在用户的请求处于
    空闲状态下时,将与所述主库的连接切换至与所述备库的连接,实现用户与
    备库的连接,从而即便主库重启,由于用户已与备库建立连接,不会造成对
    用户的影响,且在用户的请求处于空闲状态时进行切换,也不会影响欧用户,
    从而解决了用户连接闪断导致的问题。

    下面将结合附图,对本申请技术方案进行详细描述。

    图2为本申请实施例提供的一种数据库连接建立方法一个实施例的流
    出图,该方法可以包括以下几个步骤:

    201:代理服务器与数据库管理系统的主库连接,使得用户通过所述代
    理服务器与主库连接。

    其中,所述数据库管理系统至少包括两个,互为彼此的主库和备库。

    代理服务器与任一个数据库管理系统连接,该任一个数据库管理系统即
    作为当前的主库,另一个数据库管理系统作为当前主库的备库。

    为了方便对连接进行管理和控制,本实施例通过代理服务器(Proxy)
    实现数据库连接的建立,用户将用户认证信息发送至代理服务器,代理
    服务器再将用户认证信息转发至数据库管理系统,以建立与数据库管理
    系统的连接。

    代理服务器与主库建立连接之后,即实现了用户与主库的连接。

    202:在所述主库满足重启条件的情况下,等待所述用户的请求处于空
    闲状态时,将与所述主库的连接切换至与备库的连接。

    备库也即是指当前所述主库的备库。

    本实施例中,重启条件可以包括主库存在BUG、主库的机器硬件故障
    或者主库需要进行升降级等维护性操作。

    主库满足重启条件之后,即会进行重启,为了避免用户连接闪断导致的
    问题。本实施例中首先判断用户的请求是否处于空闲状态。

    空闲状态是指主库在当前时间段不存在正在处理的所述用户的请求或
    者所述用户的请求不处于事务内。

    用户的请求在非空闲状态下时,主要包括处于事务内状态或者等待结果
    集状态。

    事务是指访问并可能更新数据库中各种数据项的一个程序执行单元,包
    括一个连续的一组数据库操作,事务处理在各种数据库管理系统中都有着广
    泛的应用,很多同步数据库操作大都需要用到事务处理。比如说,在人员管
    理系统中,删除一个人员,需要删除人员的基本资料,也要删除和该人员相
    关的信息,如信箱,文章等等,这些数据库操作语句就构成一个事务。

    在MySQL中,事务可以是一条SQL语句,一组SQL语句或整个程序。
    用户的请求的处于事务内状态,表明处于非空闲状态。

    结果集是指将用户的请求发送至数据库管理系统之后,数据库管理系统
    执行所述用户的请求之后反馈的信息。例如,在MySQL中,用户的请求为
    数据查询请求时,MySQL会返回一个查询结果的结果集给用户。

    如果用户的请求处于等待结果集状态,即表明用户的请求正在处理,处
    于非空闲状态。

    其中,在主库满足重启条件的情况下,可以判断所述用户的请求是否处
    于空闲状态之后,如果用户的请求处于空闲状态,则可以执行将与所述主库
    的连接切换至与所述备库的连接的操作

    如果所述用户的请求处于非空闲状态下,则可以等待用户的请求处于空
    闲状态下时,再执行将与所述主库的连接切换至与所述备库的连接的操作。

    而等待所述用户的请求处于空闲状态可以包括以下几种可能的情况:

    在所述用户的请求处于未知事务状态时,从所述主库请求获取所述用户
    的请求的事务状态;

    在所述用户的请求处于事务内状态、或者所述用户的请求处于等待结果
    集状态时,等待所述事务退出或者所述用户的请求处理结束时,确定所述用
    户的请求处于空闲状态。也即在事务退出导致用户的请求不处于事务内或者
    获得结果集导致用户的请求处理结束时,则可以确定用户的请求处于空闲状
    态,

    代理服务器如果无法获知当前用户的请求是否处于事务内,也即未知事
    务状态时,可以请求获取所述用户的请求的事务状态,可以通过发送一个
    ping(Packet Internet Groper,因特网包探测器)报文到主库以获得所述用户
    的请求的事务状态,确定该用户的请求是否处于事务内。如果用户的请求处
    于事务内状态,则可以等待所述事务退出,也即等待所述用户的请求处于空
    闲状态;当所述事务退出,也即用户的请求不处于事务内时,用户的请求即
    处于空闲状态。

    其中,若用户请求为代理服务器无法处理的请求时,例如在MySQL中,
    代理服务器无法处理不支持的SQL语句,例如prepare command,use level env
    等,则可以直接断开与所述主库的连接,即用户连接闪断。

    另外,等待所述用户的请求处于空闲状态,还可以进行时间限制,如果
    等待时间较长,可能会存在故障情况,或者主库准备重启,已经没有充足的
    时间将连接切换至备库。因此,本实施例中,等待所述用户的请求处于空闲
    状态时,若等待时间处于预设时间范围内,在所述用户的请求处于空闲状态
    时,将与所述主库的连接切换至与所述备库的连接;若等待时间超出所述预
    设时间范围,断开与所述主库的连接。

    通过本实施例中,在用户连接的主库满足重启条件时,若用户的请求处
    于空闲状态,或者用户的请求处于非空闲状态时,可以等待用户的请求处于
    空闲状态时,即可以将与所述主库的连接切换至与所述备库的连接,实现用
    户与备库的连接。因此即便主库重启,也不会对用户造成影响,避免了用户
    连接闪断导致的问题。

    其中,将与所述主库的连接切换至与所述备库的连接,可以是通过将连
    接地址从主库的地址修改为备库的地址实现。当然,在需要进行用户认证时,
    可以将用户认证信息发送至备库,备库认证通过之后,再建立与备库的连接。

    代理服务器与备库连接之后,该备库即成为当前的主库,从而可以继续
    判断当前的主库是否满足重启条件。

    由于主库与备库需要进行实时的同步,以保证一致性。而同步操作难免
    存在延迟情况,如果在存在同步延迟较严重的情况下,将与主库的连接切换
    至与备库的连接,可能会导致后续用户的请求无法正常处理,因此,作为又
    一个实施例,在等待用户的请求处于空闲状态之后,获取所述主库与所述备
    库的同步延迟情况;在所述主库以及所述备库的同步延迟小于等于第一阈值
    时,再将与所述主库的连接切换至与所述备库的连接。

    其中,该第一阈值大于等于0。

    由于将与所述主库的连接切换至与所述备库的连接之后,主库与备库可
    能还存在同步延迟,没有完全同步一致,此时若代理服务提接收到用户的请
    求时,则可以将用户的请求暂时挂起(hang住)。等待所述主库与所述备
    库同步一致之后,再将所述用户的请求发送至所述备库,请求所述备库执行。
    其中,若用户的请求挂起超过第一预设时间,则可以直接将用户的请求发送
    至所述备库,请求所述备库执行,无需继续等待,以免造成用户请求处理延
    时。

    本申请实施例中,主库与备库的延迟情况可以由代理服务器获取并判
    断,而为了提高检测性能,减少代理服务器的工作量,还可以通过健康检测
    程序,对主库与备库的延迟情况进行检测,再将检测获得的延迟情况发送至
    代理服务器。该健康检测程序可以设置在第三方设备中,可以实现与代理服
    务器、主库以及备库的通信。

    当然,健康检测程序还可以根据主库与备库的延迟情况进行判断,在延
    迟情况满足一定条件之后,再触发代理服务器进行连接切换。

    因此,作为又一个实施例,如图3所示,为本申请实施例应用的数据库
    连接建立系统的另一种结构示意图,包括代理服务器101、用户102、主库
    103、备库104以及健康检测程序105。

    下面结合图4所示,对本申请实施例的连接建立方法又一个实施例进行
    详细介绍,该方法可以包括以下几个步骤:

    401:代理服务器与数据库管理系统的主库连接,使得用户通过代理服
    务器与主库连接。

    其中,所述数据库管理系统至少包括两个,互为彼此的主库和备库。

    402:判断所述主库是否满足重启条件,如果是,执行步骤403。

    如果否,则继续进行判断。

    403:判断是否接收到健康检测程序检测所述主库与所述备库的同步延
    迟小于第一阈值时发送的连接转换请求,如果是,执行步骤404。

    其中,代理服务器可以请求健康检测程序检测所述主库与所述备库的同
    步延迟情况。

    健康检测程序也可以实时检测所述主库与所述备库的同步延迟情况,并
    在所述主库与所述备库的同步延迟小于第一阈值时发送连接转换请求。

    当然,作为又一个实施例,健康检测程序也可以将检测到的所述主库与
    所述备库的同步延迟情况发送至代理服务器,由代理服务器确定所述主库与
    所述备库的同步延迟是否小于第一阈值。

    404:判断所述用户的请求是否处于空闲状态,如果是,执行步骤406,
    如果否,执行步骤405。

    405:等待所述用户的请求处于空闲状态。

    等待所述用户的请求处于空闲状态可以包括以下几种可能的情况:

    在所述用户的请求处于未知事务状态时,从所述主库请求获取所述用户
    的请求的事务状态;

    在所述用户的请求处于事务状态、或者所述用户的请求处于等待结果集
    状态时,等待所述事务退出或者所述用户的请求结束时,确定所述用户的请
    求处于空闲状态。

    其中,若用户请求为代理服务器无法处理的请求时,例如在MySQL中,
    代理服务器无法处理不支持的SQL语句,例如prepare command,use level env
    等,则可以直接断开与所述主库的连接,即用户连接闪断。

    另外,等待所述用户的请求处于空闲状态,还可以进行时间限制,如果
    等待时间较长,可能会存在处理故障情况,或者主库已准备重启,没有充足
    的时间将连接切换至备库。因此,本实施例中,等待所述用户的请求处于空
    闲状态时,若等待时间处于预设时间范围内,在所述用户的请求处于空闲状
    态时,将与所述主库的连接切换至与所述备库的连接;若等待时间超出所述
    预设时间范围,断开与所述主库的连接。

    406:将与所述主库的连接切换至与所述备库的连接。

    407:接收到所述用户的请求时,将所述用户的请求挂起。

    将与所述主库的连接切换至与所述备库的连接之后,若接收到用户的请
    求,即可以由备库执行。但是为了避免主库与备库同步延迟造成的处理错误,
    还可以采用本实施例中的方案,暂时将用户的请求挂起。

    408:接收到所述健康检测程序在所述主库与所述备库同步一致之后发
    送的连接释放请求,或者所述用户的请求挂起第一预设时间之后,将所述用
    户的请求发送至所述备库,请求所述备库执行。

    健康检测程序可以对主库以及备库的同步延时进行实时检测,若主库与
    备库同步一致之后,可以向代理服务器发送连接释放请求,此时,代理服务
    器即可以将用户的请求发送至备库,请求备库执行。

    此外,为了不耽误用户的请求的处理,在用户的请求挂起第一预设时间
    之后,也可以直接将所述用户的请求发送至所述备库,请求所述备库执行。

    其中,健康检测程序在代理服务器将与主库的连接切换至与备库的连接
    之后,为了进一步保证与主库的连接断开,健康检测程序可以进一步的切断
    (kill)主库中的全部连接,然后设置主库为只读模式(read-only);当主
    库与备库同步一致之后,再设置备库为读写模式(read-write),然后即可以
    向代理服务器发送连接释放请求。代理服务器接收到所述连接释放请求之
    后,将挂起的所述用户的请求发送至所述备库,请求所述备库执行。

    另外,代理服务器与备库连接之后,在备库满足重启条件之后,等待用
    户的请求处于空闲状态时,即可以将与备库的连接切换至于主库的连接。

    如图5所示,为本申请实施例提供的数据库连接建立方法又一个实施例
    的信令图,该方法可以包括以下几个步骤:

    501:代理服务器建立与数据库管理系统主库的连接,使得用户通过代
    理服务器与所述主库连接。

    其中,所述数据库管理系统至少包括主库和备库,所述主库和所述备库
    互为彼此的备库。

    502:健康检测程序主库与备库的同步延迟情况。

    503:健康检测程序在所述主库与所述备库同步延迟小于第一阈值时,
    向所述代理服务器发送连接切换请求。

    504:代理服务器在所述主库满足重启条件的情况下,待所述用户的请
    求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接。

    505:代理服务器接收所述用户的请求。

    506:将所述用户的请求挂起。

    507:健康检测程序在所述主库与所述备库同步一致时,向代理服务器
    发送连接释放请求。

    其中,健康检测程序在代理服务器将与所述主库的连接切换至与所述备
    库的连接之后,为了进行保证代理服务器与主库的连接断开,还可以执行如
    下操作:

    将所述主库中的全部连接切断(kill);

    设置所述主库为只读模式(read-only);

    在所述主库与所述备库同步一致之后,设置所述备库为读写模式
    (read-write),从而再向所述代理服务器发送连接释放请求。

    507:代理服务器将所述用户的请求发送至备库,请求备库执行。

    本申请实施例中,数据库管理系统至少包括主库与备库,通过代理服务
    器,实现用户与数据库管理系统主库的连接之后,若该主库满足重启条件时,
    此时若用户的请求处于空闲状态,且主库与备库的延迟较小时,则可以将与
    主库的连接切换至与备库的连接,若用户的请求处于非空闲状态,则可以等
    待用户的请求处于空闲状态之后,再将与主库的连接切换至与备库的连接。
    主库与备库的同步延迟情况可以由代理服务器进行检测,也可以由健康检测
    程序进行检测,代理服务器接收到健康检测程序的连接切换请求时,则表明
    主库与备库的同步延迟较小,接收到健康检测程序的连接释放请求时,则表
    明主库与备库已经同步一致,此时,接收到用户的请求即可以直接请求备库
    执行。在主库与备库同步一致之前接收到的用户的请求可以暂被挂起,直至
    主库与备库同步一致。

    本申请实施例解决了用户连接闪断的问题,实现了防闪断功能,提高了
    用户体验。

    图6为本申请实施例提供的一种数据库连接建立装置一个实施例的结
    构示意图,该装置可以具体应用于如图1或图3所示的数据库连接建立系统
    的代理服务器中,该装置可以包括:

    连接建立???01,用于建立与数据库管理系统主库的连接,使得用户
    通过代理服务器与主库连接。

    其中,所述数据库管理系统至少包括主库和备库,所述主库和所述备库
    互为彼此的备库。

    连接切换???02,用于在所述主库满足重启条件的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。

    空闲状态是指在备库在当前时间段不存在正在处理的用户的请求。

    用户的请求在非空闲状态下时,主要包括事务内状态或者等待结果集状
    态。

    等待所述用户的请求处于空闲状态可以包括以下几种可能的情况:

    在所述用户的请求处于未知事务状态时,从所述主库请求获取所述用户
    的请求的事务状态;

    在所述用户的请求处于事务状态、或者所述用户的请求处于等待结果集
    状态时,等待所述事务退出或者所述用户的请求结束时,确定所述用户的请
    求处于空闲状态。

    其中,若用户请求为代理服务器无法处理的请求时,例如在MySQL中,
    代理服务器无法处理不支持的SQL语句,例如prepare command,use level env
    等,则可以直接断开与所述主库的连接,即用户连接闪断。

    因此,作为又一个实施例,如图所示,该装置还可以包括:

    第一闪断???,用于在所述用户的请求为无法处理的请求时,断开与所
    述主库的连接;

    状态确定???,用于在所述用户的请求处于未知事务状态时,从所述主
    库请求获取所述用户的请求的事务状态;在所述用户的请求处于事务状态或
    者所述用户的请求处于等待结果集状态时,等待所述事务退出或者所述用户
    的请求结束时,确定所述用户的请求处于空闲状态。

    另外,等待所述用户的请求处于空闲状态,还可以进行时间限制,如果
    等待时间较长,可能会存在故障情况,或者主库准备重启,已经没有充足的
    时间将连接切换至备库。

    因此,所述连接切换??榭梢跃咛逵糜冢涸谒鲋骺饴阒仄籼跫那?br />况下,在预设时间范围内,等待所述用户的请求处于空闲状态时,将与所述
    主库的连接切换至与所述备库的连接;

    则该装置还可以包括:

    第二闪断???,用于在等待时间超出所述预设时间范围时,断开与所述
    主库的连接。

    由于主库与备库互为彼此的备库,主库与备库需要进行实时的同步,以
    保证一致性。而同步操作难免存在延迟情况,如果在存在同步延迟较严重的
    情况下,将与主库的连接切换至与备库的连接,可能会导致后续用户的请求
    无法正常处理,因此,作为又一个实施例,如图7中所示,与图6所示实施
    例不同之处在于,该连接切换???02可以包括:

    同步获取???01,用于在所述用户的请求处于空闲状态,获取所述主
    库与所述备库的同步延迟情况;

    连接切换子???02,用于在所述主库以及所述备库的同步延迟小于等
    于第一阈值时,将与所述主库的连接切换至与所述备库的连接。

    由于将与所述主库的连接切换至与所述备库的连接之后,主库与备库可
    能还存在同步延迟,没有完全同步一致,此时若代理服务提接收到用户的请
    求时,则可以将用户的请求暂时挂起(hang住),待所述主库与所述备库同
    步一致之后,将所述用户的请求发送至所述备库,请求所述备库执行。因此,
    作为又一个实施例,如图7所示,该装置还可以包括:

    第一请求挂起???03,用于接收到用户的请求时,将所述用户的请求
    挂起;

    第一请求处理???04,用于等待所述主库与所述备库同步一致之后,
    或者所述用户的请求挂起第一预设时间之后,将所述用户的请求发送至所述
    备库,请求所述备库执行。

    另外,主库与备库的延迟情况,还可以通过健康检测程序,对主库与备
    库的延迟情况进行检测获得,健康检测程序还可以根据主库与备库的延迟情
    况进行判断,在延迟情况满足一定条件之后,再触发代理服务器进行连接切
    换。

    因此,作为又一个实施例,如图8所述,与图6所示实施例不同之处在
    于,该装置中连接切换???02具体可以具体用于:

    在所述主库满足重启条件,以及接收到健康检测程序检测所述主库与所
    述备库的同步延迟小于第一阈值时发送的连接转换请求的情况下,等待所述
    用户的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连
    接。

    该装置还可以包括:

    第二请求挂起???05,用于接收到所述用户的请求时,将所述用户的
    请求挂起;

    第二请求处理???06,用于当接收到所述健康检测程序在所述主库与
    所述备库同步一致之后发送的连接释放请求,或者所述用户的请求挂起第一
    预设时间之后,将所述用户的请求发送至所述备库,请求所述备库执行。

    图9为本申请实施例提供的一种数据库连接建立装置又一个实施例的
    结构示意图,该装置可以具体应用于图3所示的数据库连接建立系统的健康
    检测程序中,该装置可以包括:

    状态检测???01,用于在用户通过代理服务器与主库连接之后,检测
    数据库管理系统主库与备库的同步延迟情况;其中,所述数据库管理系统至
    少包括主库和备库,所述主库和所述备库互为彼此的备库;

    切换触发???02,用于在所述主库与所述备库同步延迟小于第一阈值
    时,向所述代理服务器发送连接切换请求,以便于所述代理服务器在所述主
    库满足重启条件时,判断所述用户的请求是否处于空闲状态;等待所述用户
    的请求处于空闲状态时,将与所述主库的连接切换至与所述备库的连接。

    此外,该装置还可以包括:

    连接切断???,用于在所述代理服务器将与所述主库的连接切换至与所
    述备库的连接之后,将所述主库中的全部连接切断;

    第一模式设置???,用于设置所述主库为只读模式;

    第二模式设置???,用于在所述主库与所述备库同步一致之后,设置所
    述备库为读写模式,并向所述代理服务器发送连接释放请求,以便于所述代
    理服务器在接收到所述连接释放请求之后,将挂起的所述用户的请求发送至
    所述备库,请求所述备库执行。

    此外,本申请实施例还提供了数据库连接建立系统,具体可以参见图1
    以及图3所示的结构示意图,在此不再赘述。

    在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/
    输出接口、网络接口和内存。

    内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器
    (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash
    RAM)。内存是计算机可读介质的示例。

    计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由
    任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、
    程序的??榛蚱渌?。计算机的存储介质的例子包括,但不限于相变内存
    (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、
    其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程
    只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储
    器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁
    带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以
    被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存
    电脑可读媒体(transitory media),如调制的数据信号和载波。

    如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技
    术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明
    书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能
    上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包
    含”为一开放式用语,故应解释成“包含但不限定于”?!按笾隆笔侵冈诳山邮?br />的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,
    基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性
    耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第
    一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地
    电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,
    然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范
    围。本申请的?;し段У笔铀饺ɡ笏缍ㄕ呶?。

    还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非
    排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要
    素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系
    统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的
    要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

    上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理
    解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,
    而可用于各种其他组合、修改和环境,并能够在本文所述实用新型构想范围
    内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行
    的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的
    ?;し段?。

    关 键 词:
    数据库连接 建立 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库连接建立方法及装置.pdf
    链接地址://www.4mum.com.cn/p-6092689.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03