CN112307054B - 一种双活数据库主备服务器读写方法 - Google Patents
一种双活数据库主备服务器读写方法 Download PDFInfo
- Publication number
- CN112307054B CN112307054B CN202011299688.XA CN202011299688A CN112307054B CN 112307054 B CN112307054 B CN 112307054B CN 202011299688 A CN202011299688 A CN 202011299688A CN 112307054 B CN112307054 B CN 112307054B
- Authority
- CN
- China
- Prior art keywords
- agent
- sql statement
- database
- main
- active
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明一种双活数据库主备服务器读写方法,属于双活数据库主备服务器应用技术领域;所要解决的技术问题为:提供一种双活数据库主备服务器读写方法的改进;解决该技术问题采用的技术方案为:建立两个能够被相互访问的数据库;给两个数据库各设立一个代理,所有对数据的增、删、修改都通过代理执行;设置其中一个代理为主代理,另外一个为副代理;设置主代理负责给SQL语句定序号,副代理无权定序号;当一个应用通过主代理发送SQL语句给数据库执行时,主代理在将这条SQL语句发送到数据库执行前,先给这条SQL语句分配一个序号,并且将这个序号和SQL语句发送给副代理;本发明应用于双活数据库主备服务器读写。
Description
技术领域
本发明一种双活数据库主备服务器读写方法,属于双活数据库主备服务器应用技术领域。
背景技术
目前行业内使用关系数据库来管理结构化数据,比如MySQL,postgresSQL,Oracle,将其广泛应用在互联网,金融等社会各个领域;实际使用时,为保障数据安全,需要对数据库进行备份,一种常见的备份方式为日志重放方式,对数据进行实时复制,一般有几分钟延迟,在该方案中,主数据库可以读写,而备份数据库一般只可读,不能做写操作,在主数据库服务器不能工作的时候,用户可以切换使用备份数据库,以达到对数据库的高效可用,减少数据丢失;但上述使用方式需要应用程序修改数据库指向,并且备份数据库需要监控主数据库健康,容易产生误报和误切换,造成数据不一致。
发明内容
本发明为了克服现有技术中存在的不足,所要解决的技术问题为:提供一种双活数据库主备服务器读写方法的改进。
为了解决上述技术问题,本发明采用的技术方案为:一种双活数据库主备服务器读写方法,包括如下步骤:
步骤一:建立两个数据库,要求两个数据库初始状态一致;
步骤二:给两个数据库各设立一个代理,要求两个代理能够相互通信,所有对数据的增、删、修改都通过代理执行;
步骤三:设置其中一个代理为主代理,另外一个为副代理;
步骤四:设置主代理负责给SQL语句定序号,副代理无权定序号;
步骤五:当一个应用通过主代理发送SQL语句给数据库执行时,主代理在将这条SQL语句发送到数据库执行前,先给这条SQL语句分配一个序号,并且将这个序号和SQL语句发送给副代理;
步骤六:当一个应用通过副代理发送SQL语句时,副代理首先将这条SQL语句发送给主代理,主代理收到后给这条SQL语句分配一个序号,并将序号发送回副代理;
步骤七:主代理或副代理按照相同的顺序将所有编号过的SQL语句依次送入数据库执行。
所述步骤三中设置的主代理和副代理能够根据需要自由调换,将使用量大的数据库或代理设为主代理。
本发明相对于现有技术具备的有益效果为:本发明提供的服务器读写改进方法,可以有效提高数据库的可用性,降低了双活数据库和热备操作难度,减少了数据丢失风险,除了可以在基于服务器的数据库上使用,比如mysql,还可以在基于文件的嵌入式数据库上使用,比如sqlite。
具体实施方式
本发明提供一种双活数据库主备服务器读写方法,主要包括如下步骤:
步骤一:设立两个数据库,可以异地,但需要可以被相互访问。数据库初始状态一致。代理之间相互通信,一般有一个平均的通信延迟;
步骤二:给两个数据库各设立一个代理(agent),所有对数据的增/删/修改都应通过代理执行。查询操作一般可以绕过代理直接向数据库发起;
步骤三:设置其中一个代理为主,另外一个为副;
步骤四:主代理负责给SQL语句定序号,副代理无权定序号;
步骤五:当一个应用通过主代理发送SQL语句给数据库执行,主代理在将这条SQL语句发送到数据库执行前,先给这条SQL语句分配一个序号,并且将这个序号和SQL语句发送给副代理;
步骤六:当一个应用通过副代理发送SQL语句,副代理将这条SQL语句发送给主代理,主代理收到后给这条SQL语句分配一个序号,并将序号发送回副代理;
步骤七:主/副代理按照相同的顺序将所有编号过的SQL语句依次送入数据库执行。通过副代理执行的SQL语句因为需要到主代理处拿序号,所以可能有延迟,但是不影响数据库写入或修改;
步骤八:管理员可以自由的设置,调换主/副代理的角色。一般,使用量比较大的数据库/代理会被设为主。
本发明提供的一种双活数据库主备服务器读写方法,使得主服务器和备份服务器都可读可写;执行时,首先在主服务器和备服务器前面加上两个代理,每个代理与数据库服务器连接,所有的写数据请求必须经过代理发送到数据库。
在主服务器前的代理作为主代理,备份服务器前的代理作为备份代理;当有写请求(写SQL语句,如INSERT,UPDATE,DELETE)发送到代理的时候,如果是主代理,则自己生成一个序号,将序号和SQL语句发送到备份代理,如果是备份代理,则将SQL语句发送给主代理,主代理返回一个序号给备份代理,序号从0开始自增;最后主代理和备份代理按照序号从小到大,依次执行收到的(无论是从客户还是从代理那里接受到的)SQL语句。
当主服务器发送故障,可以手动设置交换主代理和备份代理的角色,无论是否交换代理的主备角色,主备服务器都将正常工作,但是正确设置以后,会提高备份服务器的写入性能,因为请求序号这个动作在本地执行,几乎不消耗时间,但是远程请求(备份代理去主代理拿号)就会慢一些,另外读数据可以绕过代理,直接连接到本地数据库服务器上进行读取。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (2)
1.一种双活数据库主备服务器读写方法,其特征在于:包括如下步骤:
步骤一:建立两个数据库,要求两个数据库初始状态一致;
步骤二:给两个数据库各设立一个代理,要求两个代理能够相互通信,所有对数据的增、删、修改都通过代理执行;
步骤三:设置其中一个代理为主代理,另外一个为副代理;
步骤四:设置主代理负责给SQL语句定序号,副代理无权定序号;
步骤五:当一个应用通过主代理发送SQL语句给数据库执行时,主代理在将这条SQL语句发送到数据库执行前,先给这条SQL语句分配一个序号,并且将这个序号和SQL语句发送给副代理;
步骤六:当一个应用通过副代理发送SQL语句时,副代理首先将这条SQL语句发送给主代理,主代理收到后给这条SQL语句分配一个序号,并将序号发送回副代理;
步骤七:主代理或副代理按照相同的顺序将所有编号过的SQL语句依次送入数据库执行。
2.根据权利要求1所述的一种双活数据库主备服务器读写方法,其特征在于:所述步骤三中设置的主代理和副代理能够根据需要自由调换,将使用量大的数据库或代理设为主代理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011299688.XA CN112307054B (zh) | 2020-11-18 | 2020-11-18 | 一种双活数据库主备服务器读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011299688.XA CN112307054B (zh) | 2020-11-18 | 2020-11-18 | 一种双活数据库主备服务器读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112307054A CN112307054A (zh) | 2021-02-02 |
CN112307054B true CN112307054B (zh) | 2023-02-28 |
Family
ID=74335186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011299688.XA Active CN112307054B (zh) | 2020-11-18 | 2020-11-18 | 一种双活数据库主备服务器读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307054B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040039648A (ko) * | 2002-11-04 | 2004-05-12 | (주)키씨 | 데이터베이스 성능 관리 기법 |
CN101038591A (zh) * | 2007-04-11 | 2007-09-19 | 华为技术有限公司 | 数据库同步方法及*** |
CN101706795A (zh) * | 2009-11-30 | 2010-05-12 | 上海世范软件技术有限公司 | 主备服务器上数据库数据同步方法 |
CN101876997A (zh) * | 2009-12-01 | 2010-11-03 | 广州从兴电子开发有限公司 | 一种内存数据库主备同步方法及*** |
CN103336782A (zh) * | 2013-05-30 | 2013-10-02 | 莱诺斯科技(北京)有限公司 | 一种关系型分布式数据库*** |
WO2017177941A1 (zh) * | 2016-04-13 | 2017-10-19 | 中兴通讯股份有限公司 | 主备数据库切换方法和装置 |
CN110188114A (zh) * | 2019-05-27 | 2019-08-30 | 上海达梦数据库有限公司 | 一种数据操作的优化方法、装置、***、设备和存储介质 |
CN111352766A (zh) * | 2018-12-21 | 2020-06-30 | ***通信集团山东有限公司 | 一种数据库的双活实现方法及装置 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140222443A1 (en) * | 2011-06-07 | 2014-08-07 | Kathleen Danenberg | Molecular profiling for cancer |
-
2020
- 2020-11-18 CN CN202011299688.XA patent/CN112307054B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040039648A (ko) * | 2002-11-04 | 2004-05-12 | (주)키씨 | 데이터베이스 성능 관리 기법 |
CN101038591A (zh) * | 2007-04-11 | 2007-09-19 | 华为技术有限公司 | 数据库同步方法及*** |
CN101706795A (zh) * | 2009-11-30 | 2010-05-12 | 上海世范软件技术有限公司 | 主备服务器上数据库数据同步方法 |
CN101876997A (zh) * | 2009-12-01 | 2010-11-03 | 广州从兴电子开发有限公司 | 一种内存数据库主备同步方法及*** |
CN103336782A (zh) * | 2013-05-30 | 2013-10-02 | 莱诺斯科技(北京)有限公司 | 一种关系型分布式数据库*** |
WO2017177941A1 (zh) * | 2016-04-13 | 2017-10-19 | 中兴通讯股份有限公司 | 主备数据库切换方法和装置 |
CN111352766A (zh) * | 2018-12-21 | 2020-06-30 | ***通信集团山东有限公司 | 一种数据库的双活实现方法及装置 |
CN110188114A (zh) * | 2019-05-27 | 2019-08-30 | 上海达梦数据库有限公司 | 一种数据操作的优化方法、装置、***、设备和存储介质 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
基于存储双活技术的调度自动化***高可靠性架构研究;宋英华 等;《供用电》;20200315;第37卷(第3期);58-63+70 * |
基于网络抓包的数据库即时备份方法;傅瑞军;《计算机工程与设计》;20101228(第24期);201-204 * |
Also Published As
Publication number | Publication date |
---|---|
CN112307054A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256715B2 (en) | Data backup method and apparatus | |
US9886439B2 (en) | Archival management of database logs | |
US10747745B2 (en) | Transaction execution commitment without updating of data row transaction status | |
US7734580B2 (en) | Readable physical storage replica and standby database system | |
US9146934B2 (en) | Reduced disk space standby | |
Baker et al. | Megastore: Providing scalable, highly available storage for interactive services. | |
Amiri et al. | Highly concurrent shared storage | |
Lindström et al. | IBM solidDB: In-Memory Database Optimized for Extreme Speed and Availability. | |
US7917596B2 (en) | Super master | |
EP2797014B1 (en) | Database update execution according to power management schemes | |
US11928089B2 (en) | Data processing method and device for distributed database, storage medium, and electronic device | |
JP7101566B2 (ja) | 不揮発性メモリにおけるマルチバージョン同時実行制御(mvcc) | |
CN104317944B (zh) | 一种基于公式的时间戳动态调整并发控制方法 | |
US20200320098A1 (en) | High Throughput Cross Database Table Synchronization and Transactional Replication in Federated Databases | |
CN107533474A (zh) | 一种事务处理方法及装置 | |
CN112307054B (zh) | 一种双活数据库主备服务器读写方法 | |
US10635552B1 (en) | Method for tracking validity of journal copies to allow journal mirroring | |
CN110377230B (zh) | 一种应用于固态硬盘的原子写入方法及装置 | |
Dong et al. | Fine-Grained Re-Execution for Efficient Batched Commit of Distributed Transactions | |
US10846014B2 (en) | Concept for group memory write instructions | |
US20220027337A1 (en) | Parallel processing of changes in a distributed system | |
CN109857523B (zh) | 一种用于实现数据库高可用性的方法及装置 | |
Coelho et al. | PH1: A transactional middleware for NoSQL | |
Depoutovitch et al. | Taurus MM: Bringing Multi-Master to the Cloud | |
Shastry et al. | Transaction support for HBase |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |