具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
相关技术中比较常用的数据库系统中主机和备机的数据同步方法,主要包括当主机在内存中每进行一次数据修改操作时,将相应的修改信息发送给备机,备机根据修改信息在内存中也进行相应修改,然而这种随时保持主机和备机内存中的数据完全一致的方式,会带来极大的同步开销。因此相关技术中亟需一种能够减小主机和用于对主机进行热备份的备机之间的同步开销的数据同步方式。
基于类似于上文所述的实际技术需求,本申请提供的数据同步方法可以利用技术化的手段能够减小主机和用于对主机进行热备份的备机之间的同步开销。
下面通过一个示例性的应用场景具体说明本申请各个实施例提供的数据同步方法。
本申请实施例提供的数据同步方法可以应用于图1所示的数据库系统,如图1所示,该数据库系统中包括主机11、备机12和数据库13,主机11和备机12共享数据库13中的文件,主机11和备机12均可以根据需要对数据库13中的物理文件进行读操作,而只有主机11可以对数据库13中的物理文件进行写操作。
其中,主机11可以将物理文件中数据块中的数据从磁盘读入内存中缓冲池(buffer pool)中的数据块中,并在缓冲池中进行数据的查找、修改处理,主机11还可以将修改后的数据块写回到数据库13中的物理文件中。需要说明的是,本申请实施例中将主机11进行数据库读写的基本单位记为数据块,一个实施例中,数据块具体可以为页(page)或者也可以称为页面。另外,主机11在对数据库13进行操作的过程中,还可以生成数据库13的日志(例如redo日志、wal日志等),并将日志记录到日志文件中。
为了解决主机与用于对主机进行热备份的备机之间的同步开销较大的技术问题,在图1所示的数据库系统中,主机11和备机12之间可以基于数据块粒度进行内存中的数据同步,具体的,备机12可以基于数据库13中的物理文件,对主机11生成的数据库13的日志进行回放,得到备机12的缓冲池中的脏数据块,备机12中脏数据块的淘汰受主机11发送的同步信息的控制,由于主机11在将某一脏数据块写到物理文件之前,可以对该脏数据块进行多次修改操作,因此主机11和备机12之间基于数据块粒度进行内存中的数据同步,与主机11每进行一次数据修改操作就将相应的修改信息发送给备机12相比,能够减少同步过程中主机11生成并发送信息的次数,以及备机12接收并处理信息的次数,从而能够减小主机11与备机12之间的同步开销。
基于上述,在图1所示的数据库系统中,主机11将缓冲池中的脏数据块写到数据库13中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息,主机11向备机12发送包括所述对应关系信息的同步信息,以便备机12根据同步信息对其缓冲池中的脏数据块进行淘汰。
以主机11和备机12的操作系统均为linux系统为例,数据块具体可以为页面,脏数据块具体可以为脏页,块标签具体可以为页面标签。
需要说明的是,图1中主机11和备机12的数量均为1个仅为举例。本申请实施例提供的数据同步方法可以应用于包括主机和备机,且主备机共享数据库中物理文件的任意数据库系统。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本申请一实施例提供的数据同步方法的流程示意图,本实施例的执行主体可以为图1中的主机11。如图2所示,本实施例的方法可以包括:
步骤21,将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息;
步骤22,向所述备机发送同步信息,所述同步信息包括所述对应关系信息,以便所述备机根据所述同步信息对其缓冲池中的脏数据块进行淘汰,所述缓冲池中的脏数据块是所述备机基于所述数据库中的物理文件,回放所述主机生成的所述数据库的日志得到。
本申请实施例中,与某一脏数据块对应的块标签,用于标记该脏数据块在数据库中物理文件中的相应数据块,即标记该脏数据块是读的数据库中物理文件中的哪个数据块。与某一脏数据块对应的日志序列号(Log Sequence Number,LSN)是指将该脏数据块写到物理文件时,该脏数据块的日志序列号。
示例性的,在主机支持由缓冲池的空间占用率过高触发数据块淘汰的能力时,步骤21中所述将缓冲池中的脏数据块写到所述数据库中的物理文件中具体可以包括:在缓冲池的空间使用率高于预设比例时,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息。其中,预设比例可以灵活实现,预设比例例如可以为100%,即可以在缓冲池空间占满,需要选择脏页淘汰时,将选择的缓冲池中的脏数据块写到数据库中的物理文件中,并记录该脏数据块对应的块标签与该脏数据块对应的日志序列号之间的对应关系信息。
和/或,示例性的,在主机支持由后台写进程将脏数据块写到磁盘上的能力时,步骤21中所述将缓冲池中的脏数据块写到所述数据库中的物理文件中具体可以包括:通过后台写进程将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息。其中,后台写进程例如可以为bgwriter进程。后台写进程可以将缓冲池中某一个或多个脏数据块写到物理文件中。
和/或,示例性的,在主机支持由后台检查点进程将脏数据块写到磁盘上的能力时,步骤21中所述将缓冲池中的脏数据块写到所述数据库中的物理文件中具体可以包括:通过后台检查点进程将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息。其中,后台检查点进程例如可以为后台checkpointer进程。后台检查点进程可以每隔一段时间,将缓冲池中日志序列号小于某一日志序列号的多个脏数据块中的一个写到物理文件中,该段时长为刷写总时长(例如5分钟)与日志序列号小于某一日志序列号的脏数据块的数量之商。
一个实施例中,在主机支持由前台检查点进程将脏数据块写到磁盘上的能力时,步骤21中所述将缓冲池中的脏数据块写到所述数据库中的物理文件中具体可以包括:通过前台检查点进程将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息。前台检查点进程可以在某一时刻,将缓冲池中日志序列号小于某一日志序列号的多个脏数据块,依次写到物理文件中。
或者,可替换的,在主机支持由前台检查点进程将脏数据块写到磁盘上的能力时,本申请实施例提供的方法还可以包括:通过前台检查点进程将日志序列号小于目标日志序列号的脏数据块写到所述数据库中的物理文件中,并记录所述目标日志序列号;所述同步信息还可以包括所述目标日志序列号。从而能够减少主机所需记录的信息数量,以及主机与备机之间所需传输的信息数量。
在实际应用中,由于本申请实施例中备机的脏页不能随便淘汰,需要等主机发送同步信息,可能存在如下问题:主机发送同步信息不及时,导致备机的缓冲池里面可能全是脏数据块,从而导致备机回放日志时无法分配数据块。据此,可以进一步引入备机反压刷脏机制。
基于此,本申请实施例提供的方法还可以包括:接收所述备机发送的脏数据块情况信息;根据所述脏数据块情况信息确定是否进行强制刷脏。相应的,步骤22中向所述备机发送同步信息具体可以包括:在确定进行强制刷脏时,将已记录但未发送的所述对应关系信息发送给所述备机,和/或,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中。
其中,脏数据块同步信息例如可以携带在备机发往主机的心跳中。脏数据块情况信息例如可以包括脏数据块的数量以及脏数据块的比例,例如在脏数据块的数量大于第一阈值,且脏数据块的比例大于第二阈值时,可以确定备机的脏数据块过多,需要进行强制刷脏,否则可以确定不进行强制刷脏。
可选的,所述在确定进行强制刷脏时,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中,包括:在确定进行强制刷脏时,优先将所述缓冲池中较老的脏数据块写到所述数据库中的物理文件中。即在确定进行强制刷脏时,可以先将缓冲池中较老的脏数据块写到数据库中的物理文件中,如果备机的脏数据块还是过多,则进一步可以将缓冲池中较新的脏数据块也写到数据块中的物理文件中。
其中,关于新老脏数据块的界定方式可以灵活实现,例如在某一数据块是脏数据块的时长大于预设时长时,可以认为该数据块是较老的脏数据块,在某一数据块是脏数据块的时长小于或等于预设时长时,可以认为该数据块是较新的脏数据块。由于较老的脏数据块中所存储的数据在未来最近一段时间内再次被访问的概率较小,较新的脏数据块在未来最近一段时间内再次被访问的概率较大,因此通过优先将较老的脏数据块写到物理文件中,有利于提高缓冲池的命中率。
实际应用中,在将缓冲池中的某一脏数据块写到物理文件中时,可以先将该脏数据块中的数据写到高速缓冲存储器(cache)中,然后将写到cache中的该脏数据块的数据写到数据库中的物理文件中。需要说明的是,在数据块具体为页时,高速缓冲存储器具体可以是页高速缓冲存储器(pagecache)。
基于此,一个实施例中,步骤21具体可以包括:将缓冲池中脏数据块中的数据写到高速缓冲存储器中,并将所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息记录到第一数据结构中;以及,将写到所述高速缓冲存储器中的所述脏数据块中的数据,写到所述数据库中的物理文件中,将所述块标签相关的至少一个对应关系信息从所述第一数据结构中移除,并将所述至少一个对应关系信息中所述块标签与最新日志序列号的对应关系信息记录在第二数据结构中。相应的,步骤22具体可以包括:将所述第二数据结构中记录的所述对应关系信息发送给所述备机,并清空所述第二数据结构。从而实现通过第一数据结构+第二数据结构的方式,记录写到物理文件中的脏数据块对应的块标签与该脏数据块对应的日志序列号的对应关系信息,有利于简化实现。
需要说明的是,第一数据结构中记录的对应关系信息中一块标签对应的日志序列号,是指将缓冲池中该块标签对应的脏数据块中的数据写到高速缓冲存储器中时,该脏数据块的日志序列号。由于在将高速缓冲存储器中该脏数据块中的数据写到物理文件之前,可以多次将缓冲池中该脏数据块中的数据写到高速缓冲存储器中,因此第一数据结构中与某一块标签相关的对应关系信息可以为一个或多个。第二数据结构中记录的对应关系信息中一块标签对应的日志序列号,是指将高速缓冲存储器中该块标签对应的脏数据块写到物理文件中时,该脏数据块的日志序列号。
如图3所示,以主机和备机的操作系统为linux系统为例,可以将已经调用write()写到高速缓冲存储器中的脏数据块对应的块标签与该脏数据块对应的日志序列号之间的对应关系信息,记录到第一数据结构中,可以将与已经调用fsync()写到物理文件中的脏数据块对应的块标签相关的对应关系信息从第二数据结构中移除,并记录到第二数据结构中。其中,主机可以将记录在第二数据结构中的对应关系信息发送给备机。
示例性的,第一数据结构可以是一个分桶的哈希表,哈希表的键可以是脏数据块对应的物理文件,哈希表的值可以是一个单向链表,链表中的每个结点可以对应一个脏数据块向高速缓冲存储器的一次写入,记录了该脏数据块对应的块标签与该脏数据块对应的日志序列号之间的对应关系信息。另外,未分配的结点也可以组成一个单链表freelist,当需要分配新的结点时可以从freelist中分配。通过第一数据结构是分桶的哈希表,且哈希表的键是脏数据块对应的物理文件,使得对应同一物理文件的结点是在同一链表中。其中,某一物理文件中数据块的块标签可以采用用于标识该物理文件的量+偏移的方式来表示。
例如,如图4所示,哈希值为hash_1的结点(横线填充的矩形框表示)可以形成一个单向链表,哈希值为hash_2的结点(竖线填充的矩形框表示)可以形成另一个单向链表,每个结点中除了记录块标签与日志序列号之间的对应关系信息,还记录了指向下一个结点的指针。另外,未分配的结点(白色填充的矩形框表示)可以形成又一个单向链表。
需要说明的是,图4中灰色填充的部分表示未分配给第一数据结构的存储空间。
示例性的,第二数据结构可以是一个环形链表,链表中的每个结点可以对应一个脏数据块,记录了该脏数据块对应的块标签与脏数据块对应的日志序列号之间的对应关系信息。例如,如图5所示,环形链表中头指针指向环形链表的头节点,环形链表中的尾指针指向环形链表的尾节点,头节点中记录了块标签与日志序列号之间的对应关系信息。
本申请实施例中,备机未运行时,可以不进行同步信息的记录,以节省资源。基于此,步骤21之前还可以包括:确定与备机通信连接。
本申请实施例中,在主机运行中与备机的连接断开时,也可以不再进行同步信息的记录,以节省资源。基于此,本申请实施例的方法还可以包括:如果与备机的连接断开,则在超时后认为备机死亡,清空已记录的同步信息,例如清空第一数据结构和第二数据结构。备机之后重新连接后再开启记录。
本申请实施例提供的数据同步方法,通过将缓冲池中的脏数据块写到数据库中的物理文件中,并记录脏数据块对应的块标签与脏数据块对应的日志序列号之间的对应关系信息,向备机发送包括对应关系信息的同步信息,以便备机根据同步信息对其缓冲池中的脏数据块进行淘汰,缓冲池中的脏数据块是备机基于数据库中的物理文件,回放主机生成的数据库的日志得到,实现了主机以数据块粒度向备机发送信息,以由备机进行内存中数据的同步,减少了同步过程中主机生成并发送信息的次数,从而能够减小主机与用于对主机进行热备份的备机之间的同步开销。
图6为本申请另一实施例提供的数据同步方法的流程示意图,本实施例的执行主体可以为图1中的备机12。如图6所示,本实施例的方法可以包括:
步骤61,根据所述数据库中的物理文件,对所述主机生成的所述数据库的日志进行回放,得到缓冲池中的脏数据块及其日志序列号;
步骤62,接收所述主机发送的同步信息,并根据所述同步信息以及所述缓冲池中脏数据块的日志序列号,对所述缓冲池中的脏数据块进行淘汰;所述同步信息包括所述主机写到所述数据库中物理文件中的脏数据块对应的块标签,与所述脏数据块对应的日志序列号之间的对应关系信息。
本申请实施例中,主机可以将其生成的数据库的日志发送给备机,或者,主机可以将其生成的数据库的日志存储在备机也能够访问的存储介质中,备机可以从该存储介质中读取主机生成的数据库的日志。
一个实施例中,可以通过将脏数据块标记为非脏的方式,对脏数据块进行淘汰。基于此,步骤61具体可以包括:将所述缓冲池中的目标脏数据块标记为非脏,所述目标脏数据块是指数据是从所述块标签所指示的所述数据块读入,且日志序列号小于所述块标签所对应的日志序列号的数据块。
可选的,在所述同步信息还包括目标日志序列号时,步骤61还可以包括:将所述缓冲池中日志序列号小于所述目标日志序列号的脏数据块,标记为非脏。
本申请实施例提供的数据同步方法,通过根据数据库中的物理文件,对主机生成的数据库的日志进行回放,得到缓冲池中的脏数据块及其日志序列号,接收主机发送的同步信息,并根据同步信息以及缓冲池中脏数据块的日志序列号,对缓冲池中的脏数据块进行淘汰,实现了备机根据主机以数据块粒度发送的信息,对其内存中数据的同步,减少了同步过程中备机接收并处理信息的次数,从而能够减小主机与用于对主机进行热备份的备机之间的同步开销。
图7为本申请一实施例提供的数据同步装置的结构示意图;参考附图7所示,本实施例提供了一种数据同步装置,该装置可以执行上述图2所示实施例所述的方法,具体的,该装置可以包括:
刷脏模块71,用于将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息;
发送模块72,用于向所述备机发送同步信息,所述同步信息包括所述对应关系信息,以便所述备机根据所述同步信息对其缓冲池中的脏数据块进行淘汰,所述缓冲池中的脏数据块是所述备机基于所述数据库中的物理文件,回放所述主机生成的所述数据库的日志得到。
可选的,所述刷脏模块71用于将缓冲池中的脏数据块写到所述数据库中的物理文件中,具体包括如下步骤中的一个或多个:
在缓冲池的空间使用率高于预设比例时,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中;
通过后台写进程将缓冲池中的脏数据块写到所述数据库中的物理文件中;或者,
通过后台检查点进程将缓冲池中的脏数据块写到所述数据库中的物理文件中。
可选的,所述刷脏模块71,还用于:通过前台检查点进程将日志序列号小于目标日志序列号的脏数据块写到所述数据库中的物理文件中,并记录所述目标日志序列号;所述同步信息还包括所述目标日志序列号。
可选的,所述刷脏模块71,还用于:接收所述备机发送的脏数据块情况信息,并根据所述脏数据块情况信息确定是否进行强制刷脏;
所述发送模块72用于向所述备机发送同步信息,具体包括:在确定进行强制刷脏时,立即将已记录但未发送的所述对应关系信息发送给所述备机,和/或,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中。
可选的,所述刷脏模块71用于在确定进行强制刷脏时,将所述缓冲池中的脏数据块写到所述数据库中的物理文件中,具体包括:在确定进行强制刷脏时,优先将所述缓冲池中较老的脏数据块写到所述数据库中的物理文件中。
可选的,刷脏模块71用于将缓冲池中的脏数据块写到所述数据库中的物理文件,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系,具体包括:
将缓冲池中脏数据块中的数据写到高速缓冲存储器中,并将所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系信息记录到第一数据结构中;以及,将写到所述高速缓冲存储器中的所述脏数据块中的数据,写到所述数据库中的物理文件中,将所述块标签相关的至少一个对应关系信息从所述第一数据结构中移除,并将所述至少一个对应关系信息中所述块标签与最新日志序列号的对应关系信息记录在第二数据结构中;
所述发送模块72,用于向所述备机发送所述对应关系信息,具体包括:将所述第二数据结构中记录的所述对应关系信息发送给所述备机,并清空所述第二数据结构。
图7所示装置可以执行图2所示实施例的方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图7所示装置的结构可实现为一计算机设备。如图8所示,该计算机设备可以包括:第一处理器81和第一存储器82。其中,第一存储器82用于存储支持计算机设备执行上述图2所示实施例所述方法的程序,第一处理器81被配置为用于执行第一存储器82中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器81执行时能够实现如下步骤:
将缓冲池中的脏数据块写到所述数据库中的物理文件中,并记录所述脏数据块对应的块标签与所述脏数据块对应的日志序列号之间的对应关系;
向所述备机发送同步信息,所述同步信息包括所述对应关系信息,以便所述备机根据所述同步信息对其缓冲池中的脏数据块进行淘汰,所述缓冲池中的脏数据块是所述备机基于所述数据库中的物理文件,回放所述主机生成的所述数据库的日志得到。
可选的,第一处理器81还用于执行前述图2所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括第一通信接口83,用于计算机设备与其他设备或通信网络通信。
图9为本申请另一实施例提供的数据同步装置的结构示意图;参考附图9所示,本实施例提供了一种数据同步装置,该装置可以执行上述图6所示实施例所述的方法,具体的,该装置可以包括:
回放模块91,用于根据所述数据库中的物理文件,对所述主机生成的所述数据库的日志进行回放,得到缓冲池中的脏数据块及其日志序列号;
淘汰模块92,用于接收所述主机发送的同步信息,并根据所述同步信息对所述缓冲池中的脏数据块进行淘汰;所述同步信息包括所述主机写到所述数据库中物理文件中的脏数据块对应的块标签,与所述脏数据块对应的日志序列号之间的对应关系信息。
可选的,所述淘汰模块92用于根据所述同步信息以及所述缓冲池中脏数据块的日志序列号,对所述缓冲池中的脏数据块进行淘汰,具体包括:
将所述缓冲池中的目标脏数据块标记为非脏,所述目标脏数据块是指数据是从所述块标签所指示的所述数据块读入,且日志序列号小于所述块标签所对应的日志序列号的数据块。
可选的,所述同步信息还包括目标日志序列号;所述淘汰模块92用于根据所述同步信息以及所述缓冲池中脏数据块的日志序列号,对所述缓冲池中的脏数据块进行淘汰,还包括:将所述缓冲池中日志序列号小于所述目标日志序列号的脏数据块,标记为非脏。
图9所示装置可以执行图6所示实施例的方法,本实施例未详细描述的部分,可参考对图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图6所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图9所示装置的结构可实现为一计算机设备。如图10所示,该计算机设备可以包括:第二处理器101和第二存储器102。其中,第二存储器102用于存储支持计算机设备执行上述图6所示实施例所述方法的程序,第二处理器101被配置为用于执行第二存储器102中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器101执行时能够实现如下步骤:
根据所述数据库中的物理文件,对所述主机生成的所述数据库的日志进行回放,得到缓冲池中的脏数据块及其日志序列号;
接收所述主机发送的同步信息,并根据所述同步信息以及所述缓冲池中脏数据块的日志序列号,对所述缓冲池中的脏数据块进行淘汰;所述同步信息包括所述主机写到所述数据库中物理文件中的脏数据块对应的块标签,与所述脏数据块对应的日志序列号之间的对应关系信息。
可选的,第二处理器101还用于执行前述图6所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括第二通信接口103,用于计算机设备与其他设备或通信网络通信。
另外,本申请实施例还提供一种数据库系统,包括:包括主机和备机,所述主机用于执行图2所示实施例所述的方法,所述备机用于执行图6所示实施例所述的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,实现如图2所示实施例所述的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,实现如图6所示实施例所述的方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图2所示实施例所述的方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图6所示实施例所述的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、链表、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。