一种数据库管理系统的时间戳模式确定方法及装置与流程

文档序号:29611222发布日期:2022-04-13 08:56阅读:91来源:国知局
1.本技术涉及数据库
技术领域
:,具体涉及一种数据库管理系统的时间戳模式确定方法及装置。
背景技术
::2.数据库通常是一个有组织,且可统一管理的大量数据的集合,并且数据库通常需要具备四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability),这四个特性可简称为acid特性。数据库管理系统(databasemanagementsystem,dbms)则是一种可管理数据库的软件。3.为了保障数据库的acid特性,数据库管理系统通常为数据库配置日志,该日志用于记录事务对数据库中的数据所做的修改,并且数据库管理系统会根据自身应用的时间戳模式,为事务分配相应的时间戳。这种情况下,结合各个事务的时间戳以及该日志,能够确定数据库在各个时间戳下的数据快照,便于实现数据恢复和数据回滚等,以保障数据库的acid特性。4.其中,时间戳模式通常包括逻辑时间戳模式、物理时间戳模式和混合时间戳模式,数据库通常应用其中一种时间戳模式。例如,甲骨文公司经营的数据库(即oracle数据库)的数据库管理系统通常应用逻辑时间戳模式,谷歌公司研发的数据库(即spanner数据库)的数据库管理系统通常应用物理时间戳模式,而cockroach数据库(即cockroachdb)的数据库管理系统通常应用混合时间戳模式。5.但是,数据库管理系统的应用环境会发生变化,导致数据库管理系统应用的时间戳模式有时对所述数据库并不适用。例如,如果某一个数据库管理系统应用逻辑时间戳模式,该数据库中的数据存储在多个节点中,则该数据库管理系统会配置有相应的计数器,通过该计数器为各个节点分配逻辑时间戳,但随着数据库的扩容,节点数量逐渐增加,计数器为节点分配逻辑时间戳时,往往会出现时延,导致该数据库管理系统不再适用逻辑时间戳模式。技术实现要素:6.为了解决现有技术中数据库管理系统应用不合适的时间戳模式的问题,本技术实施例提供一种数据库管理系统的时间戳模式确定方法及装置。7.第一方面,本技术实施例公开一种数据库管理系统的时间戳模式确定方法,包括:8.获取第一设置命令,所述第一设置命令包括指示第一时间戳模式的时间戳信息,所述第一时间戳模式与数据库管理系统在当前的应用环境相匹配;9.设置所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式。10.通过本技术实施例提供的方案,能够使数据库管理系统应用与应用环境相匹配的时间戳模式,从而减少所述数据库管理系统应用不适用的时间戳模式的现象。11.一种可选的设计中,所述第一设置命令为第一结构化查询sql语句,所述第一sql语句包括所述数据库的属性信息;12.所述方法还包括:13.根据所述属性信息,创建所述数据库。14.通过上述实施例,可根据第一sql语句确定数据库管理系统适用的时间戳模式,并且还可创建相应的数据库。15.一种可选的设计中,还包括:16.接收用于创建表对象的第二sql语句,所述第二sql语句对应于创建表对象事务;17.根据所述第一时间戳模式,确定所述创建表对象事务的第一开始时间戳;18.通过执行所述创建表对象事务,创建所述表对象;19.根据所述第一时间戳模式,确定所述创建表对象事务的第一结束时间戳。20.通过上述实施例,能够在确定第一时间戳模式为目标时间戳模式之后,在创建数据库的表对象的过程中,为相应的创建表对象事务分配相应的时间戳。由于所述第一时间戳模式与数据库管理系统的应用环境相匹配,因此,通过这一实施例,可为创建表对象事务分配合适的时间戳,保障了创建表对象事务的实现。21.一种可选的设计中,还包括:22.在所述数据库管理系统的应用环境变化后,获取第二设置命令,所述第二设置命令包括指示第二时间戳模式的时间戳信息,所述第二时间戳模式与变化后的应用环境相匹配;23.将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式。24.通过上述实施例的方案,即使数据库管理系统的应用环境发生变化后,方案,也可通过调整所述数据库管理系统应用的目标时间戳模式,使数据库管理系统应用合适的时间戳模式。25.一种可选的设计中,所述将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式,包括:26.存储所述第二时间戳模式;27.重启所述数据库管理系统;28.在完成所述数据库管理系统的重启之后,设置存储的所述第二时间戳模式为所述目标时间戳模式。29.一种可选的设计中,还包括:30.在所述重启所述数据库管理系统之前,确定所述第一时间戳模式与所述第二时间戳模式不同。31.如果确定所述第一时间戳模式与所述第二时间戳模式相同,则可继续应用第一时间戳模式,无需重启数据库管理系统,减少数据库管理系统的重启次数,保障数据库管理系统的顺畅运行。32.一种可选的设计中,还包括:33.在设置所述第二时间戳模式为所述目标时间戳模式之后,接收第三sql语句;34.根据所述第二时间戳模式,确定所述第三sql语句对应的事务的第二开始时间戳;35.根据所述第二时间戳模式,确定所述操作事务的第二结束时间戳。36.通过上述实施例,能够在将数据库管理系统的目标时间戳模式调整为第二时间戳模式为之后,根据所述第二时间戳模式,为数据库管理系统的操作事务分配相应的时间戳。由于所述第二时间戳模式与数据库管理系统变化后的应用环境相匹配,因此,通过这一实施例,可为数据库管理系统的操作事务分配合适的时间戳,保障了数据库管理系统的操作事务的实现。37.一种可选的设计中,还包括:38.存储通过所述第一时间戳模式分配的第一最大时间戳。39.一种可选的设计中,所述第一时间戳模式为逻辑时间戳模式,所述方法还包括:40.再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;41.基于所述第一最大时间戳,为所述数据库管理系统的事务分配逻辑时间戳。42.一种可选的设计中,所述第一时间戳模式为物理时间戳模式,所述方法还包括:43.再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;44.确定将所述目标时间戳模式再次设置为所述第一时间戳模式的目标时间;45.如果所述第一最大时间戳指示的时间早于所述目标时间,通过所述第一时间戳模式为所述数据库管理系统的事务分配物理时间戳。46.在上述实施例中,在确定所述第一最大时间戳早于所述目标时间时,再通过所述物理时间戳模式为所述数据库管理系统的事务分配物理时间戳,从而提高时间戳的准确性。47.一种可选的设计中,还包括:48.如果所述第一最大时间戳指示的时间不早于所述目标时间,获取第三设置命令,所述第三设置命令包括指示第三时间戳模式的时间戳信息,所述第三时间戳模式与所述第一时间戳模式不同;49.设置所述第三时间戳模式为所述数据库管理系统应用的目标时间戳模式;50.或者,51.暂停分配时间戳,并生成提示信息。52.在上述实施例中,能够在数据库切换至物理时间戳模式,并且确定数据库管理系统配置的用于确定物理时间的时间装置不准确之后,将数据库管理系统应用的物理时间戳模式切换至其他的时间戳模式,或暂停分配时间戳,以避免数据库管理系统应用不准确的物理时间戳模式。53.一种可选的设计中,所述获取第二设置命令,包括:54.接收来自客户端发送的第二设置命令;55.或者,56.确定所述数据库管理系统变化后的应用环境;根据应用环境与时间戳模式之间的映射关系,以及所述数据库管理系统变化后的应用环境,确定所述第二时间戳模式;以及根据确定的所述第二时间戳模式,生成所述第二设置命令。57.通过上述实施例,能够使数据库管理系统根据应用环境的变化,为数据库生成相应的第二设置命令,保障数据库管理系统应用与变化后的应用环境相匹配的时间戳模式。58.第二方面,本技术实施例公开一种数据库管理系统,其特征在于,包括:59.第一获取模块,用于获取第一设置命令,所述第一设置命令包括指示第一时间戳模式的时间戳信息,所述第一时间戳模式与数据库管理系统当前的应用环境相匹配;60.第一设置模块,用于设置所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式61.一种可选的设计中,所述第一设置命令为第一结构化查询sql语句,所述第一sql语句包括数据库的属性信息;62.所述数据库管理系统还包括:63.第一创建模块,用于根据所述属性信息,创建所述数据库。64.一种可选的设计中,还包括:65.第一接收模块,用于接收用于创建表对象的第二sql语句,所述第二sql语句对应于创建表对象事务;66.第二确定模块,用于根据所述第一时间戳模式,确定所述创建表对象事务的第一开始时间戳;67.第二创建模块,用于通过执行所述创建表对象事务,创建所述表对象;68.所述第二确定模块还用于,根据所述第一时间戳模式,确定所述创建表对象事务的第一结束时间戳。69.一种可选的设计中,所述第一获取模块还用于,在所述数据库管理系统的应用环境变化后,获取第二设置命令,所述第二设置命令包括指示第二时间戳模式的时间戳信息,所述第二时间戳模式与变化后的应用环境相匹配;70.所述第一设置模块还用于,将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式。71.一种可选的设计中,所述第一设置模块具体用于,存储所述第二时间戳模式,重启所述数据库管理系统,并在完成所述数据库管理系统的重启之后,设置存储的所述第二时间戳模式为所述目标时间戳模式。72.一种可选的设计中,所述第一设置模块还用于,在所述重启所述数据库管理系统之前,确定所述第一时间戳模式与所述第二时间戳模式不同。73.一种可选的设计中,还包括:74.第二接收模块,用于在设置所述第二时间戳模式为所述目标时间戳模式之后,接收第三sql语句;75.第三确定模块,用于根据所述第二时间戳模式,确定所述第三sql语句对应的操作事务的第二开始时间戳;76.所述第三确定模块用于,根据所述第二时间戳模式,确定所述操作事务的第二结束时间戳。77.一种可选的设计中,还包括:78.存储模块,用于存储通过所述第一时间戳模式分配的第一最大时间戳。79.一种可选的设计中,所述第一时间戳模式为逻辑时间戳模式,所述第一设置模块还用于,再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式,并基于所述第一最大时间戳,为所述数据库管理系统的事务分配逻辑时间戳。80.一种可选的设计中,所述第一时间戳模式为物理时间戳模式,所述第一设置模块还用于,再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;确定将所述目标时间戳模式再次设置为所述第一时间戳模式的目标时间;如果所述第一最大时间戳指示的时间早于所述目标时间,通过所述第一时间戳模式为所述数据库管理系统的事务分配物理时间戳。81.一种可选的设计中,所述第一获取模块还用于,如果所述第一最大时间戳指示的时间不早于所述目标时间,获取第三设置命令,所述第三设置命令包括指示第三时间戳模式的时间戳信息,所述第三时间戳模式与所述第一时间戳模式不同;82.所述第一设置模块还用于,设置所述第三时间戳模式为所述数据库管理系统应用的目标时间戳模式;83.或者,84.所述第一设置模块还用于,暂停分配时间戳,并生成提示信息。85.一种可选的设计中,所述第一获取模块具体用于,接收来自客户端发送的第二设置命令;86.或者,87.所述第一获取模块具体用于,确定所述数据库管理系统变化后的应用环境;根据应用环境与时间戳模式之间的映射关系,以及所述数据库管理系统变化后的应用环境,确定所述第二时间戳模式;以及根据确定的所述第二时间戳模式,生成所述第二设置命令。88.第三方面,本技术实施例公开一种数据库服务器,包括:89.至少一个处理器、存储可执行代码的非瞬态计算机可读介质和如第二方面所述的数据库管理系统;90.其中,所述可执行代码在被所述至少一个处理器执行时,被配置为实现所述数据库管理系统的功能。91.第四方面,本技术实施例公开一种集群数据库系统,包括:92.硬件层、运行在所述硬件层之上的虚拟机监控器vmm和至少一个虚拟机;93.所述至少一个虚拟机基于所述vmm和硬件层提供的硬件资源,通过运行可执行程序,实现第一方面所述的方法。94.第五方面,本技术实施例公开一种数据库系统,包括:95.数据库服务器,以及通过通信网络与所述数据库服务器连接的客户端设备;96.所述客户端设备上运行有客户端的操作系统,所述客户端的操作系统上运行有所述客户端设备的应用程序;97.所述数据库服务器上运行有所述数据库服务器的操作系统,所述数据库服务器还包括如第二方面所述的数据库管理系统。98.第六方面,本技术实施例提供一种可读存储介质,所述可读存储介质用于存储指令,当所述指令被执行时,实现如第一方面所述的方法。99.第七方面,本技术实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施第一方面对应的实施例中的全部或部分步骤。100.通过本技术实施例提供的方案,能够获取第一设置命令,并根据第一设置命令的指示,确定数据库管理系统应用的目标时间戳模式,其中,所述目标时间戳模式为第一设置命令指示的第一时间戳模式,而第一时间戳模式与数据库管理系统在当前的应用环境相匹配。101.在现有技术中,数据库管理系统通常应用一种时间戳模式,并且,即使数据库管理系统的应用环境发生变化,数据库管理系统应用的时间戳模式通常也不会发生变化。这种情况下,随着数据库管理系统的应用环境的变化,数据库管理系统应用的时间戳模式往往会出现不适用的现象。102.而通过本技术实施例提供的方案,数据库管理系统可根据第一设置命令,对所述数据库管理系统应用的时间戳模式进行设置,这种情况下,所述数据库管理系统应用的时间戳模式不再固定不变,而是能够支持多种形式的时间戳模式,并且,数据库管理系统应用的目标时间戳模式与数据库管理系统在当前的应用环境相匹配,即第一时间戳模式对于所述数据库来说是适用的,从而减少所述数据库管理系统应用不适用的时间戳模式的现象。103.进一步的,在本技术实施例提供的方案中,如果数据库管理系统的应用环境发生变化,还可通过第二设置命令,将数据库的目标时间戳模式由第一时间戳模式调整为第二时间戳模式,其中,所述第二时间戳模式与变化后的应用环境相匹配。因此,数据库管理系统的应用环境发生变化后,通过本技术实施例提供的方案,也可通过调整所述数据库管理系统应用的目标时间戳模式,使数据库管理系统应用合适的时间戳模式。附图说明104.图1a为一种单机数据库系统的结构示意图;105.图1b一种采用共享磁盘架构的集群数据库系统的结构示意图;106.图1c为采用无共享架构的集群数据库系统的结构示意图;107.图2为一种数据库服务器的结构示意图;108.图3为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的工作流程示意图;109.图4为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的另一工作流程示意图;110.图5为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的另一工作流程示意图;111.图6为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的另一工作流程示意图;112.图7为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的另一工作流程示意图;113.图8为本技术实施例公开的一种数据库管理系统的时间戳模式确定方法的另一工作流程示意图;114.图9为本技术实施例公开的一种数据库管理系统的结构示意图;115.图10为本技术实施例公开的一种集群数据库系统的结构示意图;116.图11为本技术实施例公开的一种数据库系统的结构示意图。具体实施方式117.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。118.其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术实施例的描述中,“多个”是指两个或多于两个。119.以下,术语“第一”、“第二”仅用于描述目的。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。120.本技术实施例提供的方法、数据库管理系统及数据库服务器可以应用于单机数据库系统或者集群数据库系统。数据库系统(databasesystem)是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统。数据库系统一般由以下三部分组成:(1)数据库(database,db),指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。(2)硬件,包括存储数据所需的数据存储器,例如内存和/或磁盘。(3)软件,包括数据库管理系统(databasemanagementsystem,dbms),dbms是数据库系统的核心软件,是用于科学地组织和存储数据,以及高效获取和维护数据的系统软件,数据库引擎是dbms的核心内容。121.具体地,如图1a-1c所示,图1a为单机数据库系统示意图,包括一个数据库管理系统和数据存储器(datastore),该数据库管理系统用于提供数据库的查询和修改等服务,该数据库管理系统将数据存储到数据存储器中。在单机数据库系统中,数据库管理系统和数据存储器通常位于单一服务器上,比如一台对称多处理(symmetricmulti-processor,smp)服务器。该smp服务器包括多个处理器,所有的处理器共享资源,如总线,内存和i/o系统等。数据库管理系统的功能可由一个或多个处理器执行内存中的程序来实现。122.图1b为采用共享磁盘(shared-storage)架构的集群数据库系统示意图,包括多个节点(如图1b中的节点1-n),每个节点部署有数据库管理系统,分别为用户提供数据库的查询和修改等服务,多个数据库管理系统存储有共享的数据在共享数据存储器中,并且通过交换机对数据存储器中的数据执行读写操作。共享数据存储器可以为共享磁盘阵列。集群数据库系统中的节点可以为物理机,比如数据库服务器,也可以为运行在抽象硬件资源上的虚拟机。若节点为物理机,则交换机为存储区网络(storageareanetwork,san)交换机、以太网交换机,光纤交换机或其它物理交换设备。若节点为虚拟机,则交换机为虚拟交换机。123.图1c为采用无共享(shared-nothing)架构的集群数据库系统示意图,每个节点具有各自独享的硬件资源(如数据存储器)、操作系统和数据库,节点之间通过网络来通信。该体系下,数据将根据数据库模型和应用特点被分配到各个节点上,查询任务将被分割成若干部分,在所有节点上并行执行,彼此协同计算,作为整体提供数据库服务,所有通信功能都在一个高宽带网络互联体系上实现。如同图1b所描述的无共享架构的集群数据库系统一样,这里的节点既可以是物理机,也可以是虚拟机。124.在本技术所有实施例中,数据库系统的数据存储器包括但不限于固态硬盘(solidstatedisk,ssd)、磁盘阵列或其他类型的非瞬态计算机可读介质。图1a-1c中虽未示出数据库,应理解,数据库存储在数据存储器中。所属领域的技术人员可以理解一个数据库系统可能包括比图1a-1c中所示的部件更少或更多的组件,或者包括与图1a-1c中所示组件不同的组件,图1a‑ꢀ1c仅仅示出了与本技术实施例所公开的实现方式更加相关的组件。例如,虽然图1b和1c中已经描述了4个节点,但所属领域的技术人员可理解成一个集群数据库系统可包含任何数量的节点。各节点的数据库管理系统功能可分别由运行在各节点上的软件、硬件和/或固件的适当组合来实现。125.为了便于理解和描述,作为示例而非限定,下面以无共享架构集群数据库系统中一个节点,即数据库服务器为例说明本技术实施例的方案。但是本领域技术人员根据本技术实施例的教导可以很清楚地理解,本技术实施例的方法同样可以应用于shared-storage架构的集群数据库系统,单机数据库系统,以及任何类型的关系型数据库系统。126.如图2所示,本技术实施例提供一种数据库服务器100,包括:至少一个处理器104、存储可执行代码的非瞬态计算机可读介质(non-transitorycomputer-readablemedium)106和数据库管理系统108。所述可执行代码在被至少一个处理器104执行时被配置为实现数据库管理系统108的组件和功能。非瞬态计算机可读介质106可以包括一个或多个非易失性存储器,作为示例,非易失性存储器包括半导体存储器设备,例如可擦可编程只读存储器(erasableprogrammablereadonlymemory,eprom),电可擦只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)和闪存(flashmemory);磁盘,例如内部硬盘(internalharddisk)或可移动磁盘(removabledisk),磁光盘(magnetoopticaldisk),以及只读光盘(compactdiscread-onlymemory,cd-rom)和数字只读光盘(digitalvideodisc-readonlymemory,dvd-rom)。127.此外,非瞬态计算机可读介质106还可以包括被配置为主存储器(mainmemory)的任何设备。至少一个处理器104可以包括任何类型的通用计算电路或专用逻辑电路,例如现场可编程门阵列(fieldprogrammablegatearray,fpga)或专用集成电路(applicationspecificintegratedcircuit,asic)。至少一个处理器104也可以是耦合到一个或多个半导体基板的一个或多个处理器,例如中央处理器(centralprocessingunit,cpu)。128.数据库管理系统108可以是关系型数据库管理系统(relationaldatabasemanagementsystem,rdbms)。数据库管理系统108支持结构化查询语言(structuredquerylanguage,sql)。通常,sql是指专门用于管理关系型数据库中保存的数据的专用编程语言。sql可以指代各种类型的数据相关语言,包括例如数据定义语言和数据操纵语言,其中sql的范围可以包括数据插入,查询,更新和删除,模式创建和修改以及数据访问控制。此外,在一些示例中,sql可以包括与各种语言元素相关的描述,包括子句(clause),表达式(expression),谓词(predicate),查询(query)和语句(statement)。例如,子句可以指语句和查询的各种组成部分,并且在一些情况下,子句可以被认为是可选的。此外,表达式可以被配置为产生包括数据列和/或行的标量值(scalarvalue)和/或表。另外,谓词可经配置以指定条件,以用于调节语句和查询的效果。129.查询(query)是请求查看,访问和/或操纵存储在数据库中的数据。数据库管理系统108可以从数据库客户端102接收sql格式的查询(称为sql查询)。通常,数据库管理系统108通过从数据库访问相关数据并操纵相关数据以生成查询所对应的查询结果,并将查询结果返回到数据库客户端102。数据库是按一定的数学模型组织、描述和存储的数据集合,数据库可以包括一个或多个数据库结构或格式,例如行存储和列存储。数据库通常存储于数据存储器中,比如图2中的外部数据存储器120,或者非瞬态计算机可读介质106。当数据库存储于非瞬态计算机可读介质106时,数据库管理系统108为内存数据库管理系统。130.数据库客户端102可以包括被配置成与数据库管理系统108交互的任何类型的设备或应用程序。在一些示例中,数据库客户端102包括一个或多个应用服务器。131.数据库管理系统108包括sql引擎110、执行引擎122和存储引擎134。sql引擎110根据客户端102提交的sql语句,例如查询(query),生成对应的执行计划,执行引擎122依照语句的执行计划进行操作,以产生查询结果。存储引擎134负责在文件系统之上,管理表的数据、索引的实际内容,同时也会管理运行时的cache、buffer、事务、log等数据。例如存储引擎134可以将执行引擎122的执行结果通过物理i/o写入数据存储器120。sql引擎110包括解析器112和优化器114,其中,解析器110用于执行对sql语句的语法、语义分析,将查询中的视图展开、划分为小的查询块。优化器114为语句生成一组可能被使用的执行计划,估算出每个执行计划的代价,比较计划的代价,最终选择一个代价最小的执行计划。132.在应用过程中,数据库通常需要具备四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability),这四个特性可简称为acid特性。另外,事务指的是对数据库进行操作的基本执行单元,一个事务可能包含一个或者多个sql语句。133.其中,数据库的acid特性中的原子性指的是,一个事务中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。如果一个事务在执行过程中发生错误,会被恢复到该事务开始前的状态,就像这个事务从来没有执行过一样,即事务不可分割和不可约简。134.acid特性中的一致性指的是,在事务开始之前和事务结束以后,数据库的完整性没有被破坏。135.acid特性中的隔离性指的是,数据库允许多个并发事务同时对数据库内的数据进行读写和修改,隔离性能够防止这多个事务并发执行时,由于交叉执行而导致的数据不一致,并且,隔离型可分为不同的级别,分别包括:读未提交(readuncommitted)、读已提交(readcommitted)、可重复读(repeatableread)和串行化(serializable)。136.acid特性中的持久性指的是,某一事务执行结束后,该事务对数据库内的数据的修改就是永久的,即便系统故障也不会丢失。137.为了保障数据库的acid特性,数据库管理系统通常为数据库配置日志,该日志用于记录事务对数据库中的数据所做的修改,并且数据库管理系统会根据自身应用的时间戳模式,为数据库的各个事务分配相应的时间戳,以便在日志中记录各个时间戳下的数据快照。结合各个事务的时间戳以及所述日志,能够确定各个时间戳下的数据快照,便于实现数据恢复和数据回滚等,从而保障数据库的acid特性。138.其中,数据库管理系统应用的时间戳模式,指的是数据库管理系统为数据库对应的事务分配时间戳时,所采用的的时间戳模式。数据库管理系统应用的时间戳模式通常包括三种:逻辑时间戳(logicaltimestamp)模式、物理时间戳(physicaltimestamp)模式和混合时间戳(hybridlogicaltimestamp)模式。相应的,通过逻辑时间戳模式所确定的时间戳即为逻辑时间戳,逻辑时间戳也可称为逻辑时钟。逻辑时间戳根据计数器的计数表示事件的先后顺序,通过该计数器,能够保障整个数据库的逻辑时间戳单调递增,不易受到系统的物理时间跳变的影响。因此,对于使用逻辑时间戳模式的数据库管理系统来说,数据库管理系统通常为该数据库设置一个计数器。139.随着数据库需要存储的数据量的增加,目前许多数据库为分布式数据库,分布式数据库往往包含多个用于存储数据的节点,也就是说,分布式数据库中的数据存储在多个节点中。在一种可行的设计中,数据库管理系统为通常所述分布式数据库的其中一个节点配置有计数器的功能,该节点可称为中心节点,并通过所述中心节点为其他节点分配逻辑时间戳,即中心节点可用于分配逻辑时间戳的计数器。140.通过物理时间戳模式所确定的时间戳即为物理时间戳,物理时间戳也可称为物理时钟。其中,物理时间指的是真实的物理世界的时间,如果数据库管理系统采用的时间戳模式为物理时间戳模式,则该数据库管理系统需要配置能够确定物理时间的时间装置,例如全球定位系统(globalpositioningsystem,gps)和原子钟,以便通过gps和原子钟,确定物理时间,进一步确定各个事务的物理时间戳。141.因此,对于应用物理时间戳的数据库管理系统来说,需要为该数据库配置用于确定物理时间的时间装置,并且,所述时间装置的精度往往影响获取到的物理时间戳的精度。142.另外,通过混合时间戳模式所确定的时间戳即为混合时间戳,混合时间戳也可称为混合时钟,混合时间戳由物理时间戳和逻辑时间戳共同组合而成。143.目前,一个数据库管理系统通常只应用其中一种时间戳模式。例如,甲骨文公司经营的数据库(即oracle数据库)的数据库管理系统应用的是逻辑时间戳,谷歌公司研发的数据库(即spanner数据库)的数据库管理系统应用的是物理时间戳,而cockroach数据库(即cockroachdb)的数据库管理系统应用的是混合时间戳。144.根据上述对各类型的时间戳模式的介绍可知,不同的时间戳模式所适用的应用环境不同。但是,在数据库的使用过程中,数据库管理系统的应用环境会发生变化,导致数据库管理系统应用的时间戳模式有时无法适应数据库管理系统变化后的应用环境,从而出现数据库管理系统应用不合适的时间戳模式的现象。145.其中,对于使用逻辑时间戳模式的数据库管理系统来说,随着数据库的使用,所述数据库中的数据量往往会增加,并且所述数据库进行扩容,需要分配逻辑时间戳的节点增多,从而会导致中心节点在为数据库的节点分配逻辑时间戳时出现时延,具有计数功能的中心节点成为影响数据库管理系统的性能瓶颈,降低事务实现的效率,甚至有时会提供错误的逻辑时间戳,从而导致数据库管理系统不再适用逻辑时间戳模式。146.另外,对于使用物理时间戳模式的数据库来说,需要该数据库管理系统配置确定物理时间的时间装置。而时间装置的准确性会受到系统时间的跳变的影响,并且时间装置确定的物理时间存在一定的误差,如果两个事务发生的时间差在误差范围内,为了确定两个事务的先后顺序,往往需要为其中一个事务分配物理时间戳,然后在等待一段时间之后,再为另外一个事务分配相应的物理时间戳,从而在为这两个事务分配物理时间戳时存在时延现象,进一步的会降低事务实现的效率,即该数据库管理系统不再适用物理时间戳模式。147.例如,设定某一使用物理时间戳模式的数据库管理系统的时间装置的误差范围为6微秒,而事务1与事务2的时间间隔在6微秒之间,则为了区分事务1和事务2的先后顺序,可先为其中的事务1分配物理时间戳,再等待6微秒或更长时间之后,再为其中的事务2分配相应的物理时间戳,以便区分事务1和事务2在实现上的先后顺序。因此,需要等待一段时间才能为误差范围内的事务分配相应的物理时间戳,导致事务实现的效率降低。148.混合时间戳模式结合了物理时间戳和逻辑时间戳,与物理时间戳模式相比,混合时间戳模式能够容忍的物理时间的误差增大。但是,如果数据库管理系统用于确定物理时间的时间装置的误差较大,仍会影响混合时间戳的确定,导致数据库管理系统不再适用混合时间戳。149.根据上述介绍可知,随着数据库管理系统的应用环境的变化,数据库管理系统应用的时间戳模式有时无法适应数据库管理系统变化后的应用环境,从而导致数据库管理系统应用不合适的时间戳模式。另外,如果数据库管理系统的开发者为数据库管理系统设置不合适的时间戳模式,也会导致所述数据库管理系统应用不合适的时间戳模式。150.进一步的,如果所述数据库管理系统应用不合适的时间戳模式,往往会导致无法为数据库的事务分配正确的时间戳,从而影响到事务的实现,降低事务实现的可靠性。151.基于以上描述的数据库管理系统108,如图3所示,本技术实施例提供一种数据库管理系统的时间戳模式确定方法,包括:152.步骤s11、获取第一设置命令。153.其中,所述第一设置命令包括指示第一时间戳模式的时间戳信息,所述第一时间戳模式与数据库管理系统在当前的应用环境相匹配。154.在本技术实施例中,第一时间戳模式与数据库管理系统在当前的应用环境相匹配,指的是在当前的应用环境下,数据库管理系统适用第一时间戳模式。155.其中,该应用环境可通过数据库管理系统的获取物理时间的时间装置的准确度,和/或数据库管理系统配置的计数器的性能体现。在不同的应用环境下,数据库管理系统所适用的时间戳模式往往不同。为了明确不同的应用环境下,数据库管理系统所适用的时间戳模式,本申请提供表1:156.表1[0157][0158]参见表1,逻辑时间戳模式要求数据库管理系统配置的计数器具有较高的性能,即使数据库扩容,该计数器在为数据库中各个节点分配逻辑时间戳时,也不会出现较大时延,这种情况下,如果当前的应用环境下,该计数器的性能较高,能够满足在为数据库中各个节点分配逻辑时间戳时,时延较小的条件,则表明逻辑时间戳模式与数据库管理系统在当前的应用环境相匹配,相应的,所述第一时间戳模式为逻辑时间戳模式。如果所述具有计数器功能的节点性能不高,在为数据库中的各个节点分配逻辑时间戳时,会出现较大的时延,则表明逻辑时间戳模式与数据库管理系统在当前的应用环境不匹配。[0159]另外,所述物理时间戳模式要求数据库管理系统确定物理时间的时间装置具有较高的准确度,以保障确定物理时间的准确性。因此,如果当前的应用环境表示该时间装置具有高准确度,则可确定物理时间戳模式与数据库管理系统在当前的应用环境相匹配,相应的,所述第一时间戳模式为物理时间戳模式。如果该时间装置的准确度较低,则物理时间戳模式与数据库管理系统在当前的应用环境不匹配。[0160]与逻辑时间戳模式相比,混合时间戳模式对具有计数器功能的节点的性能要求稍低,以及与物理时间戳模式相比,混合时间戳模式对时间装置的准确性要求稍低,这种情况下,如果所述计数器的性能中等,以及所述时间装置的准确性中等,则表明混合时间戳模式与数据库管理系统在当前的应用环境相匹配,相应的,所述第一时间戳模式为混合时间戳模式。[0161]在本技术实施例中,可通过多种方式获取所述第一设置命令。在一种可行的实现方式中,数据库的数据库管理系统可根据当前的应用环境,确定数据库管理系统在当前的应用的环境下适用的时间戳模式,该时间戳模式即为第一时间戳模式,并据此确定第一设置命令。或者,数据库的数据库管理系统也可接收用于指示第一时间戳模式的sql语句,将该sql语句作为第一设置命令。[0162]其中,如果所述第一设置命令为sql语句,则该sql语句可为多种类型。例如,所述sql语句可为用于创建数据库的sql语句,或者,还可以为创建数据库内的表对象、对所述数据库进行增加、修改、删除或查询等操作的sql语句,本技术实施例对此不作限定。[0163]另外,在所述第一设置命令中,包含第一时间戳模式的相关信息,该相关信息可为所述第一时间戳模式对应的字段。这种情况下,可设置不同时间戳模式与字段之间的对应关系。在获取所述第一设置命令之后,根据所述对应关系以及所述第一设置命令中加载的字段,即可确定所述第一设置命令指示的第一时间戳模式。[0164]示例性的,可设置逻辑时间戳模式对应的字段为“logic”,物理时间戳模式对应的字段为“physical”,混合逻辑时间戳模式对应的字段为“hlc”。这种情况下,如果所述第一设置命令中包括“logic”字段,则可确定所述第一时间戳模式为逻辑时间戳模式。[0165]当然,所述第一时间戳模式的相关信息还可以为其他能够区分不同时间戳模式的信息,本技术实施例对此不作限定。[0166]步骤s12、设置所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式。[0167]响应于所述第一设置命令,数据库管理系统将所述第一设置命令指示的第一时间戳模式作为数据库管理系统应用的目标时间戳模式。也就是说,在确定所述目标时间戳模式之后,数据库管理系统通过所述目标时间戳模式,为数据库管理系统的事务分配相应的时间戳。[0168]其中,在本技术实施例提供的方案中,在确定所述第一时间戳模式之后,数据库管理系统可存储所述第一时间戳模式,并为所述第一时间戳模式配置目标标签。在存储所述第一时间戳模式之后,如果需要为数据库的某一个事务分配时间戳,数据库管理系统可通过查询存储的内容,确定配置有目标标签的时间戳模式为所述数据库管理系统应用的目标时间戳模式,再根据所述目标时间戳模式为所述数据库管理系统的事务分配相应的时间戳。[0169]另外,所述第一时间戳模式可为物理时间戳模式、逻辑时间戳模式和混合时间戳模式中的一种时间戳模式。也就是说,在本技术实施例提供的方案中,数据库管理系统可支持多种形式的时间戳模式。其中,如果所述第一时间戳模式为物理时间戳模式,则为数据库管理系统的事务分配相应的物理时间戳;如果所述第一时间戳模式为逻辑时间戳模式,则为所述数据库管理系统的事务分配相应的逻辑时间戳;如果所述第一时间戳模式为混合时间戳模式,则为所述数据库管理系统的事务分配相应的混合时间戳。[0170]通过本技术实施例提供的数据库管理系统的时间戳模式确定方法,能够获取第一设置命令,并根据第一设置命令的指示,确定数据库管理系统应用的目标时间戳模式,其中,所述目标时间戳模式为第一设置命令指示的第一时间戳模式,而第一时间戳模式与数据库管理系统在当前的应用环境相匹配。[0171]在现有技术中,数据库管理系统通常应用一种时间戳模式,并且,即使数据库管理系统的应用环境发生变化,数据库管理系统应用的时间戳模式通常也不会发生变化。这种情况下,随着数据库管理系统的应用环境的变化,数据库管理系统应用的时间戳模式往往会出现不适用的现象。[0172]而通过本技术实施例提供的方案,数据库管理系统可根据第一设置命令,对所述数据库管理系统应用的时间戳模式进行设置,这种情况下,所述数据库管理系统应用的时间戳模式不再固定不变,而是能够支持多种形式的时间戳模式,并且,数据库管理系统应用的目标时间戳模式与数据库管理系统在当前的应用环境相匹配,即第一时间戳对于所述数据库管理系统来说是适用的,从而减少所述数据库管理系统应用不适用的时间戳模式的现象。[0173]进一步的,由于本技术实施例提供的方案能够减少所述数据库管理系统应用不适用的时间戳模式的现象,因此,还能够提高实现数据库管理系统的事务的可靠性。[0174]在上述实施例中,提供了一种数据库管理系统的时间戳模式确定方法,通过该方法,可根据第一设置命令的指示,设置相应的目标时间戳模式。其中,所述第一设置命令可为多种形式。[0175]其中,在一种可行的实现方式中,所述第一设置命令可为sql语句,这种情况下,所述第一设置命令还可具备其他用途。例如,所述第一设置命令可为用于指示创建数据库的sql语句,从而能够根据第一设置命令创建相应的数据库后,再根据第一设置命令指示的第一时间戳,为该数据库管理系统的事务分配相应的时间戳;或者,所述第一设置命令还可为用于指示创建数据库的表对象的sql语句,这种情况下,可根据第一设置命令创建数据库中的表对象,并根据第一时间戳模式,为创建表对象的事务分配相应的时间戳;另外,所述第一设置命令还可为用于对所述数据库中的数据进行增加、修改、删除或查询的sql语句,这种情况下,可根据第一设置命令对数据库进行相应的增加、修改、删除或查询,并根据第一时间戳模式,为对对数据库进行相应的增加、修改、删除或查询的事务分配相应的时间戳。[0176]如果所述第一设置命令为第一sql语句,并且所述第一sql语句包括所述数据库的属性信息,则可通过所述第一设置命令创建相应的数据库。其中,所述数据库的属性信息至少包括所述数据库的名称,当然,所述数据库的属性信息还可以包括用于创建所述数据库的其他信息,例如,所述属性信息还可以包括所述数据库的大小和数据库的字符体(例如中文或英文)等信息,本技术实施例对此不作限定。[0177]这种情况下,参见图4所示的工作流程示意图,本技术实施例提供的方案还包括以下步骤:[0178]步骤s13、根据所述属性信息,创建所述数据库。[0179]在图4所示的示意图中,先执行步骤s12的操作,即设置所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式,然后再执行步骤s13的操作,即根据所述第一设置命令指示的数据数据库的属性信息,创建所述数据库的操作。而在实际的应用中,步骤s12与步骤s13之间没有严格的时间先后限制,例如,也可先创建数据库,然后再设置所述第一时间戳模式为所述目标时间戳模式,或者,步骤s12与步骤s13也可同步进行,本技术实施例对此不作限定。[0180]在确定所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式之后,在数据库管理系统的运行过程中,可通过所述第一时间戳模式,为数据库管理系统的事务分配相应的时间戳。[0181]为了明确为事务分配时间戳的方式,参见图5所示的工作流程示意图,本技术实施例还公开以下步骤:[0182]步骤s14、接收用于创建表对象的第二sql语句。[0183]其中,所述第二sql语句对应于创建表对象事务,所述第二sql语句可包括所述数据库中的表对象的属性信息。所述表对象的属性信息通常包括所述表对象的表名称、所述表对象中包括的各个字段的名称和所述各个字段的类型。[0184]一个数据库中,可以包括一个或更多表对象。这种情况下,所述第二sql语句可用于在数据库中创建一个或多个表对象,相应的,所述第二sql语句可包括一个或多个表对象的属性信息。[0185]步骤s15、根据所述第一时间戳模式,确定所述创建表对象事务的第一开始时间戳。[0186]在接收到用于创建表对象的第二sql语句之后,数据库管理系统需要执行第二sql语句对应的创建表对象事务,以创建数据库的表对象。由于所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式,因此,需要通过所述第一时间戳模式为所述创建表对象事务分配时间戳。[0187]在本技术实施例中,数据库管理系统在确定所述第一时间戳模式之后,可存储所述第一时间戳模式,当需要分配时间戳时,通过查询存储的内容,可确定数据库管理系统应用的第一时间戳模式,继而根据所述第一时间戳模式为数据库管理系统的事务分配相应的时间戳。[0188]步骤s16、通过执行所述创建表对象事务,创建所述表对象。[0189]在为所述创建表对象事务分配第一开始时间戳之后,数据库管理系统可执行所述创建表对象事务,以创建所述数据库的一个或多个表对象。[0190]步骤s17、根据所述第一时间戳模式,确定所述创建表对象事务的第一结束时间戳。[0191]也就是说,在本技术实施例中,在完成所述表对象的创建之后,为所述创建表对象事务分配第一结束时间戳。[0192]通过步骤s14至步骤s17的操作,能够根据接收到的第二sql语句,为数据库创建相应的表对象,并且,根据第一时间戳模式,为创建表对象事务分配相应的时间戳。[0193]在步骤s14至步骤s17所对应的实施例中,所述第二sql语句为用于创建数据库中的表对象的sql语句。另外,在数据库管理系统的运行过程中,也可获取其他类型的sql语句,并根据所述第一时间戳模式为所述其他类型的sql语句对应的事务分配相应的时间戳。例如,在确定所述第一时间戳模式为目标时间戳模式之后,还可通过所述第一时间戳模式,为增加、删除或查询数据库中的数据的事务分配相应的时间戳,本技术实施例对此不作限定。[0194]另外,在设置所述第一时间戳为所述数据库的目标时间戳模式之后,所述数据库管理系统的应用环境可能会发生变化,从而导致数据库管理系统在运行一段时间之后,不再适用所述第一时间戳模式。例如,如果所述第一时间戳模式为逻辑时间戳模式,但是随着数据库的运行,所述数据库包含的数据量增加,所述数据库随之扩容,这可能导致为数据库的节点分配逻辑时间戳时出现时延,则数据库管理系统不再适用所述逻辑时间戳模式。[0195]为了解决这一问题,参见图6所示的工作流程示意图,本技术实施例还公开以下步骤:[0196]步骤s18、在所述数据库管理系统的应用环境变化后,获取第二设置命令。[0197]其中,所述第二设置命令包括指示第二时间戳模式的时间戳信息,所述第二时间戳模式与变化后的应用环境相匹配。[0198]在数据库运行过程中,如果数据库管理系统当前应用的目标时间戳模式不再适用,则可以获取所述第二设置命令,以便根据所述第二设置命令对所述数据库管理系统应用的目标时间戳模式进行调整。这种情况下,由于所述第二时间戳模式与变化后的应用环境相匹配,因此,在数据库管理系统的应用环境变化之后,所述第二时间戳模式对于所述数据库管理系统来说是适用的。[0199]步骤s19、将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式。[0200]其中,所述目标时间戳模式为所述数据库管理系统应用的时间戳模式。在将所述第二时间戳模式调整为所述目标时间戳模式之后,数据库管理系统会根据所述第二时间戳模式,为所述数据库的事务分配相应的时间戳。[0201]如果数据库管理系统之前存储有第一时间戳模式,并为所述第一时间戳模式配置有目标标签,则将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式的过程中,需要存储所述第二时间戳模式,并将所述目标标签调整至第二时间戳模式。[0202]通过步骤s18至步骤s19的操作,能够将数据库管理系统应用的第一时间戳模式切换至第二时间戳模式,因此,即使数据库管理系统的应用环境发生变化,也可实现所述数据库管理系统应用的时间戳模式的切换,并且切换后的时间戳模式适应当前的应用环境,从而减少数据库管理系统应用不合适的时间戳模式的现象。[0203]进一步的,由于上述实施例提供的切换时间戳模式的方案能够减少数据库管理系统应用不合适的时间戳模式的现象,因此,还能够提高数据库管理系统的事务的实现的可靠性。[0204]为了明确本技术实施例提供的方案的优势,将本技术实施例提供的方案与现有技术常用的几种数据库管理系统进行对比,并根据对比结果提供以下的表2:[0205]表2[0206]多种时间戳模式切换时间戳模式oracle不支持不支持spanner不支持不支持cockroach不支持不支持本技术方案支持支持[0207]其中,表2表示,与应用本技术实施例的数据库管理系统进行对比的现有数据库管理系统分别为:oracle数据库的数据库管理系统、spanner数据库的数据库管理系统和cockroach数据库的数据库管理系统,而oracle数据库的数据库管理系统、spanner数据库的数据库管理系统和cockroach数据库的数据库管理系统均不支持多种时间戳模式,并且,这三种数据库的数据库管理系统不支持对时间戳模式进行切换,也就是说,这三种数据库管理系统应用的时间戳模式是固定不变的。因此,在数据库管理系统的应用环境发生变化之后,数据库管理系统应用的时间戳模式往往不再适用。[0208]而应用本技术实施例的数据库管理系统支持多种时间戳模式,并且支持对数据库管理系统应用的时间戳模式进行切换。因此,与现有技术中的数据库相比,本技术实施例的方案能够有效减少数据库管理系统应用不合适的时间戳模式的现象,并且进一步提高事务的实现的可靠性。[0209]在上述实施例中,提供了将第二设置命令指示的第二时间戳模式调整为目标时间戳模式的操作,该操作可通过以下步骤实现:[0210]第一步,存储所述第二时间戳模式;[0211]第二步,重启所述数据库管理系统,其中,在数据库管理系统的重启过程中,会对数据库进行数据恢复,以避免数据库中的数据丢失;[0212]第三步,在完成所述数据库管理系统的重启之后,设置存储的所述第二时间戳模式为所述目标时间戳模式。[0213]通过上述步骤,能够在确定指示所述第二时间戳模式的第二设置命令之后,对所述数据库管理系统进行重启,并在所述数据库管理系统完成重启之后,将数据库管理系统应用的时间戳模式切换至第二时间戳模式,从而实现将数据库管理系统的目标时间戳模式由第一时间戳模式切换至第二时间戳模式。[0214]进一步的,在本技术实施例中,还包括以下步骤:[0215]在所述重启所述数据库管理系统之前,确定所述第一时间戳模式与所述第二时间戳模式不同。[0216]其中,所述第一时间戳模式往往存储至存储介质中,该存储介质可为数据存储器。该步骤中,可读取所述存储介质中存储的所述第一时间戳模式,再将所述第一时间戳模式与所述第二时间戳模式进行对比。如果所述第一时间戳模式与所述第二时间戳模式不同,再重启所述数据库管理系统,以便将所述目标时间戳模式由第一时间戳模式调整为第二时间戳模式。[0217]另外,如果所述第一时间戳模式与所述第二时间戳模式相同,则可继续应用所述第一时间戳模式为所述数据库管理系统的事务分配时间戳,无需重启数据库管理系统,从而能够减少数据库管理系统的重启操作。[0218]通过上述实施例提供的方案,可将所述数据库管理系统的目标时间戳模式切换为第二时间戳模式,在完成切换之后,再通过所述第二时间戳模式为事务分配相应的时间戳。为了明确通过所述第二时间戳模式分配时间戳的方式,参见图7所示的工作流程示意图,本技术实施例提供还包括以下步骤:[0219]步骤s21、在设置所述第二时间戳模式为所述目标时间戳模式之后,接收第三sql语句。[0220]其中,所述第三sql语句可用于对数据库进行操作,针对所述数据库进行的操作,可为创建所述数据库中的表对象、增加所述数据库中的数据、删除所述数据库中的数据、修改所述数据库中的数据和查询所述数据库中数据等,本技术实施例对此不作限定。[0221]步骤s22、根据所述第二时间戳模式,确定所述第三sql语句对应的事务的第二开始时间戳。[0222]由于所述第二时间戳模式存储在存储介质中,因此,在该步骤中,可通过读取存储的内容,确定所述第二时间戳模式,再通过所述第二时间戳模式确定所述第二开始时间戳。[0223]步骤s23、根据所述第二时间戳模式,确定所述第三sql语句对应的事务的第二结束时间戳。[0224]通过步骤s21至步骤s23的操作,能够在将所述数据库管理系统应用的目标时间戳模式由第一时间戳模式切换至第二时间戳模式之后,通过所述第二时间戳模式,为所述数据库管理系统的事务分配相应的时间戳。[0225]进一步的,在本技术实施例中,还包括以下步骤:[0226]存储通过所述第一时间戳模式分配的第一最大时间戳。[0227]在本技术实施例提供的方案中,在存储所述第一最大时间戳之后,还可应用所述第一最大时间戳。[0228]这种情况下,在本技术实施例提供的方案中,所述第一时间戳模式为逻辑时间戳模式,还包括以下步骤:[0229]再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;[0230]基于所述第一最大时间戳,为所述数据库管理系统的事务分配逻辑时间戳。[0231]其中,如果所述第一时间戳模式为逻辑时间戳模式,则存储的第一最大时间戳戳为逻辑时间戳,这种情况下,如果再次将目标时间戳模式调整为逻辑时间戳模式,则需要在所述第一最大时间戳的基础上为事务分配时间戳。[0232]或者,在本技术实施例提供的方案中,所述第一时间戳模式为物理时间戳模式,参见图8所示的工作流程示意图,还可以包括以下步骤:[0233]步骤s24、再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;[0234]步骤s25、确定将所述目标时间戳模式再次设置为所述第一时间戳模式的目标时间;[0235]步骤s26、确定所述第一最大时间戳指示的时间是否早于所述目标时间,若是,执行步骤s27的操作。[0236]步骤s27、如果所述第一最大时间戳指示的时间早于所述目标时间,通过所述第一时间戳模式为所述数据库管理系统的事务分配物理时间戳。[0237]如果所述第一时间戳模式为物理时间戳模式,则存储的第一最大时间戳为物理时间戳,这种情况下,可通过比较所述第一最大时间戳与所述目标时间,确定数据库管理系统用于确定物理时间的时间装置是否准确。[0238]在本技术实施例提供的这一数据库的应用场景中,在初始阶段,数据库管理系统应用物理时间戳模式,后续对数据库管理系统应用的时间戳模式进行了切换,以使数据库管理系统应用逻辑时间戳模式或混合时间戳模式,并且,在步骤s24中,再次将数据库管理系统应用的时间戳模式切换至物理时间戳模式。也就是说,在确定所述第一最大时间戳之后,已经至少经历了两次时间戳模式的切换,才确定所述目标时间。因此,第一最大时间戳指示的时间应该早于所述目标时间。如果通过步骤s26的比较,确定所述第一最大时间戳指示的时间不早于所述目标时间,则表明数据库管理系统配置的用于确定物理时间的时间装置不准确,这种情况下,为事务分配的时间戳可能为错误的时间戳。因此,在本技术实施例中,在确定所述第一最大时间戳早于所述目标时间时,再通过所述物理时间戳模式为数据库的事务分配物理时间戳,从而提高时间戳的准确性。[0239]进一步的,在本技术实施例中,如果根据步骤s26的操作,确定所述第一最大时间戳指示的时间不早于所述目标时间,还可以执行以下步骤:[0240]步骤s28、如果所述第一最大时间戳指示的时间不早于所述目标时间,获取第三设置命令。[0241]其中,所述第三设置命令包括指示第三时间戳模式的时间戳信息,所述第三时间戳模式与所述第一时间戳模式不同。[0242]所述第一最大时间戳指示的时间不早于所述目标时间,包括所述第一最大时间戳指示的时间等于所述目标时间,或者所述第一最大时间戳指示的时间晚于所述目标时间这两种情况,这两种情况均表明数据库管理系统配置的用于确定物理时间的时间装置不准确,如果数据库管理系统继续采用物理时间戳模式,往往会分配错误的时间戳。[0243]因此,在确定所述第一最大时间戳指示的时间不早于所述目标时间,可获取第三设置命令,以便通过第三设置命令切换所述数据库管理系统应用的时间戳模式。[0244]步骤s29、设置所述第三时间戳模式为所述数据库管理系统应用的目标时间戳模式。[0245]其中,所述第三时间戳模式与所述第一时间戳模式不同,以避免数据库管理系统继续应用不准确的物理时间戳模式。[0246]通过步骤s24至步骤s29对应的实施例,能够在数据库管理系统切换至物理时间戳模式,并且确定数据库管理系统配置的用于确定物理时间的时间装置不准确之后,将数据库管理系统应用的物理时间戳模式切换至其他的时间戳模式,以避免数据库管理系统应用不准确的物理时间戳模式。[0247]或者,在本技术另一个可行的实现方式中,如果所述第一时间戳模式为物理时间戳模式,并且所述第一最大时间戳指示的时间不早于所述目标时间,暂停分配时间戳,并生成提示信息,以提示数据库管理系统的维护人员对该时间装置进行检修。[0248]为了明确在本技术实施例中,存储第一最大时间戳的作用,以下公开数据库管理系统应用中的不同切换场景:[0249]切换场景一:所述第一时间戳模式为逻辑时间戳模式,切换之后的第二时间戳模式为混合时间戳模式或物理时间戳模式,这一切换场景中,会存储所述第一时间戳模式所分配的最大的逻辑时间戳(即所述第一最大时间戳)。[0250]在数据库管理系统的目标时间戳模式由第一时间戳模式切换至第二时间戳模式之后,数据库管理系统继续运行,并在运行过程中,通过所述第二时间戳模式为所述数据库管理系统的事务分配相应的时间戳。但是,在运行一段时间之后,所述数据库管理系统的应用环境可能会再次发生变化,导致所述第二时间戳模式不再适用。[0251]如果所述第二时间戳模式不再适用,则会确定新的设置命令,并根据新的设置命令,将所述数据库管理系统应用的目标时间戳调整为与所述第二时间戳模式不同的时间戳模式。[0252]在经过调整之后,如果所述数据库管理系统应用的目标时间戳模式再次设置为所述逻辑时间戳模式,则需要通过所述逻辑时间戳模式为所述数据库管理系统的事务分配逻辑时间戳。并且,在逻辑时间戳的分配过程中,需要在所述第一时间戳模式分配的最大的逻辑时间戳的基础上进行增加,根据增加的结果确定逻辑时间戳。[0253]例如,在该切换场景中,所述第一时间戳模式为切换之前的最后一个事务分配的最大的逻辑时间戳为5,再次将所述数据库管理系统应用的目标时间戳模式设置为所述逻辑时间戳模式之后,则通过所述逻辑时间戳模式分配事务的逻辑时间戳,并且,切换之后的逻辑时间戳模式所分配的所述逻辑时间戳需要在逻辑时间戳5的基础上增加,例如,切换之后的逻辑时间戳模式所分配的第一个逻辑时间戳可为6。[0254]切换场景二:所述第一时间戳模式为物理时间戳模式,切换之后的第二时间戳模式为逻辑时间戳模式或混合时间戳模式,该场景下需要存储所述第一时间戳模式所分配的最大的物理时间戳(即所述第一最大时间戳)。[0255]在将数据库的目标时间戳模式由第一时间戳模式切换至第二时间戳模式之后,数据库管理系统继续运行,并在运行过程中,通过所述第二时间戳模式为所述数据库管理系统的事务分配相应的时间戳。在运行一段时间之后,所述数据库管理系统的应用环境再次发生变化,导致所述第二时间戳模式不再适用。[0256]如果所述第二时间戳模式不再适用,则会确定新的设置命令,并根据新的设置命令,将所述数据库管理系统应用的目标时间戳调整为与所述第二时间戳模式不同的时间戳模式。[0257]在经过调整之后,所述数据库的目标时间戳模式可能调整为物理时间戳模式。这种情况下,可确定将所述目标时间戳模式再次设置为所述物理时间戳的目标时间,并比较所述第一最大时间戳与所述目标时间。如果比较结果表明所述第一最大时间戳早于所述目标时间,则所述数据库管理系统通过所述物理时间戳模式为事务分配物理时间戳。[0258]其中,由于在获取所述第一最大时间戳之后,才发生将所述数据库管理系统的目标时间戳模式再次设置为所述物理时间戳模式,因此,所述第一时间戳应早于所述目标时间。如果比较结果表明,所述第一最大时间戳不早于所述目标时间,则表明该数据库管理系统用于确定物理时间的时间装置发生故障,所述时间装置确定的物理时间不正确。这种情况下,可将数据库管理系统应用的时间戳模式切换至其他的时间戳模式,或者,为了避免分配错误的时间戳,可暂停时间戳的分配,进一步的,还可生成提示信息,以提示数据库的维护人员对所述时间装置进行检修。[0259]另外,在确定所述第一最大时间戳早于所述目标时间之后,才通过所述物理时间戳模式为所述数据库管理系统的事务分配物理时间戳,从而能够提高分配时间戳的正确性。[0260]例如,设定所述第一时间戳模式为物理时间戳模式,并且,所述第一最大时间戳为8月10日11:30,在所述数据库管理系统的目标时间戳模式切换为第二时间戳模式之后,在该切换场景中,所述数据库管理系统的目标时间戳模式再次调整为物理时间戳模式,并且,将所述目标时间戳模式再次设置为所述物理时间戳模式的目标时间为8月10日11:20,则所述第一最大时间戳晚于所述目标时间,这表明所述数据库管理系统用于确定时间的时间装置的准确性较差。这种情况下,可对数据库管理系统应用的时间戳模式进行切换。[0261]在本技术实施例中,提供了在数据库管理系统的应用环境变化之后,获取第二设置命令的操作,其中,所述第二设置命令用于指示目标时间戳模式切换至第二时间戳模式,并且,可通过多种方式获取所述第二设置命令。[0262]在其中一种可行的实现方式中,所述获取第二设置命令包括:接收来自客户端发送的第二设置命令。[0263]这一实现方式中,所述第二设置命令可为sql语句,所述数据库的运维人员在确定数据库管理系统的应用环境发生变化,可通过所述客户端,向数据库管理系统输入sql语句,以便所述数据库管理系统根据接收到的sql语句,对数据库管理系统应用的时间戳模式进行切换。[0264]或者,在另外一种可行的实现方式中,所述获取第二设置命令,包括以下步骤:[0265]第一步,确定所述数据库管理系统变化后的应用环境;[0266]第二步,根据应用环境与时间戳模式之间的映射关系,以及所述数据库管理系统变化后的应用环境,确定所述第二时间戳模式;[0267]第三步,根据确定的所述第二时间戳模式,生成所述第二设置命令。[0268]通过上述方案,能够使数据库管理系统根据应用环境的变化,为数据库管理系统生成相应的第二设置命令,保障数据库管理系统应用与变化后的应用环境相匹配的时间戳模式。[0269]根据上述对各种时间戳模式的介绍可知,不同时间戳模式适用于不同的应用环境。这种情况下,可设置不同的应用环境与时间戳模式之间的映射关系,并根据数据库管理系统在变化后的应用环境以及所述映射关系,确定变化后的应用环境适用的第二时间戳模式,并生成指示所述第二时间戳模式的第三设置命令。[0270]在一种应用环境与时间戳模式间的映射关系的示例中,参见表1,可设置在数据库管理系统配置的计数器的性能较高,为数据库中各个节点分配逻辑时间戳时的时延较小的应用环境下,所对应的时间戳模式为逻辑时间戳模式。相应的,如果数据库管理系统变化后的应用环境符合这一应用环境,所述第二设置命令包括指示逻辑时间戳模式的时间戳信息。[0271]另外,参见表1,在该映射关系的示例中,可设置在数据库管理系统配置的用于确定物理时间的时间装置具有较高的准确度时,所对应的时间戳模式为物理时间戳模式。相应的,如果数据库管理系统变化后的应用环境指示该时间装置的准确度较高,则可确定所述第二时间戳模式为物理时间戳模式,相应的所述第二设置命令包括指示物理时间戳模式的时间戳信息。[0272]与逻辑时间戳模式相比,混合时间戳模式对具有计数器功能的节点的性能要求稍低,以及与物理时间戳模式,混合时间戳模式对时间装置的准确性要求稍低,该映射关系可指示这种应用环境所对应的时间戳模式为混合时间戳模式。因此,如果数据库管理系统变化后的应用环境表明数据库管理系统配置的具有计数器功能的节点的性能中等,以及所述时间装置的准确性中等,则可确定所述第二时间戳模式为混合时间戳模式,相应的所述第二设置命令包括指示混合时间戳模式的时间戳信息。[0273]通过本技术实施例,可根据数据库管理系统的应用环境,确定数据库管理系统适用的第二时间戳模式,并获取相应的第二设置命令,根据所述第二设置命令将所述数据库管理系统应用的目标时间戳模式调整为所述第二时间戳模式,从而保障所述数据库管理系统应用符合当前的应用环境的时间戳模式,避免所述数据库管理系统应用不合适的时间戳模式。[0274]根据本技术的各个实施例,可知通过本技术实施例提供的方案,数据库管理系统可支持多种形式的时间戳模式,以及支持不同时间戳模式之间的切换。在切换过程中,所述数据库管理系统往往会获取指示不同时间戳模式的多个设置命令。[0275]为了确定数据库管理系统应用的目标时间戳模式,在本技术实施例提供的一种可行的实现方式中,在确定目标时间戳模式之后,往往存储该目标时间戳模式,并为该目标时间戳模式配置相应的目标标签。通过这一方式,如果需要为数据库的某一事务分配时间戳,则通过查询存储的时间戳模式是否具备目标标签,即可确定数据库管理系统应用的目标时间戳模式,并根据目标时间戳模式为所述数据库管理系统的事务分配相应的时间戳。[0276]其中,所述目标标签可为特定的字段,例如,所述目标标签可为“current_timestamp_mode”ꢀ字段,当然所述目标标签也可为其他字段,本技术实施例对此不作限定。[0277]这种情况下,在获取第一设置命令之后,可存储所述设置命令指示的第一时间戳模式,并为存储的所述第一时间戳模式分配用于表征目标时间戳模式的目标标签。[0278]另外,在设置所述第二设置命令指示的第二时间戳模式为所述目标时间戳模式的过程中,可存储所述第二时间戳模式,并为所述第二时间戳模式设置所述目标标签,以及取消所述第一时间戳模式的目标标签。[0279]在另一种可行的实现方式中,可通过特定的存储顺序存储各个设置命令指示的时间戳模式,并根据所述存储顺序,确定存储的各个时间戳模式中的目标时间戳模式。[0280]示例性的,可根据按照时间的先后顺序存储所述第一时间戳模式,这种情况下,可确定最晚存储的时间戳模式为所述目标时间戳模式。[0281]或者,在另一种可行的实现方式中,为数据库管理系统的存储介质设置一个特定的存储空间,在确定目标时间戳模式之后,将该目标时间戳模式存储至该特定的存储空间。这种情况下,通过查询该特定的存储空间,即可确定所述数据库管理系统应用的目标时间戳模式。[0282]为了明确本技术实施例提供的方案,以下根据数据库管理系统运行中的场景,对本技术实施例提供的方案进行介绍。[0283]在场景一中,参见图1a-图1c和图2,数据库管理系统确定需要创建数据库的第一设置命令,所述第一设置命令中包括需要创建的所述数据库的属性信息,例如所述数据库的名称等。并且,所述第一设置命令还包括指示第一时间戳模式的时间戳信息。例如,如果所述数据库管理系统应用物理时间戳模式,则所述第一设置命令中包含所述物理时间戳模式的相关信息。[0284]其中,所述第一设置命令可为客户端传输的sql语句,本次创建的数据库即为所述客户端所需的数据库。[0285]在确定所述第一设置命令之后,数据库管理系统根据所述第一设置命令中包括的属性信息,在数据存储器中创建相应的数据库。并且,数据库管理系统根据所述第一设置命令的指示,在数据存储器中存储第一时间戳模式,并为第一时间戳模式分配目标标签,以通过所述目标标签表征所述第一时间戳模式为数据库管理系统应用的目标时间戳模式。[0286]示例性的,在所述数据存储器中可设置表3:[0287]表3[0288][0289]表3对应的示例中,第一时间戳模式为逻辑时间戳(即上表中的“logic”),则在ꢀ“current_timestamp_mode”字段对应的字段值为“logic”,并且,该字段的类型为文本text。由于还未获取第三设置命令,不需要对所述数据库的目标时间戳模式进行切换,则ꢀ“next_timepstamp_mode”字段对应的字段值也为“logic”,并且,该字段的类型为文本text。[0290]另外,在表3中,通过“logic_max_value”字段、“physical_max_value”字段和“hlc_max_value”ꢀ字段,分别表示逻辑时间戳模式对应的最大时间戳、物理时间戳模式对应的最大时间戳和混合时间戳模式对应的最大时间戳。由于在该场景中,还无需切换数据库管理系统应用的时间戳模式,因此,暂时无需记载通过所述第一时间戳模式分配的第一最大时间戳。[0291]通过这一场景,能够实现数据库的创建,并且设置第一时间戳模式为所述数据库管理系统应用的目标时间戳模式。[0292]在场景二中,需要在所述数据库中创建表对象。[0293]数据库管理系统可接收用于创建表对象的第二sql语句,其中,所述第二sql语句包括所述数据库中的表对象的属性信息,所述第二sql语句对应的事务可称为创建表对象事务。[0294]这一场景下,数据库管理系统会读取数据存储器,根据其中配置有目标标签的时间戳模式,确定数据库当前应用的目标时间戳模式为第一时间戳模式。然后,数据库管理系统根据第一时间戳模式,为所述创建表对象事务分配第一开始时间戳。并且,数据库管理系统执行所述创建表对象事务,并对所述数据存储器进行相应的读写操作,以创建所述第二sql语句中包含的表对象的属性信息对应的表对象,以及根据所述第一时间戳模式,确定所述创建表对象事务的第一结束时间戳。[0295]通过这一场景,能够在数据库中创建相应的表对象,并且,能够通过第一时间戳模式为创建表对象事务分配相应的时间戳。[0296]在场景三中,在创建所述数据库之后,如果需要对数据库中的数据进行处理,例如增加、修改、删除或查询数据,数据库管理系统往往可接收到相应的sql语句。[0297]这种情况下,数据库管理系统在接收到所述sql语句之后,确定sql语句对应的事务并执行。并且,数据库管理系统还可通过读取数据存储器,确定数据库管理系统应用的目标时间戳模式,并通过所述目标时间戳模式,为所述sql语句对应的事务分配相应的时间戳。[0298]通过这一场景,能够对数据库中的数据进行增加、修改、删除或查询,并且,在事务实现的过程中,通过第一时间戳模式为该事务分配相应的时间戳。[0299]在场景四中,数据库管理系统的应用环境会发生变化,例如数据库配置的用于确定物理时间的时间装置的准确性下降,或者随着数据库的扩容,为数据库分配逻辑时间戳时出现较大时延。随着应用环境的变化,所述数据库当前应用的第一时间戳模式有时不再适用,需要将所述数据库管理系统应用的目标时间戳模式由第一时间戳模式切换为第二时间戳模式。[0300]这种情况下,在所述数据库管理系统的应用环境变化后,数据库管理系统可获取第二设置命令。其中,所述第二设置命令包括指示第二时间戳模式的时间戳信息,所述第二时间戳模式与变化后的应用环境相匹配。[0301]在一种可行的实现方式中,所述数据库管理系统可接收客户端传输的第二设置命令,这种情况下,所述第二设置命令可为所述客户端传输的sql语句,该sql语句中包括第二时间戳模式的相关信息。[0302]在另一种可行的实现方式中,所述数据库管理系统可根据数据库管理系统变化后的应用环境,以及应用环境与时间戳模式之间的关系,确定适用于应用环境变化之后的数据库的第二时间戳模式,并据此生成相应的第二设置命令。[0303]在获取所述第二设置命令之后,数据库管理模块存储所述第二设置命令指示的第二时间戳模式,并为第二时间戳设置相应的目标标签。如果之前为所述第一时间戳模式设置有目标标签,则还需要取消所述第一时间戳模式的目标标签,以表明数据库管理系统应用的目标时间戳模式为所述第二时间戳模式。[0304]示例性的,如果所述数据存储器中存储表3,则数据库管理器可通过对所述数据存储器的读写,将所述表3修改为以下的表4:[0305]表4[0306][0307]表4对应的示例中,第一时间戳模式为逻辑时间戳模式(即上表中的“logic”),则在ꢀ“current_timestamp_mode”字段对应的字段值为“logic”,并且该字段的类型为文本text。另外,该示例中,第二时间戳模式为物理时间戳模式(即上表中的“physical”),则在ꢀ“next_timepstamp_mode”对应的字段值为“physical”,并且该字段的类型也为文本text。[0308]在将表3修改至表4之后,所述数据库管理系统重启,并在重启后,对所述数据库进行数据恢复。并且,所述数据库管理系统将通过所述第一时间戳模式分配的第一最大时间戳读写至数据存储器,从而获取表5:[0309]表5[0310][0311]其中,表5对应的示例中,第二时间戳模式为物理时间戳模式,并且,所述第二时间戳模式为数据库管理系统应用的目标时间戳模式。这种情况下,在“current_timestamp_mode”ꢀ字段对应的字段值为“physical”,并且该字段的类型为文本text。另外,由于还未确定其他用于切换时间戳模式的设置命令,即暂时不需要将数据库管理系统应用的目标时间戳模式由第二时间戳模式切换至其他的时间戳模式,因此,在“next_timepstamp_mode”对应的字段值可为“physical”。[0312]另外,在表5中,需要存储第一时间戳模式对应的第一最大时间戳。在本示例中,第一时间戳模式为逻辑时间戳模式,并且,所述第一时间戳为12000,则可在表5的ꢀ“logic_max_value”字段填充“12000”这一字段值。[0313]通过这一场景,能够将第二时间戳模式调整为所述数据库管理系统应用的目标时间戳模式,并且,还可存储通过所述第一时间戳模式分配的第一最大时间戳,以便数据库管理系统应用与变化后的应用环境相匹配的时间戳模式。[0314]在场景五中,需要对数据库进行操作,例如,需要查询、修改、增加或删除数据库中的数据。[0315]这一场景中,数据库管理系统可接收到对数据库进行相应操作的sql语句。通过解析所述sql语句,数据库管理系统可确定本次需要执行的事务,并通过对数据存储器的数据进行读写,以实现所述sql语句对应的事务。[0316]另外,在事务实现过程中,所述数据库管理系统通过查询数据存储器,可确定在当前的应用环境下,数据库管理系统应用的目标时间戳模式为第二时间戳模式,并通过第二时间戳模式为事务分配相应的时间戳。[0317]通过这一场景,能够实现各种事务,并通过切换之后的第二时间戳模式为所述事务分配时间戳,从而能够使应用环境变化后的数据库管理系统能够分配较为准确的时间戳,保障事务的实现。[0318]下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。[0319]与上述方法实施例相对应的,本技术实施例公开一种数据库管理系统。参见图9所示的结构示意图,所述数据管理系统包括:第一获取模块200和第一设置模块300。[0320]其中,所述第一获取模块200用于获取第一设置命令,所述第一设置命令包括指示第一时间戳模式的时间戳信息,所述第一时间戳模式与数据库管理系统当前的应用环境相匹配;[0321]所述第一设置模块300,用于设置所述第一时间戳模式为所述数据库管理系统应用的目标时间戳模式。[0322]通过本技术实施例提供的数据库管理系统,能够获取第一设置命令,并根据第一设置命令的指示,确定数据库管理系统应用的目标时间戳模式,其中,所述目标时间戳模式为第一设置命令指示的第一时间戳模式,而第一时间戳模式与数据库管理系统在当前的应用环境相匹配。[0323]这种情况下,数据库管理系统能够支持多种形式的时间戳模式,并且,数据库管理系统应用的目标时间戳模式与数据库管理系统在当前的应用环境相匹配,即第一时间戳对于所述数据库管理系统来说是适用的,从而减少所述数据库管理系统应用不适用的时间戳模式的现象。[0324]在本技术实施例提供的数据库管理系统中,所述第一设置命令可为多种形式。其中,在一种可行的实现方式中,所述第一设置命令可为sql语句。例如,所述第一设置命令可为用于指示创建数据库的sql语句。[0325]这种情况下,所述第一设置命令为第一sql语句,所述第一sql语句包括所述数据库的属性信息。[0326]相应的,为了实现数据库的创建,所述数据库管理系统还包括:[0327]第一创建模块,用于根据所述属性信息,创建所述数据库。[0328]进一步的,在本技术实施例提供的所述的数据库管理系统中,还包括:[0329]第一接收模块,用于接收用于创建表对象的第二sql语句,所述第二sql语句对应于创建表对象事务;[0330]第二确定模块,用于根据所述第一时间戳模式,确定所述创建表对象事务的第一开始时间戳;[0331]第二创建模块,用于通过执行所述创建表对象事务,创建所述表对象;[0332]所述第二确定模块还用于,根据所述第一时间戳模式,确定所述创建表对象事务的第一结束时间戳。[0333]通过本技术实施例的方案,能够根据接收到的第二sql语句,为数据库创建相应的表对象,并且,根据第一时间戳模式,为创建表对象事务分配相应的时间戳。[0334]进一步的,在本技术实施例提供的所述的数据库管理系统中,所述第一获取模块还用于,在所述数据库管理系统的应用环境变化后,获取第二设置命令,所述第二设置命令包括指示第二时间戳模式的时间戳信息,所述第二时间戳模式与变化后的应用环境相匹配;[0335]所述第一设置模块还用于,将所述目标时间戳模式由所述第一时间戳模式调整为所述第二时间戳模式。[0336]在数据库运行过程中,如果数据库管理系统当前应用的目标时间戳模式不再适用,则可获取所述第二设置命令,以便根据所述第二设置命令对所述数据库管理系统应用的目标时间戳模式进行调整。这种情况下,由于所述第二时间戳模式与变化后的应用环境相匹配,因此,在数据库管理系统的应用环境变化之后,所述第二时间戳模式对于所述数据库管理系统来说是适用的。[0337]进一步的,在本技术实施例提供的所述的数据库管理系统中,所述第一设置模块具体用于,存储所述第二时间戳模式,重启所述数据库管理系统,并在完成所述数据库管理系统的重启之后,设置存储的所述第二时间戳模式为所述目标时间戳模式。[0338]进一步的,在本技术实施例提供的所述的数据库管理系统中,所述第一设置模块还用于,在所述重启所述数据库管理系统之前,确定所述第一时间戳模式与所述第二时间戳模式不同。[0339]另外,如果所述第一时间戳模式与所述第二时间戳模式相同,则可继续应用所述第一时间戳模式为所述数据库管理系统的事务分配时间戳,无需重启数据库管理系统,从而能够减少数据库管理系统的重启操作。[0340]进一步的,在本技术实施例提供的所述的数据库管理系统中,还包括:[0341]第二接收模块,用于在设置所述第二时间戳模式为所述目标时间戳模式之后,接收第三sql语句;[0342]第三确定模块,用于根据所述第二时间戳模式,确定所述第三sql语句对应的操作事务的第二开始时间戳;[0343]所述第三确定模块用于,根据所述第二时间戳模式,确定所述操作事务的第二结束时间戳。[0344]通过这一实施例,能够在将所述数据库管理系统应用的目标时间戳模式由第一时间戳模式切换至第二时间戳模式之后,通过所述第二时间戳模式,为所述数据库管理系统的事务分配相应的时间戳。[0345]进一步的,在本技术实施例提供的所述的数据库管理系统中,还包括:[0346]存储模块,用于存储通过所述第一时间戳模式分配的第一最大时间戳。[0347]其中,如果所述第一时间戳模式为逻辑时间戳模式,所述第一设置模块还用于,再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式,并基于所述第一最大时间戳,为所述数据库管理系统的事务分配逻辑时间戳。[0348]另外,如果所述第一时间戳模式为物理时间戳模式,所述第一设置模块还用于,再次将所述数据库管理系统应用的目标时间戳模式设置为所述第一时间戳模式;确定将所述目标时间戳模式再次设置为所述第一时间戳模式的目标时间;如果所述第一最大时间戳指示的时间早于所述目标时间,通过所述第一时间戳模式为所述数据库管理系统的事务分配物理时间戳。[0349]进一步的,所述第一获取模块还用于,如果所述第一最大时间戳指示的时间不早于所述目标时间,获取第三设置命令,所述第三设置命令包括指示第三时间戳模式的时间戳信息,所述第三时间戳模式与所述第一时间戳模式不同;[0350]所述第一设置模块还用于,设置所述第三时间戳模式为所述数据库管理系统应用的目标时间戳模式;[0351]或者,所述第一设置模块还用于,暂停分配时间戳,并生成提示信息。[0352]另外,在本技术实施例提供的数据库管理系统中,所述第一获取模块具体用于,接收来自客户端发送的第二设置命令;[0353]或者,所述第一获取模块具体用于,确定所述数据库管理系统变化后的应用环境;根据应用环境与时间戳模式之间的映射关系,以及所述数据库管理系统变化后的应用环境,确定所述第二时间戳模式;以及根据确定的所述第二时间戳模式,生成所述第二设置命令。[0354]相应的,本技术实施例提供一种数据库服务器,该数据库服务器包括:[0355]至少一个处理器、存储可执行代码的非瞬态计算机可读介质和数据库管理系统;[0356]其中,所述可执行代码在被所述至少一个处理器执行时,被配置为实现所述数据库管理系统的功能。[0357]所述数据库管理系统可用于执行本技术的图3至图8对应的实施例中的部分或全部步骤,在一种可行的设计中,所述数据库管理系统的结构可如图9所示。[0358]参见图10,本技术实施例还提供一种集群数据库系统500,包括:包括硬件层1007和运行在硬件层1007之上的虚拟机监控器(virtualmachinemonitor,vmm)1001,以及至少一个虚拟机(virtualmachine,vm)1002。一个虚拟机可以作为集群数据库系统500的一个数据节点。可选的,还可以指定其中一个虚拟机作为协调节点。[0359]具体的,虚拟机1002是通过虚拟机软件在公共硬件资源上模拟出的虚拟的计算机,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。[0360]硬件层1007为虚拟化环境运行的硬件平台,可以由一个或多个物理主机的硬件资源抽象得到的。其中,硬件层可包括多种硬件,例如包括处理器1004(例如cpu)和存储器1005,还可以包括网卡1003(例如rdma网卡)、高速/低速输入/输出(input/output,i/o)设备,及具有特定处理功能的其它设备。[0361]虚拟机1002基于vmm,以及硬件层1007提供的硬件资源,运行可执行程序,以实现上述图3至图8相关的实施例中的部分或全部功能。为了简洁,在此不再赘述。[0362]进一步地,该集群数据库系统500还可以包括宿主机(host),所述宿主机作为管理层,用以完成硬件资源的管理和分配,为虚拟机呈现虚拟硬件平台,可用于实现虚拟机的调度和隔离。其中,host可能是虚拟机监控器vmm;也有可能是由vmm和1个特权虚拟机的结合。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如vcpu)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应host的一个文件或者一个逻辑块设备。虚拟机运行在host为其准备的虚拟硬件平台上,host上运行一个或多个虚拟机。虚拟机1002的vcpu通过执行存储在其对应的虚拟内存中的可执行程序,以实现或者执行本发明上述各方法实施例中所描述的方法步骤。例如,实现上述图3至图8相关的实施例中sql引擎和执行引擎的部分或全部功能。[0363]参见图11,本技术实施例还提供一种数据库系统,包括:数据库服务器800,以及通过通信网络与所述数据库服务器连接的客户端设备900。其中,[0364]客户端设备900的硬件层906上运行有客户端的操作系统904,操作系统904上运行有应用程序902;数据库服务器800的硬件层816上运行有数据库服务器800的操作系统814,以及在操作系统814上运行有数据库管理系统812。应用程序902经由通信网络与在数据库服务器800上运行的数据库管理系统812连接并且访问或者操作存储在数据存储器818中的数据库,例如,通过sql语句查询、更新或删除数据库中的数据,或者导入新的数据至数据库。[0365]硬件层906和816包含操作系统和应用程序运行所需的基本硬件单元,例如,处理器,例如cpu,内存(memory)、输入/输出设备、网络接口等。[0366]数据存储器818可以是数据库服务器800的外部存储器,比如硬盘、磁盘、存储阵列,或存储服务器等,与数据库服务器800通信连接。或者,数据存储器818也可以集成在数据库服务器800内部,与处理器和i/o设备通过总线或其它内部通信方式交互数据。[0367]数据库服务器800的内存中存储有可执行代码,该可执行代码在被处理器执行时被配置为实现数据库管理系统812的组件和功能。数据库管理系统812具体可以为图9所示的数据库管理系统108,相关功能及实现细节可参照图3至图8相关的实施例,此处不再赘述。[0368]具体实现中,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令。其中,设置在任意设备中计算机可读介质其在计算机上运行时,可实施包括图3至图8对应的实施例中的全部或部分步骤。所述计算机可读介质的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。[0369]另外,本技术另一实施例还提供一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备可实施包括图3至图8对应的实施例中的全部或部分步骤。[0370]应理解,在本技术的各种实施例中,“可执行程序”应被广泛地解释为包括但不限于:指令,指令集,代码,代码段,子程序,软件模块,应用,软件包,线程,进程,函数,固件,中间件等。上述实施例描述的方法步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实上施过程构成任何限定。[0371]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以硬件、或者计算机软件和硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。[0372]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据库服务器、数据管理系统和数据库系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0373]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0374]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0375]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0376]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1