CN116010446A - 数据库切换方法、装置、设备及介质 - Google Patents
数据库切换方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116010446A CN116010446A CN202211389277.9A CN202211389277A CN116010446A CN 116010446 A CN116010446 A CN 116010446A CN 202211389277 A CN202211389277 A CN 202211389277A CN 116010446 A CN116010446 A CN 116010446A
- Authority
- CN
- China
- Prior art keywords
- library
- database
- metadata
- primary
- main
- 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
Images
Classifications
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,提供一种数据库切换方法、装置、设备及介质。方法包括:根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对原备库进行延迟查询并判断原备库是否符合预设的延迟查询条件,在原备库符合延迟查询条件时,将原备库切换为新主库,将原主库切换为新备库。本发明实现了数据库快速准确的切换。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据库切换方法、装置、设备及介质。
背景技术
在大数据时代,利用数据库的主备架构可形成数据系统。数据系统由一个主库和若干个备库组成,其中,主库提供数据读取和修改服务,备库仅提供只读服务。主库故障时,需要切换主库和备库,切换完成后,备库将接管作为主库继续对外提供服务,从而满足用户对数据库服务的高可用性的需求。对于应用较广泛的orcal数据库,目前备库和主库的切换方式通常有switchover和failover两种。而由于failover切换时通常会丢失数据,因此为了数据的完整性,常使用switchover这种不会丢失数据的方式进行主库备库的切换。当服务器出现输入输出问题或硬件问题,需要使用switchover切换数据库时,由于实际运维的orcal数据库实例数量巨大,需要人工手动逐一检查每个实例的检查点,确保最终的切换成功。
发明人意识到,上述的数据库切换方法在进行主库和备库的切换时,需要由操作人员手动逐一检查每个实例的检查点。显然,对于实例量巨大的数据库而言,这种手动方式会耗费大量时间,且准确度不高,从而不能快速的实现数据库的准确切换。
发明内容
本发明的目的在于提供一种数据库切换方法、装置、设备及介质。以解决现有的数据库切换时,手动检查各实例的检查点,导致切换时准确度不高,且检查速度较慢的问题。
第一方面,提供了一种数据库切换方法,应用于数据库管理系统,所述数据库管理系统对应于一个主库和一个备库,包括:
根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
第二方面,提供了一种数据库切换装置,应用于数据库管理系统,所述数据库管理系统对应于一个主库和一个备库,包括:
目标机器查找模块,用于根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
切换模块,用于在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器计算机程序时实现上述数据库切换方法的步骤。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器时实现上述数据库切换方法的步骤。
本发明的数据库切换方法、装置、设备及介质。通过预存的主库元数据中的域名,查找原主库所在的主库目标机器,同时根据预存的备库元数据中的域名,查找原备库所在的备库目标机器。当主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对原备库进行延迟查询,并判断原备库是否符合预设的延迟查询条件。当原备库符合延迟查询条件时,将原备库切换为新主库,将原主库切换为新备库。在本发明中,针对现有的切换主库和备库时,需要由操作人员手动逐一检查每个实例的检查点,从而耗费大量时间,且准确度不高,从而不能快速的实现数据库的准确切换的现象。针对上述问题,使用主库元数据预存有多种主库的信息,使用备库元数据预存有多种备库的信息,并将主库元数据与备库元数据预存在数据库管理系统中,以便于随时调用。从而在进行主库和备库切换时,不必手动逐一查询每个数据库的各检查点,而直接通过预存的主库元数据和备库元数据,即可获得对应的数据,从而能够实现主库和备库的快速切换。且相对于人工手动检查,使用机器直接提取元数据的属性数据与目标机器的属性信息进行比较,能够快速的判断各属性数据是否与目标机器相同。尤其对于属性数据较多且较为复杂的情况时,相较于人工,使用机器比较极大的提升了运维效率和数据库的可用率,从而能够实现主库和备库快速准确的切换。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
图1显示为本发明一实施例中数据库切换方法的一应用环境示意图;
图2显示为本发明一实施例中数据库切换方法的流程示意图;
图3显示为本发明一实施例中步骤S200的流程示意图;
图4显示为本发明一实施例中主备库切换的流程示意图;
图5显示为本发明一实施例中步骤S280的流程示意图;
图6显示为本发明一实施例中步骤S2801的流程示意图;
图7显示为本发明一实施例中数据库切换装置的结构框图;
图8是本发明一实施例中计算机设备的一结构示意图;
图9是本发明一实施例中计算机设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据库切换方法,可应用在如图1的应用环境中,其中,数据库管理系统通过网络与主库或备库进行通信,主库或备库可以通过客户端的切换指令进行数据库的切换。其中,通过预存的主库元数据中的域名,查找原主库所在的主库目标机器,同时根据预存的备库元数据中的域名,查找原备库所在的备库目标机器。当主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对原备库进行延迟查询,并判断原备库是否符合预设的延迟查询条件。当原备库符合延迟查询条件时,将原备库切换为新主库,将原主库切换为新备库。在本发明中,针对现有的切换主库和备库时,需要由操作人员手动逐一检查每个实例的检查点,从而耗费大量时间,且准确度不高,从而不能快速的实现数据库的准确切换的现象。针对上述问题,使用主库元数据预存有多种主库的信息,使用备库元数据预存有多种备库的信息,并将主库元数据与备库元数据预存在数据库管理系统中,以便于随时调用。从而在进行主库和备库切换时,不必手动逐一查询每个数据库的各检查点,而直接通过预存的主库元数据和备库元数据,即可获得对应的数据,从而能够实现主库和备库的快速切换。且相对于人工手动检查,使用机器直接提取元数据的属性数据与目标机器的属性信息进行比较,能够快速的判断各属性数据是否与目标机器相同。尤其对于属性数据较多且较为复杂的情况时,相较于人工,使用机器比较极大的提升了运维效率和数据库的可用率,从而能够实现主库和备库快速准确的切换。使用本发明所述的方案,整个switchover耗时由原来的手动操作至少5分钟以上,改为耗时只有51秒,极大的提升了运维效率和数据库可用率。其中,数据库管理系统可以安装在包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。主库和备库可以用独立的服务器或者是多个服务器组成的服务器集群来实现。下面通过具体的实施例对本发明进行详细的描述。
请参阅图2所示,图2为本发明实施例提供的数据库切换方法的一个流程示意图,包括如下步骤:
S100、根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器。
本实施例中,数据库管理系统、主库和备库分别位于不同的机器上。可将数据库管理系统按照在多个不同的机器上,以便操作人员即使在不同位置,只要使用机器上的该数据库管理系统,即可对主库和备库进行操作。主库,是主数据库的简称,是集中存储管理历史归档数据的场所,主库中永久保管具有长期保留价值、有共享需求的、经过数据质量检查验证的、规范化的数据。加载进入主数据库后的数据,原则上不允许进行更改。备库是主数据库的备份,当主数据库变化时从数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存。主库和备库的关系,这是一种冗余设计,是防止数据库意外崩溃的,通常不会放在同一个服务器上,因为在同一个服务器上,当硬件出现问题的时候,同样达不到冗余的效果;在HA设计中,通常还会把主库和备库做成定时同步,并且在主库退服时,备库可以自动接管业务,达到不中断业务的效果。本实施例中,以进行switchover数据库切换为例,进行响应操作的说明,可以理解的是,并不仅限于switchover,还可应用于failover。安装有数据库管理系统的各机器具有统一的集群名称,为便于理解,以下述将安装有该数据库管理系统的机器称为系统机器,多个系统机器对应同一个集群名称。需要使用switchover切换数据时,输入该系统机器的集群名称,会自动从云端的配置管理数据库中获得预存的主库元数据和备库元数据。其中,配置管理数据库中存储有多个集群名称以及对应的主库元数据和备库元数据,根据需要切换数据库的系统机器所在的集群名,即可快速的查询到对应的主库元数据和备库元数据的信息。根据主库元数据中的域名和备库元数据中的域名,可以快速准确的查询到对应的主库目标机器和备库目标机器。考虑到由于过载等原因需要切换数据库时,若主库和备库位于同一个目标机器上,则会导致切换无效的现象。为了改善这一情况,本实施例中,主库目标机器和备库目标机器不是同一个机器。
S200、在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
为了保证数据库切换时数据的平稳性,需要对主库目标机器的属性信息及对应的主库元数据的属性数据、备库目标机器的属性信息及对应的备库元数据进行一致性校验。当信息一致时,说明此时的目标机器初步满足数据库交换的条件,可以进行后续交换步骤。当主库元数据的属性数据与主库目标机器的属性信息不一致和/或备库元数据的属性数据与备库目标机器的属性信息不一致时,说明此时目标机器不满足数据库交换的条件,需要停止交换数据换。其中,属性数据为表征目标机器属性性能的一系列数据,包括但不限于磁盘剩余量、磁盘使用量、目标机器的名称等。当满足交换条件时,通过对原备库进行延迟查询,并判断其是否满足延迟查询条件,当满足条件时,说明原备库的数据处理速率与原主库近似,即可进行数据库切换。
在本发明一实施例中,在步骤S200中,所述根据所述主库元数据中的域名查找原主库所在的主库目标机器,根据所述备库元数据中的域名查找原备库所在的备库目标机器之后,还包括:生成锁文件,以防止对所述原主库和所述原备库继续进行读取和/或写入操作。考虑到系统机器上可能运行有多个程序,其中一个程序运行过程中需要切换数据时,通过在程序中输入该系统机器的集群名,即可自动在该系统机器的预设位置处生成一个以该集群名命名的锁文件。其他运行的程序以设定时间间隔不断检测锁文件是否存在,一旦检测到锁文件,立即停止运行,以防止继续向原主库或原备库进行读写操作,从而使当前的原主库和原备库处于锁定状态。
进一步地,在本发明一实施例中,所述生成锁文件之后,还包括:将数据库管理系统中的更新脚本分别远程拷贝至主库目标机器和备库目标机器上。其中,更新脚本用于后续数据库切换完成后,对主库元数据和备库元数据的更新。优选地,在本发明一实施例中,所述将数据库管理系统中的更新脚本分别远程拷贝至主库目标机器和备库目标机器上之前,还包括:分别删除主库目标机器和备库目标机器中的旧更新脚本,以使拷贝到主库目标机器和备库目标机器上的更新脚本为最新版本,防止存在多个不同版本时,最后使用的更新脚本不是最新版本的问题。
在本发明一实施例中,在步骤S200中,所述对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,包括:
S210、向所述原主库发送待处理数据,统计所述原主库的处理时长;
S220、将所述待处理数据发送至所述原备库,统计所述原备库的处理时长;
S230、计算所述原主库的处理时长与所述原备库的处理时长的绝对时间差,并判断所述绝对时间差是否小于或等于预设的阈值;
S240、若所述时间差值小于或等于所述阈值,则符合延迟查询条件;
S250、若所述时间差值大于所述阈值,则不符合延迟查询条件,停止数据库切换。
为了实现主库与备库数据的一致性,需要保障主库和备库处理数据的时长相近。因此,需要对备库使用延迟查询,以判断备库是否符合延迟查询条件。具体地,由数据库管理系统向原主库发送一个事务,原主库执行完这个事务,并写入到主库的日志中,这个时刻称为T1。数据库管理系统将主库写完的日志传送给原备库,原备库接收到日志的时刻称为T2。原备库开始执行日志的解析结果,执行完的这个时刻称为T3。延迟查询是验证上述原备库执行完成的时间T3和主库执行完成的时间T1的时间差值,即延迟查询的绝对时间差T=|T1-T3|,只有当绝对时间差T小于或等于预设阈值时,说明此时原主库和原备库的处理速率相近,因此可以进行主备库切换。优选地,阈值为零,则说明原主库和原备库对事务的处理速率相同,此时切换并不会影响整个数据库的运行环境。而当绝对时间差T大于阈值时,说明原主库和原备库对事务的处理速率相差较大,此时切换会导致整个数据库的运行环境收到影响,所以应停止数据库的切换工作。
在本发明一实施例中,在步骤S200中,所述将原备库切换为新主库,将原主库切换为新备库,包括:
S260、重启所述原主库且将所述原主库切换为挂载状态,并向所述原备库发送标志信息;
S270、在预设的第一时间范围内,实时检测所述原备库中是否存在所述标志信息;
S280、若存在所述标志信息,则将所述备库元数据中的域名更改为原主库的域名,将所述主库元数据中的域名更改为原备库的域名,以将原备库切换为新主库,将原主库切换为新备库;
S290、若不存在所述标志信息,则停止数据库切换。
当原备库满足延迟条件,可以进行主备库切换时,需要重启原主库,并将重启后的原主库切换为挂载状态,以便利于后续主库和备库的切换。上述过程完毕后,由数据库管理系统向原备库发送end of redo这个标志信息,以表明备库可以切换为主库。发送完毕后,在第一预设时间范围内,由数据库管理系统实时检测原备库中是否存在该标志信息。若存在,则可以将备库元数据中的域名更改为原主库的域名,将主库元数据中的域名更改为原备库的域名,以便后续直接根据元数据中的域名可以直接查询对应的新主库和新备库,从而实现将原备库切换为新主库,将原主库切换为新备库的主备库切换。若不存在标志信息,则说明此时原主库可能还处于重启或正在挂载,因此不能切换主备库,需要停止数据库的切换。当然,可以理解的是,在第一预设时间范围内,若第一次没有查询到标志信息,则可以重复查询,直至在第一预设时间范围内查询到标志信息,则可进行数据库的切换。
在本发明一实施例中,在步骤S280中,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:
S2801、比较所述主库元数据中的的用户和所述备库元数据中的用户是否一致;其中,所述用户包括权限逐渐递减的数据库管理员、安全员、网络管理员、应用程序开发员、应用程序管理员以及数据库用户;
S2802、若所述所述主库元数据中的用户和所述备库元数据中的用户一致,则保持所述主库元数据中的用户不变;
S2803、若所述主库元数据中的用户和所述备库元数据中的用户不一致,则根据所述备库元数据中的用户更新所述主库元数据中的用户,以使所述主库元数据中的用户与所述备库元数据中的用户相同。
主备数据库切换完成之后,还需要验证新主库和新备库的用户是否一致,以保证切换后的新主库的用户与原主库的用户相同,避免数据流失。因此需要比较主库元数据中的用户和备库元数据中的用户是否相同,在两者相同时,说明切换后的新主库与原主库的用户保持一致,因此可保持此时的主库元数据中的用户不变。而当两者不同时,则需要将备库元数据中与主库元数据中不同的用户,加入到主库元数据的用户中,以保证两者一致。其中,用户是指使用和共享数据库资源的人,有在当前数据库中创建数据库对象及进行数据库备份的权限、用户对数据库表的操作权限及执行存储过程的权限以及用户数据库中指定表字段的操作权限三种权限。根据权限不同,可将用户按照权限由高到低递减的顺序,分为数据库管理员、安全员、网络管理员、应用程序开发员、应用程序管理员以及数据库用户。每个数据库都至少有一个数据库管理员,以完成数据库维护的工作。安全管理员可以管理用户、控制和监视用户对数据库的访问,以及维护数据库的安全。网络管理员可以管理Oracle的网络产品,例如Oracle Net Services等。应用程序开发员负责设计和实现数据库应用程序,主要负责开发和维护数据的应用程序和结构。应用管理员可以对指定的应用程序进行管理,每个应用程序都可以有自己的管理员。数据库用户通过应用程序与数据库打交道,他们最常用的权限如下:在权限的范围内添加、修改和删除数据;从数据库中生成统计报表。
在本发明一实施例中,在步骤S2801中,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:
S28011、对所述主库元数据中的读写权限进行自检,以判断所述读写权限是否为可读写状态;
S28012、若是可读写状态,则保持所述主库元数据中的读写权限不变;
S28013、若不是可读写状态,则将所述主库元数据中的读写权限更改为可读写状态。
对新主库和新备库的用户比较完毕,并使主库元数据与备库元数据中的用户相同后,还需要验证新主库的读写权限。通过对主库元数据中的读写权限进行自检,从而获取当前新主库的读写状态。若为可读写状态,则可保持原有的读写权限不变,若不是可读写状态,则需要改变主库元数据中的读写权限为可读写状态,从而保障现有的新主库能够可读可写。
进一步地,在本发明一实施例中,在步骤S28011中,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:删除所述锁文件,以恢复对所述新主库和所述新备库的读取和/或写入操作。由于锁文件一直存在,则会导致数据库管理系统中运行的其他程序一旦检测到锁文件,即停止对新主库和新备库的读取和写入操作,显然会延误数据处理。因此,当自检完成后,需要删除锁文件,从而恢复新主库和新备库相应的读取和写入操作。
进一步地,在本发明一实施例中,所述对所述主库元数据中的读写权限进行自检之后,还包括:若新主库是RAC,则启动service。RAC(Real Application Cluster,实时应用集群)是Oracle数据库产品高可用性的解决方案,能够保证在集群中只要有一个节点存活,就能正常对外提供服务。其具有高吞吐量、易伸缩性、高可用性和双机并行等优点。可以通过service控制客户端的访问路径,从而有效实现节点间的负载平衡。
应理解,上述实施例中各步骤的序号的大小并不意味着顺序的先后,各过程的顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种数据库切换装置。应用于数据库管理系统,所述数据库管理系统对应于一个主库和一个备库,数据库切换装置10与上述实施例中数据库切换方法一一对应。如图7所示,该数据库切换装置10包括目标机器查找模块11、和切换模块12。各功能模块详细说明如下各功能模块详细说明如下:
目标机器查找模块11,用于根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
切换模块12,用于在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
在一实施例中,切换模块12,具体用于:
向所述原主库发送待处理数据,统计所述原主库的处理时长;
将所述待处理数据发送至所述原备库,统计所述原备库的处理时长;
计算所述原主库的处理时长与所述原备库的处理时长的绝对时间差,并判断所述绝对时间差是否小于或等于预设的阈值;
若所述时间差值小于或等于所述阈值,则符合延迟查询条件;
若所述时间差值大于所述阈值,则不符合延迟查询条件,停止数据库切换。
在一实施例中,切换模块12,还用于:
生成锁文件,以防止对所述原主库和所述原备库继续进行读取和/或写入操作。
在一实施例中,切换模块12,还用于:
删除所述锁文件,以恢复对所述新主库和所述新备库的读取和/或写入操作。
在一实施例中,切换模块12,还用于:
重启所述原主库且将所述原主库切换为挂载状态,并向所述原备库发送标志信息;
在预设的第一时间范围内,实时检测所述原备库中是否存在所述标志信息;
若存在所述标志信息,则将所述备库元数据中的域名更改为原主库的域名,将所述主库元数据中的域名更改为原备库的域名,以将原备库切换为新主库,将原主库切换为新备库;
若不存在所述标志信息,则停止数据库切换。
在一实施例中,切换模块12,还用于:
比较所述主库元数据中的的用户和所述备库元数据中的用户是否一致;其中,所述用户包括权限逐渐递减的数据库管理员、安全员、网络管理员、应用程序开发员、应用程序管理员以及数据库用户;
若所述所述主库元数据中的用户和所述备库元数据中的用户一致,则保持所述主库元数据中的用户不变;
若所述主库元数据中的用户和所述备库元数据中的用户不一致,则根据所述备库元数据中的用户更新所述主库元数据中的用户,以使所述主库元数据中的用户与所述备库元数据中的用户相同。
在一实施例中,切换模块12,还用于:
对所述主库元数据中的读写权限进行自检,以判断所述读写权限是否为可读写状态;
若是可读写状态,则保持所述主库元数据中的读写权限不变;
若不是可读写状态,则将所述主库元数据中的读写权限更改为可读写状态。
本发明提供了一种数据库切换装置,通过预存的主库元数据中的域名,查找原主库所在的主库目标机器,同时根据预存的备库元数据中的域名,查找原备库所在的备库目标机器。当主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对原备库进行延迟查询,并判断原备库是否符合预设的延迟查询条件。当原备库符合延迟查询条件时,将原备库切换为新主库,将原主库切换为新备库。在本发明中,针对现有的切换主库和备库时,需要由操作人员手动逐一检查每个实例的检查点,从而耗费大量时间,且准确度不高,从而不能快速的实现数据库的准确切换的现象。针对上述问题,使用主库元数据预存有多种主库的信息,使用备库元数据预存有多种备库的信息,并将主库元数据与备库元数据预存在数据库管理系统中,以便于随时调用。从而在进行主库和备库切换时,不必手动逐一查询每个数据库的各检查点,而直接通过预存的主库元数据和备库元数据,即可获得对应的数据,从而能够实现主库和备库的快速切换。且相对于人工手动检查,使用机器直接提取元数据的属性数据与目标机器的属性信息进行比较,能够快速的判断各属性数据是否与目标机器相同。尤其对于属性数据较多且较为复杂的情况时,相较于人工,使用机器比较极大的提升了运维效率和数据库的可用率,从而能够实现主库和备库快速准确的切换。
关于数据库切换装置的具体限定可以参见上文中对于数据库切换方法的限定,在此不再赘述。上述数据库切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,计算机设备可以是服务端,其内部结构图可以如图8所示。计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,计算机设备的处理器用于提供计算和控制能力。计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。非易失性存储介质存储有操作系统、计算机程序和数据库。内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。计算机设备的网络接口用于与外部的供应商端通过网络连接通信。计算机程序被处理器时以实现一种数据库切换方法服务端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备,计算机设备可以是供应商端,其内部结构图可以如图9所示。计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入系统。其中,计算机设备的处理器用于提供计算和控制能力。计算机设备的存储器包括非易失性存储介质、内存储器。非易失性存储介质存储有操作系统和计算机程序。内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机程序被处理器时以实现一种数据库切换方法供应商端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器计算机程序时实现以下步骤:
根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器时实现以下步骤:
根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及供应商端侧的相关描述,为避免重复,这里不再一一描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,计算机程序在时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据库切换方法,其特征在于,应用于数据库管理系统,所述数据库管理系统对应于一个主库和一个备库,所述方法包括:
根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
2.根据权利要求1所述的数据库切换方法,其特征在于,所述根据所述主库元数据中的域名查找原主库所在的主库目标机器,根据所述备库元数据中的域名查找原备库所在的备库目标机器之后,还包括:生成锁文件,以防止对所述原主库和所述原备库继续进行读取和/或写入操作。
3.根据权利要求1所述的数据库切换方法,其特征在于,所述对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,包括:
向所述原主库发送待处理数据,统计所述原主库的处理时长;
将所述待处理数据发送至所述原备库,统计所述原备库的处理时长;
计算所述原主库的处理时长与所述原备库的处理时长的绝对时间差,并判断所述绝对时间差是否小于或等于预设的阈值;
若所述时间差值小于或等于所述阈值,则符合延迟查询条件;
若所述时间差值大于所述阈值,则不符合延迟查询条件,停止数据库切换。
4.根据权利要求1所述的数据库切换方法,其特征在于,所述将原备库切换为新主库,将原主库切换为新备库,包括:
重启所述原主库且将所述原主库切换为挂载状态,并向所述原备库发送标志信息;
在预设的第一时间范围内,实时检测所述原备库中是否存在所述标志信息;
若存在所述标志信息,则将所述备库元数据中的域名更改为原主库的域名,将所述主库元数据中的域名更改为原备库的域名,以将原备库切换为新主库,将原主库切换为新备库;
若不存在所述标志信息,则停止数据库切换。
5.根据权利要求1所述的数据库切换方法,其特征在于,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:
比较所述主库元数据中的用户和所述备库元数据中的用户是否一致;其中,所述用户包括权限逐渐递减的数据库管理员、安全员、网络管理员、应用程序开发员、应用程序管理员以及数据库用户;
若所述主库元数据中的用户和所述备库元数据中的用户一致,则保持所述主库元数据中的用户不变;
若所述主库元数据中的用户和所述备库元数据中的用户不一致,则根据所述备库元数据中的用户更新所述主库元数据中的用户,以使所述主库元数据中的用户与所述备库元数据中的用户相同。
6.根据权利要求5所述的数据库切换方法,其特征在于,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:
对所述主库元数据中的读写权限进行自检,以判断所述读写权限是否为可读写状态;
若是可读写状态,则保持所述主库元数据中的读写权限不变;
若不是可读写状态,则将所述主库元数据中的读写权限更改为可读写状态。
7.根据权利要求6所述的数据库切换方法,其特征在于,所述将原备库切换为新主库,将原主库切换为新备库之后,还包括:删除所述锁文件,以恢复对所述新主库和所述新备库的读取和/或写入操作。
8.一种数据库切换装置,其特征在于,应用于数据库管理系统,所述数据库管理系统对应于一个主库和一个备库,所述系统包括:
目标机器查找模块,用于根据预存的主库元数据中的域名查找原主库所在的主库目标机器,根据预存的备库元数据中的域名查找原备库所在的备库目标机器;
切换模块,用于在主库元数据的属性数据与主库目标机器的属性信息一致,且备库元数据的属性数据与备库目标机器的属性信息一致时,对所述原备库进行延迟查询并判断所述原备库是否符合预设的延迟查询条件,在所述原备库符合所述延迟查询条件时,将所述原备库切换为新主库,将所述原主库切换为新备库。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211389277.9A CN116010446A (zh) | 2022-11-08 | 2022-11-08 | 数据库切换方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211389277.9A CN116010446A (zh) | 2022-11-08 | 2022-11-08 | 数据库切换方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010446A true CN116010446A (zh) | 2023-04-25 |
Family
ID=86026209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211389277.9A Pending CN116010446A (zh) | 2022-11-08 | 2022-11-08 | 数据库切换方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010446A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595085A (zh) * | 2023-07-17 | 2023-08-15 | 上海爱可生信息技术股份有限公司 | 数据库主从切换方法和分布式数据库 |
-
2022
- 2022-11-08 CN CN202211389277.9A patent/CN116010446A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595085A (zh) * | 2023-07-17 | 2023-08-15 | 上海爱可生信息技术股份有限公司 | 数据库主从切换方法和分布式数据库 |
CN116595085B (zh) * | 2023-07-17 | 2023-09-29 | 上海爱可生信息技术股份有限公司 | 数据库主从切换方法和分布式数据库 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896102B2 (en) | Implementing secure communication in a distributed computing system | |
US10642694B2 (en) | Monitoring containers in a distributed computing system | |
US7831569B2 (en) | Preserving a query plan cache | |
US9600393B2 (en) | Testing of application service versions on live data | |
US9607001B2 (en) | Automated failover of a metadata node in a distributed file system | |
US10581704B2 (en) | Cloud system for supporting big data process and operation method thereof | |
US20150301824A1 (en) | Version control of applications | |
CN113127347B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN107870802B (zh) | 一种虚拟机迁移方法和装置 | |
US11169887B2 (en) | Performing a database backup based on automatically discovered properties | |
CN111339131A (zh) | 数据读写方法及系统 | |
CN116010446A (zh) | 数据库切换方法、装置、设备及介质 | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
US11489844B2 (en) | On-the-fly creation of transient least privileged roles for serverless functions | |
CN113900863A (zh) | 一种对PostgreSQL服务故障自动转移的方法 | |
CN111459913B (zh) | 分布式数据库的容量扩展方法、装置及电子设备 | |
CN112069152A (zh) | 一种数据库集群升级方法、装置、设备以及存储介质 | |
CN115374083A (zh) | 数据源的切换方法、装置、电子设备及存储介质 | |
CN114416689A (zh) | 数据迁移方法、装置、计算机设备、存储介质 | |
CN114996955A (zh) | 一种云原生混沌工程实验的靶场环境构建方法及装置 | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN110399157B (zh) | 一种用于Ambari工具页面开发的方法和开发机 | |
CN111400404A (zh) | 一种节点初始化方法、装置、设备及存储介质 | |
CN110162507B (zh) | 快照覆写方法、装置、计算机设备及存储介质 | |
CN115794845A (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 |