CN111459724A - 节点切换方法、装置、设备及计算机可读存储介质 - Google Patents
节点切换方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111459724A CN111459724A CN202010151083.XA CN202010151083A CN111459724A CN 111459724 A CN111459724 A CN 111459724A CN 202010151083 A CN202010151083 A CN 202010151083A CN 111459724 A CN111459724 A CN 111459724A
- Authority
- CN
- China
- Prior art keywords
- node
- switched
- master
- directory
- copy
- 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.)
- Granted
Links
Images
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种节点切换方法、装置、设备及计算机可读存储介质,该方法包括:当主节点异常时,从运行正常的从节点中确定待切换节点;将待切换节点切换为主节点;对复制槽目录进行重新加载,以使得待切换节点在切换为主节点后根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种节点切换方法、装置、设备及计算机可读存储介质。
背景技术
目前,出于灾备的目的,企业在建设多活容灾系统时,一般会建设多个数据中心,每个数据中心可以包括一个主节点以及至少一个从节点。为了保持多个主节点的逻辑数据同步,多个主节点之间可以进行逻辑数据的主主复制,例如主节点A可以获取主节点B同步的逻辑数据,并可以作为主节点B的备节点以在主节点B异常时根据主节点B同步的逻辑数据来代替主节点B来执行对应的操作;对应地,主节点B也可以获取主节点A同步的逻辑数据,并可以作为主节点A的备节点以在主节点A异常时根据主节点A同步的逻辑数据来代替主节点A来执行对应的操作。其中,主节点A和主节点B为上述多个主节点中的任意两个主节点。
但是,主节点之间在进行逻辑数据的主主复制时通常是通过主节点上的复制槽数据来实现的,而从节点无法获取主节点上的复制槽数据,因此,当主节点异常时,从节点无法获取原主节点上的复制槽数据,因此也无法在切换为新的主节点后将原主节点的复制槽数据同步至其他主节点,从而无法实现主节点之间的逻辑数据同步。
发明内容
本发明实施例提供了一种节点切换方法、装置、设备及计算机可读存储介质,以解决现有技术中因从节点无法获取主节点上的复制槽数据而导致的从节点在切换为主节点后无法将原主节点的复制槽数据同步至其他主节点进而无法实现主节点之间的逻辑数据同步的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种节点切换方法,应用于多活容灾系统中的数据中心,所述多活容灾系统包括多个数据中心,所述数据中心包括一个主节点以及至少一个从节点,所述主节点上创建有复制槽目录,所述数据中心设置有共享目录,所述主节点上创建的复制槽目录链接至所述共享目录中,以使得所述数据中心中的主节点以及从节点根据所述复制槽目录读取对应的复制槽数据,基于读取的复制槽数据不同的主节点之间进行逻辑数据的主主复制,所述方法包括:
当主节点异常时,从运行正常的从节点中确定待切换节点;
将所述待切换节点切换为主节点;
对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
第二方面,提供了一种节点切换装置,应用于多活容灾系统中的数据中心,所述多活容灾系统包括多个数据中心,所述数据中心包括一个主节点以及至少一个从节点,所述主节点上创建有复制槽目录,所述数据中心设置有共享目录,所述主节点上创建的复制槽目录链接至所述共享目录中,以使得所述数据中心中的主节点以及从节点根据所述复制槽目录读取对应的复制槽数据,基于读取的复制槽数据不同的主节点之间进行逻辑数据的主主复制,所述装置包括:
确定装置,用于当主节点异常时,从运行正常的从节点中确定待切换节点;
切换装置,用于将所述待切换节点切换为主节点;
加载装置,用于对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
第三方面,提供了一种节点切换设备,该节点切换设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
在本发明实施例中,数据中心可以设置共享目录,主节点上创建的复制槽目录可以链接至共享目录中,以使得数据中心中的主节点以及从节点可以根据复制槽目录来读取对应的复制槽数据。当主节点异常时,可以从运行正常的从节点中确定待切换节点,并将待切换节点切换为主节点,然后,可以对复制槽目标进行重新加载,以使得待切换节点在切换为主节点后可以根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
由上述内容可知,本发明实施例中可以对主节点上的复制槽目录进行共享,从而使得从节点可以读取复制槽目录,由于从节点可以读取复制槽目录,因此,当主节点异常时,从节点可以在切换为新的主节点后,根据读取的复制槽目录来获取对应的复制槽数据,并根据读取到的复制槽数据来实现与其他主节点的逻辑数据同步。
此外,针对切换后的新主节点无法读取到复制槽目录的情况,本实施例还提出了可以对复制槽目录进行重新加载,以使得切换后的新主节点可以读取到复制槽目录,从而使得切换后的新主节点与其他主节点之间可以更好地进行逻辑数据同步。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一个实施例提供的节点切换方法的流程示意图;
图2为本发明一个实施例提供的节点切换装置的模块组成示意图;
图3为本发明一个实施例提供的节点切换设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明各实施例提供的技术方案。
请参见图1,图1为本发明一个实施例提供的节点切换方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤102:当主节点异常时,从运行正常的从节点中确定待切换节点。
步骤104:将待切换节点切换为主节点。
步骤106:对复制槽目录进行重新加载,以使得待切换节点在切换为主节点后根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
在本发明实施例中,多活容灾系统可以包括多个数据中心,其中,每个数据中心可以包括一个主节点以及至少一个从节点。
在一个示例中,多活容灾系统可以为基于Corosync和Pacemaker的高可用集群。该高可用集群可以在主节点上创建逻辑数据复制,并形成广播数据广播到其他高可用集群中,以使得其他高可用集群可以获取到该主节点上创建的逻辑数据。
在一个实施例中,主节点上创建有复制槽目录。在一个示例中,主节点上创建的复制槽目录可以是通过工具logical_tools创建的。在本示例中,数据中心还可以包括kafka数据库,则工具logical_tools在创建了复制槽目录后,还可以将复制槽目录对应的复制槽数据传输至kafka数据库中,以使得其他主节点可以通过kafka数据库来获取当前主节点对应的复制槽数据。
由于复制槽数据中可以包括逻辑数据,因此,当一个主节点获取其他主节点的复制槽数据时,可以获取到该其他主节点的逻辑数据,从而可以作为该其他主节点的备节点,并在该其他主节点异常时,根据获取到的该其他主节点的逻辑数据来替代该其他主节点执行对应的操作。对应地,该其他节点也可以通过该主节点的复制槽数据来获取该主节点的逻辑数据,并可以作为该主节点的备节点,当该主节点异常时,可以根据获取到的该主节点的逻辑数据来替代该主节点执行对应的操作。由此可知,基于复制槽数据,主节点之间可以实现逻辑数据的主主复制,进而可以实现主节点之间的逻辑数据的同步。
需要说明的是,创建复制槽时需要写权限,因此,只能在具有写权限的主节点上创建。此时,从节点无法对复制槽数据进行读写。因此,当主节点异常、从节点切换为主节点时,由于无法获取主节点异常前的主节点上的复制槽数据,因此,从节点无法在切换为新的主节点后将原主节点的复制槽数据同步至其他主节点,从而无法实现主节点之间的逻辑数据同步。
为了有效解决上述问题,在本发明实施例中,数据中心可以设置有共享目录,则主节点上创建的复制槽目录可以链接至该共享目录中,以使得数据中心的主节点以及从节点可以根据该复制槽目录来读取对应的复制槽数据。
在一个示例中,复制槽目录可以为pg_replslot目录。在数据中心可以设置共享目录share,并在该共享目录下创建目录对应的数据库,然后,可以在共享目录share上的指定路径,如$PGDATA/下创建软连接,并将该软连接指向复制槽目录。此时,该复制槽目录对应的复制槽数据可以存储在共享目录下创建的目录对应的数据库中。
在本发明实施例中,数据中心可以在主节点异常时,从运行正常的从节点中确定待切换节点,然后,可以将待切换节点切换为主节点,并对复制槽目录进行重新加载,以使得待切换节点在切换为主节点后根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
在本发明的一个实施例中,由于对复制槽目录进行了共享,因此,当主节点异常时,可以从运行正常的从节点中确定待切换节点。其中,在确定待切换节点时,可以将运行正常的从节点中最空闲的从节点确定为待切换节点、距离该异常的主节点最近的从节点确定为待切换节点等,本实施例对此不做限制。
在从运行正常的从节点中确定待切换节点后,可以将待切换节点切换为主节点。由于待切换从节点在该异常的主节点异常之前可以读取复制槽目录,因此,待切换从节点在该异常的主节点异常之前可以获取到复制槽数据,故在该异常的主节点异常之后,待切换节点将之前读取到的复制槽数据同步至其他主节点,以与其他主节点实现逻辑数据的同步。
在一个示例中,在将待切换节点切换为主节点时,可以通过对待切换节点进行重启来实现将该待切换节点切换为主节点,从而可以有效提升将从节点切换为主节点的成功率。
在一个示例中,数据中心可以为基于pacemaker的高可用集群,则在通过对待切换节点进行重启来实现将该待切换节点切换为主节点时,可以先通过安装pacemaker时的配置脚本来实现对待切换节点的重启。其中,该配置脚本可以用于管理各个节点的状态,并提升从节点为主节点,各个节点的状态可以用于标识各个节点是主节点还是从节点。
在先通过安装pacemaker时的配置脚本来实现对待切换节点的重启时,可以将安装pacemaker时的配置脚本中用于将待切换为主节点的从节点切换为主节点的代码修改为对待切换为主节点的从节点进行重启的代码,以实现对待切换节点的重启。其中,对待切换为主节点的从节点进行重启的代码可以为相关人员预先设置的代码。
在本发明实施例中,在将待切换节点切换为主节点后,可以对复制槽目录进行重新加载,以使得待切换节点在切换为主节点后可以根据重新加载的复制槽目录来读取对应的目标复制槽数据。
在将待切换节点切换为主节点后,为了防止出现新的主节点加载复制槽目录时加载失败的情况出现,本发明实施例可以在将待切换节点切换为主节点后,对复制槽目录进行重新加载,以提升新的主节点对复制槽目录的加载成功率。
在本发明实施例中,还可以获取用于对复制槽目录对应的复制槽数据进行传输,如将复制槽数据传输至kafka数据库的进程的个数,并确定获取到的个数是否等于预设值,如0,当获取到的个数等于预设值时,可以确定未成功调起用于传输复制槽数据的进程,从而无法传输复制槽数据。此时,可以重新调起用于传输复制槽数据的进程,以实现对复制槽数据的传输。
在一个示例中,在获取用于对复制槽目录对应的复制槽数据进行传输的进程的个数前,可以先确定节点是否为主节点,当节点为主节点时,可以进一步获取用于对复制槽数据进行传输的进程的个数;当节点不为主节点时,可以直接退出,不再获取用于对复制槽数据进行传输的进程的个数。
其中,在确定节点是否为主节点时,可以先创建定时任务,并按照创建的定时任务对应的时间来定时执行对应的脚本,其中,该脚本可以用来确定节点是否为主节点,然后,可以根据该脚本的执行结果来确定节点是否为主节点。
在本发明实施例中,数据中心可以设置共享目录,主节点上创建的复制槽目录可以链接至共享目录中,以使得数据中心中的主节点以及从节点可以根据复制槽目录来读取对应的复制槽数据。当主节点异常时,可以从运行正常的从节点中确定待切换节点,并将待切换节点切换为主节点,然后,可以对复制槽目标进行重新加载,以使得待切换节点在切换为主节点后可以根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
由上述内容可知,本发明实施例中可以对主节点上的复制槽目录进行共享,从而使得从节点可以读取复制槽目录,由于从节点可以读取复制槽目录,因此,当主节点异常时,从节点可以在切换为新的主节点后,根据读取的复制槽目录来获取对应的复制槽数据,并根据读取到的复制槽数据来实现与其他主节点的逻辑数据同步。
此外,针对切换后的新主节点无法读取到复制槽目录的情况,本实施例还提出了可以对复制槽目录进行重新加载,以使得切换后的新主节点可以读取到复制槽目录,从而使得切换后的新主节点与其他主节点之间可以更好地进行逻辑数据同步。
对应上述节点切换方法,本发明实施例还提供了一种节点切换装置,应用于多活容灾系统中的数据中心,所述多活容灾系统包括多个数据中心,所述数据中心包括一个主节点以及至少一个从节点,所述主节点上创建有复制槽目录,所述数据中心设置有共享目录,所述主节点上创建的复制槽目录链接至所述共享目录中,以使得所述数据中心中的主节点以及从节点根据所述复制槽目录读取对应的复制槽数据,基于读取的复制槽数据不同的主节点之间进行逻辑数据的主主复制,图2为本发明实施例提供的节点切换装置的模块组成示意图之一,如图2所示,该节点切换装置包括:
所述装置包括:
确定模块210,用于当主节点异常时,从运行正常的从节点中确定待切换节点;
切换模块220,用于将所述待切换节点切换为主节点;
加载模块230,用于对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
可选的,所述切换模块220用于:
通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点。
可选的,在所述复制槽目录进行重新加载之后,所述装置还包括:
判断模块240,用于确定用于对复制槽目录对应的复制槽数据进行传输的进程的个数是否等于预设值;
调起模块250,用于当所述个数等于预设值时,重新调起所述用于对复制槽目录对应的复制槽数据进行传输的进程。
可选的,所述数据中心为基于pacemaker的高可用集群,在所述从运行正常的从节点中确定待切换节点之后,在所述通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点之前,所述装置还包括:
重启模块260,用于通过安装pacemaker时的配置脚本来实现对所述待切换节点的重启。
可选的,所述重启模块260用于:
将安装pacemaker时的配置脚本中用于将待切换为主节点的从节点切换为主节点的代码修改为对所述待切换为主节点的从节点进行重启的代码。
可选的,所述数据中心包括kafka数据库;在所述对所述复制槽目录进行重新加载之后,所述装置还包括:
传输模块270,用于将所述复制槽目录对应的复制槽数据传输至kafka数据库中,以使得所述多活容灾系统中的其他主节点通过所述kafka数据库获取所述复制槽目录对应的复制槽数据。
可选的,所述复制槽目录为pg_replslot目录。
在本发明实施例中,数据中心可以设置共享目录,主节点上创建的复制槽目录可以链接至共享目录中,以使得数据中心中的主节点以及从节点可以根据复制槽目录来读取对应的复制槽数据。当主节点异常时,可以从运行正常的从节点中确定待切换节点,并将待切换节点切换为主节点,然后,可以对复制槽目标进行重新加载,以使得待切换节点在切换为主节点后可以根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
由上述内容可知,本发明实施例中可以对主节点上的复制槽目录进行共享,从而使得从节点可以读取复制槽目录,由于从节点可以读取复制槽目录,因此,当主节点异常时,从节点可以在切换为新的主节点后,根据读取的复制槽目录来获取对应的复制槽数据,并根据读取到的复制槽数据来实现与其他主节点的逻辑数据同步。
此外,针对切换后的新主节点无法读取到复制槽目录的情况,本实施例还提出了可以对复制槽目录进行重新加载,以使得切换后的新主节点可以读取到复制槽目录,从而使得切换后的新主节点与其他主节点之间可以更好地进行逻辑数据同步。
对应上述节点切换方法,本发明实施例还提供了一种节点切换设备,图3为本发明一个实施例提供的节点切换设备的硬件结构示意图。
该节点切换设备可以为上述实施例提供的用于切换节点的终端设备或服务器等。
节点切换设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对节点切换设备中的一系列计算机可执行指令。更进一步地,处理器301可以设置为与存储器302通信,在节点切换设备上执行存储器302中的一系列计算机可执行指令。节点设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306。
具体在本实施例中,节点切换设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对节点切换设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
当主节点异常时,从运行正常的从节点中确定待切换节点;
将所述待切换节点切换为主节点;
对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
可选的,所述将所述待切换节点切换为主节点包括:
通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点。
可选的,在所述复制槽目录进行重新加载之后,所述方法还包括:
确定用于对复制槽目录对应的复制槽数据进行传输的进程的个数是否等于预设值;
当所述个数等于预设值时,重新调起所述用于对复制槽目录对应的复制槽数据进行传输的进程。
可选的,所述数据中心为基于pacemaker的高可用集群,在所述从运行正常的从节点中确定待切换节点之后,在所述通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点之前,所述方法还包括:
通过安装pacemaker时的配置脚本来实现对所述待切换节点的重启。
可选的,所述通过安装pacemaker时的配置脚本来实现对所述待切换节点的重启,包括:
将安装pacemaker时的配置脚本中用于将待切换为主节点的从节点切换为主节点的代码修改为对所述待切换为主节点的从节点进行重启的代码。
可选的,所述数据中心包括kafka数据库;在所述对所述复制槽目录进行重新加载之后,所述方法还包括:
将所述复制槽目录对应的复制槽数据传输至kafka数据库中,以使得所述多活容灾系统中的其他主节点通过所述kafka数据库获取所述复制槽目录对应的复制槽数据。
可选的,所述复制槽目录为pg_replslot目录。
在本发明实施例中,数据中心可以设置共享目录,主节点上创建的复制槽目录可以链接至共享目录中,以使得数据中心中的主节点以及从节点可以根据复制槽目录来读取对应的复制槽数据。当主节点异常时,可以从运行正常的从节点中确定待切换节点,并将待切换节点切换为主节点,然后,可以对复制槽目标进行重新加载,以使得待切换节点在切换为主节点后可以根据重新加载的复制槽目录读取对应的目标复制槽数据,并基于目标复制槽数据与多活容灾系统中的其他主节点进行逻辑数据的主主复制。
由上述内容可知,本发明实施例中可以对主节点上的复制槽目录进行共享,从而使得从节点可以读取复制槽目录,由于从节点可以读取复制槽目录,因此,当主节点异常时,从节点可以在切换为新的主节点后,根据读取的复制槽目录来获取对应的复制槽数据,并根据读取到的复制槽数据来实现与其他主节点的逻辑数据同步。
此外,针对切换后的新主节点无法读取到复制槽目录的情况,本实施例还提出了可以对复制槽目录进行重新加载,以使得切换后的新主节点可以读取到复制槽目录,从而使得切换后的新主节点与其他主节点之间可以更好地进行逻辑数据同步。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑数据器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑数据功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑数据编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑数据编程并编程到集成电路中,就可以很容易得到实现该逻辑数据方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑数据门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑数据控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone LabsC8051F320,存储器控制器还可以被实现为存储器的控制逻辑数据的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑数据编程来使得控制器以逻辑数据门、开关、专用集成电路、可编程逻辑数据控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种节点切换方法,其特征在于,应用于多活容灾系统中的数据中心,所述多活容灾系统包括多个数据中心,所述数据中心包括一个主节点以及至少一个从节点,所述主节点上创建有复制槽目录,所述数据中心设置有共享目录,所述主节点上创建的复制槽目录链接至所述共享目录中,以使得所述数据中心中的主节点以及从节点根据所述复制槽目录读取对应的复制槽数据,基于读取的复制槽数据不同的主节点之间进行逻辑数据的主主复制,所述方法包括:
当主节点异常时,从运行正常的从节点中确定待切换节点;
将所述待切换节点切换为主节点;
对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
2.根据权利要求1所述的方法,其特征在于,所述将所述待切换节点切换为主节点包括:
通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点。
3.根据权利要求1所述的方法,其特征在于,在所述复制槽目录进行重新加载之后,所述方法还包括:
确定用于对复制槽目录对应的复制槽数据进行传输的进程的个数是否等于预设值;
当所述个数等于预设值时,重新调起所述用于对复制槽目录对应的复制槽数据进行传输的进程。
4.根据权利要求2所述的方法,其特征在于,所述数据中心为基于pacemaker的高可用集群,在所述从运行正常的从节点中确定待切换节点之后,在所述通过对所述待切换节点进行重启来实现将所述待切换节点切换为主节点之前,所述方法还包括:
通过安装pacemaker时的配置脚本来实现对所述待切换节点的重启。
5.根据权利要求4所述的方法,其特征在于,所述通过安装pacemaker时的配置脚本来实现对所述待切换节点的重启,包括:
将安装pacemaker时的配置脚本中用于将待切换为主节点的从节点切换为主节点的代码修改为对所述待切换为主节点的从节点进行重启的代码。
6.根据权利要求1所述的方法,其特征在于,所述数据中心包括kafka数据库;在所述对所述复制槽目录进行重新加载之后,所述方法还包括:
将所述复制槽目录对应的复制槽数据传输至kafka数据库中,以使得所述多活容灾系统中的其他主节点通过所述kafka数据库获取所述复制槽目录对应的复制槽数据。
7.根据权利要求1至6任一所述的方法,其特征在于,所述复制槽目录为pg_replslot目录。
8.一种节点切换装置,其特征在于,应用于多活容灾系统中的数据中心,所述多活容灾系统包括多个数据中心,所述数据中心包括一个主节点以及至少一个从节点,所述主节点上创建有复制槽目录,所述数据中心设置有共享目录,所述主节点上创建的复制槽目录链接至所述共享目录中,以使得所述数据中心中的主节点以及从节点根据所述复制槽目录读取对应的复制槽数据,基于读取的复制槽数据不同的主节点之间进行逻辑数据的主主复制,所述装置包括:
确定模块,用于当主节点异常时,从运行正常的从节点中确定待切换节点;
切换模块,用于将所述待切换节点切换为主节点;
加载模块,用于对所述复制槽目录进行重新加载,以使得所述待切换节点在切换为主节点后根据重新加载的所述复制槽目录读取对应的目标复制槽数据,并基于所述目标复制槽数据与所述多活容灾系统中的其他主节点进行逻辑数据的主主复制。
9.一种节点切换设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010151083.XA CN111459724B (zh) | 2020-03-06 | 2020-03-06 | 节点切换方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010151083.XA CN111459724B (zh) | 2020-03-06 | 2020-03-06 | 节点切换方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459724A true CN111459724A (zh) | 2020-07-28 |
CN111459724B CN111459724B (zh) | 2023-08-25 |
Family
ID=71685586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010151083.XA Active CN111459724B (zh) | 2020-03-06 | 2020-03-06 | 节点切换方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459724B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015601A (zh) * | 2020-08-05 | 2020-12-01 | 中国银联股份有限公司 | 一种多数据中心数据处理的方法及装置 |
CN112238790A (zh) * | 2020-09-16 | 2021-01-19 | 中船动力研究院有限公司 | 一种船用蓄电池单元的控制方法及混合电力推进系统 |
CN112883118A (zh) * | 2021-03-31 | 2021-06-01 | 浪潮云信息技术股份公司 | 一种基于sql的增量数据同步获取方法及系统 |
CN114363156A (zh) * | 2022-01-25 | 2022-04-15 | 南瑞集团有限公司 | 一种基于集群技术的水电站计算机监控系统部署方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160147854A1 (en) * | 2014-11-21 | 2016-05-26 | International Business Machines Corporation | Data transfer between multiple databases |
US10073856B1 (en) * | 2018-04-30 | 2018-09-11 | Qumulo, Inc. | Continuous replication for secure distributed filesystems |
CN108810150A (zh) * | 2018-06-15 | 2018-11-13 | 国网上海市电力公司 | 协同办公系统应用级灾备系统的数据复制方法 |
US20190235979A1 (en) * | 2018-01-31 | 2019-08-01 | Symantec Corporation | Systems and methods for performing computing cluster node switchover |
-
2020
- 2020-03-06 CN CN202010151083.XA patent/CN111459724B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160147854A1 (en) * | 2014-11-21 | 2016-05-26 | International Business Machines Corporation | Data transfer between multiple databases |
US20190235979A1 (en) * | 2018-01-31 | 2019-08-01 | Symantec Corporation | Systems and methods for performing computing cluster node switchover |
US10073856B1 (en) * | 2018-04-30 | 2018-09-11 | Qumulo, Inc. | Continuous replication for secure distributed filesystems |
CN108810150A (zh) * | 2018-06-15 | 2018-11-13 | 国网上海市电力公司 | 协同办公系统应用级灾备系统的数据复制方法 |
Non-Patent Citations (4)
Title |
---|
"\"R1-1800444\"" * |
SHARAYU MOHARIR 等: ""Content replication in large distributed caches"" * |
YASER MANSOURI 等: ""Cost Optimization for Dynamic Replication and Migration of Data in Cloud Data Centers"," * |
付莎;: "PostgreSQL热备原理研究及流复制运用" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015601A (zh) * | 2020-08-05 | 2020-12-01 | 中国银联股份有限公司 | 一种多数据中心数据处理的方法及装置 |
CN112015601B (zh) * | 2020-08-05 | 2023-08-08 | 中国银联股份有限公司 | 一种多数据中心数据处理的方法及装置 |
CN112238790A (zh) * | 2020-09-16 | 2021-01-19 | 中船动力研究院有限公司 | 一种船用蓄电池单元的控制方法及混合电力推进系统 |
CN112238790B (zh) * | 2020-09-16 | 2024-05-31 | 中船动力研究院有限公司 | 一种船用蓄电池单元的控制方法及混合电力推进系统 |
CN112883118A (zh) * | 2021-03-31 | 2021-06-01 | 浪潮云信息技术股份公司 | 一种基于sql的增量数据同步获取方法及系统 |
CN114363156A (zh) * | 2022-01-25 | 2022-04-15 | 南瑞集团有限公司 | 一种基于集群技术的水电站计算机监控系统部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111459724B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327703B (zh) | 一种基于区块链的共识方法及装置 | |
CN106970873B (zh) | 线上mock测试方法、装置及系统 | |
CN107450979B (zh) | 一种区块链共识方法及装置 | |
CN111459724A (zh) | 节点切换方法、装置、设备及计算机可读存储介质 | |
CN108959341B (zh) | 一种数据同步的方法、装置及设备 | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
CN110401700B (zh) | 模型加载方法及系统、控制节点及执行节点 | |
CN110807013B (zh) | 用于分布式数据存储集群的数据迁移方法和装置 | |
CN109033127B (zh) | 一种同步数据校验方法、装置以及设备 | |
CN110633096B (zh) | 节点控制方法及装置、版本控制方法及装置、分布式系统 | |
CN108762913A (zh) | 服务处理方法及装置 | |
CN113254163B (zh) | 区块链数据的处理方法及装置 | |
CN108304455B (zh) | 一种处理业务请求的方法、装置及设备 | |
CN111866169B (zh) | 一种服务更新方法及装置、系统 | |
CN110430255A (zh) | 分布式集群中服务请求的处理方法、系统以及电子设备 | |
CN108647112B (zh) | 数据备份的方法、装置及分布式事务处理系统 | |
CN113835637B (zh) | 一种数据的写入方法、装置以及设备 | |
CN111796864A (zh) | 一种数据校验的方法及装置 | |
CN110244964B (zh) | 一种基于运维应用的运维方法、运维方法、装置及设备 | |
CN112181979A (zh) | 一种数据更新方法、装置、存储介质及电子设备 | |
CN109582388B (zh) | 一种参数配置方法、装置及设备 | |
CN110019975B (zh) | 随机游走、基于集群的随机游走方法、装置以及设备 | |
CN110633321B (zh) | 一种数据的同步方法、装置及设备 | |
CN115391337A (zh) | 数据库分区的方法、装置、存储介质及电子设备 | |
CN108681492A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |