CN108763370A - 一种基于docker环境的数据库高可用实现方法 - Google Patents
一种基于docker环境的数据库高可用实现方法 Download PDFInfo
- Publication number
- CN108763370A CN108763370A CN201810474970.3A CN201810474970A CN108763370A CN 108763370 A CN108763370 A CN 108763370A CN 201810474970 A CN201810474970 A CN 201810474970A CN 108763370 A CN108763370 A CN 108763370A
- Authority
- CN
- China
- Prior art keywords
- docker
- database
- docker containers
- server
- containers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术,旨在提供一种基于docker环境的数据库高可用实现方法。该种基于docker环境的数据库高可用实现方法包括步骤:在服务器创建docker容器;在docker容器中配置数据库应用;将docker容器中数据库的数据存储目录,挂载到服务器的同一个目录并测试;将docker容器在服务器上进行多个部署;将多个docker容器组成局域网配置虚拟IP,并设置为keeplived进行主从切换,从而对外提供服务。本本发明中每个docker容器中的数据库应用数据存储目录都挂载于服务器的某个目录,因此本发明低成本、高效率地完全解决了数据一致性问题。
Description
技术领域
本发明是关于数据库技术领域,特别涉及一种基于docker环境的数据库高可用实现方法。
背景技术
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
在数据库系统中,需要减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据,因此数据库系统架构必须高可用:1)如果数据发生了宕机或者意外中断等故障,能尽快恢复数据的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断;2)用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时保持一致;3)当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。
现有的数据库高可用方案:
1、使用双节点数据库,主从同步。
优缺点:架构简单;但数据一致性无法得到保证。
2、使用双节点数据库,采用优化同步复制。
优缺点:架构简单,更能保证数据的一致性;但需要二次开发,也不能完全解决数据一致性的问题。
3、共享存储,通过磁盘数据同步的手段,来保证数据的一致性。
优缺点:部署简单,切换逻辑简单,数据强一致性;但需要考虑共享存储的高可用,且价格昂贵。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种架构简单、部署简单、数据一致、低成本的数据库高可用实现方法。为解决上述技术问题,本发明的解决方案是:
提供一种基于docker环境的数据库高可用实现方法,具体包括下述步骤:
步骤A:在服务器创建docker容器(docker是一个开源的引擎,可以为任何应用创建一个轻量级的、可移植的、自给自足的容器);
步骤B:在docker容器中配置数据库应用;
步骤C:将docker容器中数据库的数据存储目录,挂载到服务器的同一个目录;
步骤D:对步骤C中配置好的docker容器,进行测试数据存储目录是否挂载成功,当挂载成功,继续后续步骤;
步骤E:将docker容器在服务器上进行多个部署:
拷贝docker容器,并在服务器上创建docker容器副本,创建的docker容器副本的个数根据服务器对外提供主从服务数量需求定义(根据需要本步骤E中最少可以只拷贝创建1个docker容器副本);
步骤F:将多个docker容器(包括原始的docker容器和步骤E创建的docker容器副本)组成局域网配置虚拟IP,并设置为keeplived进行主从切换,从而对外提供服务。
在本发明中,分布在不同docker容器的数据库应用对外提供服务时,读取/写入数据服务是分开的,即将部分docker容器的数据库应用对外提供写入服务,另一部分docker容器的数据库应用对外提供读取服务。
本发明的工作原理:通过在服务器上创建若干个docker容器,并在每个容器安装数据库应用,并把每个数据库应用的数据存储目录挂载到同一个目录,可以将数据库读取/写入服务任务分到不同的容器中。
与现有技术相比,本发明的有益效果是:
由于本发明中的docker容器完全独立,因此本发明低成本、高效率地提供了若干节点数据库服务;由于本发明中每个docker容器中的数据库应用数据存储目录都挂载于服务器的某个目录,因此本发明低成本、高效率地完全解决了数据一致性问题;由于本发明将数据读取/写入服务任务分到不同docker容器,因此本发明低成本、高效率地缓解了服务器I/O压力。
附图说明
图1为本发明的流程框图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
如图1所示的一种基于docker环境的数据库高可用实现方法,具体实现方式为:
步骤A:在服务器创建docker容器D1。
docker是一个开源的引擎,可以为任何应用创建一个轻量级的、可移植的、自给自足的容器。
步骤B:在docker容器中配置数据库应用mysql及其他应用。这里的其他应用是其他想安装的任何应用,与本专利的功能、目的不相关。
步骤C:将docker容器中数据库的数据存储目录,挂载到服务器的同一个目录/data/mysql。
步骤D:对步骤C中配置好的docker容器,进行测试数据存储目录是否挂载成功,当挂载成功,继续后续步骤。
步骤E:将步骤D中的docker容器在服务器上进行多个部署:
拷贝docker容器,并在服务器上创建docker容器(在服务中安装若干docker容器,并在容器中安装数据库应用,将docker容器中数据库应用的数据存储目录挂载在服务器同一目录),创建的docker容器的个数根据服务器对外提供主从服务数量需求定义。
在本实施例中,拷贝部署3个,即在服务器上部署有docker容器D1、D2、D3、D4。
步骤F:将步骤E中的多个docker容器组成局域网配置虚拟IP,并设置为keeplived进行主从切换,从而对外提供服务。
分布在不同docker容器的数据库应用对外提供服务时,可以将读取/写入数据服务分开。即将部分容器的数据库应用对外提供写入服务,另一部分容器的数据库应用对外提供读取服务。
在本实施例中,将docker容器D1、D2、D3、D4激活,D1、D2设为主从一组,提供数据读取服务;D3、D4设为主从一组,提供数据写入服务。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (2)
1.一种基于docker环境的数据库高可用实现方法,其特征在于,具体包括下述步骤:
步骤A:在服务器创建docker容器;
步骤B:在docker容器中配置数据库应用;
步骤C:将docker容器中数据库的数据存储目录,挂载到服务器的同一个目录;
步骤D:对步骤C中配置好的docker容器,进行测试数据存储目录是否挂载成功,当挂载成功,继续后续步骤;
步骤E:将docker容器在服务器上进行多个部署:
拷贝docker容器,并在服务器上创建docker容器副本,创建的docker容器副本的个数根据服务器对外提供主从服务数量需求定义;
步骤F:将多个docker容器组成局域网配置虚拟IP,并设置为keeplived进行主从切换,从而对外提供服务。
2.根据权利要求1所述的一种基于docker环境的数据库高可用实现方法,其特征在于,分布在不同docker容器的数据库应用对外提供服务时,读取/写入数据服务是分开的,即将部分docker容器的数据库应用对外提供写入服务,另一部分docker容器的数据库应用对外提供读取服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474970.3A CN108763370A (zh) | 2018-05-17 | 2018-05-17 | 一种基于docker环境的数据库高可用实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474970.3A CN108763370A (zh) | 2018-05-17 | 2018-05-17 | 一种基于docker环境的数据库高可用实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763370A true CN108763370A (zh) | 2018-11-06 |
Family
ID=64006832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810474970.3A Pending CN108763370A (zh) | 2018-05-17 | 2018-05-17 | 一种基于docker环境的数据库高可用实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763370A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225003A (zh) * | 2018-11-23 | 2020-06-02 | 北京京东金融科技控股有限公司 | 一种nfs节点配置方法和装置 |
CN112114563A (zh) * | 2019-06-19 | 2020-12-22 | 霍尼韦尔国际公司 | 基于容器的控制执行的高可用性 |
CN112199435A (zh) * | 2020-12-04 | 2021-01-08 | 武汉绿色网络信息服务有限责任公司 | 访问嵌入式数据库的方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468717A (zh) * | 2015-11-20 | 2016-04-06 | 北京百度网讯科技有限公司 | 数据库操作方法和装置 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
US20170235649A1 (en) * | 2015-12-14 | 2017-08-17 | Jignesh Kaushik Shah | Container aware networked data layer |
WO2017201153A1 (en) * | 2016-05-17 | 2017-11-23 | JustTagIt, Inc. | Function and memory mapping registry with reactive management events |
-
2018
- 2018-05-17 CN CN201810474970.3A patent/CN108763370A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468717A (zh) * | 2015-11-20 | 2016-04-06 | 北京百度网讯科技有限公司 | 数据库操作方法和装置 |
US20170235649A1 (en) * | 2015-12-14 | 2017-08-17 | Jignesh Kaushik Shah | Container aware networked data layer |
WO2017201153A1 (en) * | 2016-05-17 | 2017-11-23 | JustTagIt, Inc. | Function and memory mapping registry with reactive management events |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
Non-Patent Citations (2)
Title |
---|
THENOWWJJ: "DockerCompose搭建mycat读写分离", 《HTTPS://BLOG.CSDN.NET/WANG_JINGJ/ARTICLE/DETAILS/54023892》 * |
WEIXIN_34289454: "docker容器的实践_综合项目", 《HTTPS://BLOG.CSDN.NET/WEIXIN_34289454/ARTICLE/DETAILS/93316941》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225003A (zh) * | 2018-11-23 | 2020-06-02 | 北京京东金融科技控股有限公司 | 一种nfs节点配置方法和装置 |
CN111225003B (zh) * | 2018-11-23 | 2022-12-27 | 京东科技控股股份有限公司 | 一种nfs节点配置方法和装置 |
CN112114563A (zh) * | 2019-06-19 | 2020-12-22 | 霍尼韦尔国际公司 | 基于容器的控制执行的高可用性 |
CN112199435A (zh) * | 2020-12-04 | 2021-01-08 | 武汉绿色网络信息服务有限责任公司 | 访问嵌入式数据库的方法、装置、计算机设备及存储介质 |
CN112199435B (zh) * | 2020-12-04 | 2021-03-02 | 武汉绿色网络信息服务有限责任公司 | 访问嵌入式数据库的方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477565B2 (en) | Data access with tolerance of disk fault | |
JP6362685B2 (ja) | オンライン・ホット・スタンバイ・データベースのためのレプリケーション方法、プログラム、および装置 | |
US8341455B2 (en) | Management method and system for managing replication by taking into account cluster storage accessibility to a host computer | |
JP4307982B2 (ja) | データ多重化制御方法 | |
CN107241430A (zh) | 一种基于分布式存储的企业级容灾系统及容灾控制方法 | |
US20080091895A1 (en) | Cache data backup method and system for computer clustering systems | |
CN108763370A (zh) | 一种基于docker环境的数据库高可用实现方法 | |
CN105302667B (zh) | 基于集群架构的高可靠性数据备份与恢复方法 | |
JP2010128644A (ja) | 障害復旧方法、プログラムおよび管理サーバ | |
CN104536971A (zh) | 一种具备高可用性的数据库 | |
JP2005309550A (ja) | リモートコピー方法及びリモートコピーシステム | |
CN108810150B (zh) | 协同办公系统应用级灾备系统的数据复制方法 | |
US10445295B1 (en) | Task-based framework for synchronization of event handling between nodes in an active/active data storage system | |
JP2006227964A (ja) | ストレージシステム、処理方法及びプログラム | |
US20220237089A1 (en) | Virtual machine backup method and apparatus based on cloud platform data center | |
CN110557413A (zh) | 一种业务服务系统及提供业务服务的方法 | |
CN112256477A (zh) | 一种虚拟化容错方法及设备 | |
CN103150267A (zh) | 一种多控制器间的缓存同步方法 | |
CN102457400B (zh) | 一种防止磁盘镜像资源发生脑裂的方法 | |
CN105373449B (zh) | 分布式存储元数据的修复方法、装置及系统 | |
CN113064766A (zh) | 数据备份方法、装置、设备及存储介质 | |
US20160036653A1 (en) | Method and apparatus for avoiding performance decrease in high availability configuration | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
JP2008276281A (ja) | データ同期システム、方法、及び、プログラム | |
CN112328368B (zh) | 一种基于云平台的应用层存储方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |