CN103838761B - 一种元数据的更新方法及装置 - Google Patents
一种元数据的更新方法及装置 Download PDFInfo
- Publication number
- CN103838761B CN103838761B CN201210484979.5A CN201210484979A CN103838761B CN 103838761 B CN103838761 B CN 103838761B CN 201210484979 A CN201210484979 A CN 201210484979A CN 103838761 B CN103838761 B CN 103838761B
- Authority
- CN
- China
- Prior art keywords
- data
- storehouse
- data base
- metadata
- base
- 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/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种元数据的更新方法及装置,用以解决现有技术中更新元数据的效率较低、准确性较低的问题。该方法更新装置读取当前保存的数据库集群的元数据,确定读取的元数据中记录的各数据库标识,并访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及备库信息,并记录在更新元数据中,将该更新元数据重新作为该数据库集群的元数据保存。通过上述方法,更新装置可根据当前保存的数据库集群的元数据中记录的各数据库标识,访问该数据库集群中的各数据库,以获取各数据库当前的数据库信息以及当前的备库信息,并据此对元数据进行更新,而无需人为对元数据进行更新,因此提高了元数据更新的效率和准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种元数据的更新方法及装置。
背景技术
数据库集群的元数据是一种用于描述该数据库集群的拓扑结果的数据,具体可以描述该数据库集群中包含的各数据库之间的主备关系和级联关系。
目前,由于数据库集群在应用的过程中经常会进行主备库切换、新增数据库、硬件升级等操作,这就会改变数据库集群原有的拓扑结构,因此,在对数据库集群进行维护的过程中,就需要对数据库集群的元数据进行更新,以便于后续对数据库集群的管理。
在现有技术中,通常是采用人工的方式确定数据库集群的拓扑结构所发生的变化,并据此对数据库集群的元数据进行更新的。显然,这种方法更新元数据的效率较低,而且也会由于人为误差的引入而降低更新的元数据的准确性,尤其是在对大规模数据库集群(包含几百个甚至上千个数据库的数据库集群)的元数据进行更新时,人工更新元数据往往需要消耗大量的人力物力,而且更新的元数据的准确性也较低。
发明内容
本申请实施例提供一种元数据的更新方法及装置,用以解决现有技术中更新元数据的效率较低、准确性较低的问题。
本申请实施例提供的一种元数据的更新方法,包括:
更新装置针对数据库集群,读取当前保存的所述数据库集群的元数据,确定读取的所述元数据中记录的各数据库标识;并
访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中;以及
将所述更新元数据重新作为所述数据库集群的元数据保存。
本申请实施例提供的一种元数据的更新装置,包括:
读取模块,用于针对数据库集群,读取当前保存的所述数据库集群的元数据,确定读取的所述元数据中记录的各数据库标识;
收集模块,用于访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将所述更新元数据重新作为所述数据库集群的元数据保存。
本申请实施例提供一种元数据的更新方法及装置,该方法更新装置读取当前保存的数据库集群的元数据,确定读取的元数据中记录的各数据库标识,并访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将该更新元数据重新作为该数据库集群的元数据保存。通过上述方法,更新装置可根据当前保存的数据库集群的元数据中记录的各数据库标识,访问该数据库集群中的各数据库,以获取各数据库当前的数据库信息以及当前的备库信息,并据此对元数据进行更新,而无需人为对元数据进行更新,因此提高了元数据更新的效率和准确性。
附图说明
图1为本申请实施例提供的元数据的更新过程;
图2为本申请实施例提供的更新装置通过堆栈的方式访问各数据库标识对应的数据库的过程;
图3为本申请实施例提供的Oracle数据库集群的拓扑结构示意图;
图4为本申请实施例提供的对Oracle数据库集群的元数据进行更新的详细过程;
图5为本申请实施例提供的MySQL数据库集群的拓扑结构示意图;
图6为本申请实施例提供的对MySQL数据库集群的元数据进行更新的详细过程;
图7为本申请实施例提供的元数据的更新装置结构示意图。
具体实施方式
下面结合说明书附图对本申请实施例进行详细描述。
图1为本申请实施例提供的元数据的更新过程,具体包括以下步骤:
S101:更新装置针对数据库集群,读取当前保存的该数据库集群的元数据,确定读取的该元数据中记录的各数据库标识。
由于对于一个数据库集群而言,该数据库集群的元数据记录了该数据库集群中各数据库的数据库标识(用于描述该数据库集群中各数据库之间的主备关系和级联关系),因此,在本申请实施例中,更新装置读取当前保存的该数据库集群的元数据,并确定读取到的该元数据中记录的各数据库标识。
S102:访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中。
确定了当前保存的该数据库集群的元数据中记录的各数据库标识后,更新装置对确定的各数据库标识对应的数据库进行访问,针对访问的每个数据库,从该数据库中获取该数据库当前的数据库信息,以及该数据库当前的备库信息,并记录在更新元数据中。
S103:将该更新元数据重新作为该数据库集群的元数据保存。
将访问的各数据库当前的数据库信息以及备库信息记录在更新元数据中后,则可将该更新元数据重新作为该数据库集群的元数据保存。此时,更新装置保存的元数据(更新元数据)中就记录了当前该数据库中每个数据库的数据库信息以及每个数据库的备库信息,因此可以准确的描述当前该数据库中各数据库之前的主备关系和级联关系。
通过上述方法,更新装置可根据当前保存的数据库集群的元数据中记录的各数据库标识,访问该数据库集群中的各数据库,以获取各数据库当前的数据库信息和当前的备库信息,并据此对元数据进行更新,而无需人为的对元数据进行更新,因此提高了元数据更新的效率和准确性。
具体的,更新装置可以通过堆栈的方式访问通过步骤S101确定的各数据库标识对应的数据库,则更新装置执行如图1所示的步骤S102和S103的方法可以如图2所示。
图2为本申请实施例提供的更新装置通过堆栈的方式访问各数据库标识对应的数据库的过程,具体包括以下步骤:
S1021:将确定的各数据库标识添加到预置的堆栈中。
在本申请实施例中,可预先在更新装置中预置一个堆栈,在通过步骤S101确定了各数据库标识后,可将确定的各数据库标识进行入栈操作,即,将确定的各数据库标识添加到预置的该堆栈中。其中,可按照任意顺序将各数据库标识添加到预置的该堆栈中。
例如,假设更新装置通过步骤S101确定的数据库标识为标识1、标识2、标识3,这三个数据库标识分别对应于数据库1、数据库2、数据库3,则更新装置以任意顺序将这三个数据库标识添加到预置的堆栈中。
另外,对于一个数据库集群来说,如果更新装置未保存该数据库集群的元数据,则在步骤S101中,更新装置可将预先保存的预置文件作为当前保存的该数据库集群的元数据进行读取,其中,该预置文件中记录了该数据库集群中的至少一个数据库的数据库标识。当更新装置读取的是预置文件时,则步骤S1021中更新装置添加到堆栈中的即为该预置文件中记录的数据库标识。
S1022:从该堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库,获取该数据库的配置文件。
继续沿用上例,假设将上述三个数据库标识添加到堆栈中的顺序为标识3、标识1、标识2,且该堆栈为“先入后出”类型的堆栈,则从该堆栈弹出这三个数据库标识时,以添加这三个数据库标识的逆顺序依次进行弹出。
即,先弹出标识2,则更新装置通过数据库接口(Data Base Interface,DBI)访问弹出的该标识2对应的数据库2,获取该数据库2的配置文件。
S1023:根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新元数据中。
继续沿用上例,更新装置根据获取到的该数据库2的配置文件,确定该数据库2当前的数据库信息以及该数据库2当前的备库信息。其中,一个数据库的数据库信息包括但不限于该数据库的数据库标识、网络互联协议(InternetProtocol,IP)地址信息、端口信息,相应的,该数据库的备库信息包括但不限于该备库的数据库标识、IP地址信息、端口信息。
具体的,如果要更新的是Oracle数据库集群的元数据,则在上述步骤S1022中,更新装置获取的该数据库的配置文件包括但不限于tnsnames.ora配置文件,在步骤S1023中,更新装置可根据获取到的tnsnames.ora配置文件,确定该数据库当前的备库信息。
假设数据库2的备库为数据库1,则更新装置通过该数据库2的tnsnames.ora配置文件,可确定该数据库2的备库(数据库1)的数据库信息。
更新装置确定了数据库2当前的数据库信息和数据库2当前的备库信息后,则将数据库2当前的数据库信息和备库信息记录在更新元数据中。
S1024:判断当前该堆栈中是否存在数据库标识,若是,则返回步骤S1022,否则执行步骤S103。
继续沿用上例,更新装置将数据库2当前的数据库信息和备库信息记录在更新元数据中后,判断当前该堆栈中是否仍然存在数据库标识。由于添加到该堆栈中的数据库标识为标识3、标识1、标识2,而现在只弹出了标识2,因此当前该堆栈中还存在标识3和标识1,因此,判断结果为是,返回步骤S1022,即,更新装置从该堆栈中弹出标识1(按添加这三个数据库标识的逆顺序进行弹出),访问该标识1对应的数据库1,并继续执行后续步骤。
S103:将该更新元数据重新作为该数据库集群的元数据保存。
当更新装置已经将标识3弹出,并将该标识3对应的数据库3当前的数据库信息和备库信息记录在更新元数据中后,则该堆栈中就已经不存在任何数据库标识,上述步骤S1024的判断结果为否,此时,该更新元数据中已经记录了该数据库集群中每个数据库(数据库1、数据库2、数据库3)当前的数据库信息以及备库信息,因此更新装置可将该更新元数据重新作为该数据库集群的元数据保存。
通过上述方法,当数据库集群中的各数据库进行主备切换时,更新装置则可以准确的通过各数据库的配置文件,确定各数据库最新的数据库信息以及备库信息,从而可以准确的对元数据进行更新。
进一步的,考虑到数据库集群中可能会存在某个数据库下线的情况,因此,为了进一步提高对元数据进行更新的准确性,在上述步骤S1023中,更新装置针对从堆栈中弹出的一个数据库标识,将该数据库标识对应的数据库当前的数据库信息以及该数据库当前的备库信息记录在更新元数据中之前,需要先确定该数据库处于服务状态。
也即,更新装置针对从堆栈中弹出的一个数据库标识,访问该数据库标识对应的数据库,判断该数据库是否处于服务状态,若是,则获取该数据库的配置文件,并根据获取的配置文件确定该数据库当前的数据库信息和备库信息,记录在更新元数据中,否则,说明该数据库是一个下线的数据库,更新装置可以直接返回上述步骤S1022,继续从堆栈中弹出下一个数据库标识,并执行后续步骤。这样,对于下线的数据库来说,该数据库的数据库信息就不会被记录在更新元数据中。
更进一步的,考虑到数据库集群中可能会存在新增数据库的情况,因此,为了进一步提高对元数据进行更新的准确性,在更新装置将弹出的数据库标识对应的数据库当前的数据库信息和备库信息记录在更新元数据之后,判断当前该堆栈中是否存在数据库标识之前,还要确定该数据库当前的备库信息中包含的该备库的数据库标识,如果当前该堆栈中不存在该备库的数据库标识,则将该备库的数据库标识添加到该堆栈中。
即,如果弹出的数据库标识对应的数据库当前的某一个备库是新增的数据库,则更新装置在步骤S101中读取的元数据中并未记录有该备库的数据库标识,因此,将该数据库当前的数据库信息和备库信息记录在更新元数据中后,将该备库的数据库标识添加到该堆栈中,后续则可以获取到作为该备库的数据库当前的数据库信息以及备库信息,并记录在更新元数据中。
下面以更新Oracle数据库集群的元数据为例,对上述过程进行详细说明。
图3为本申请实施例提供的Oracle数据库集群的拓扑结构示意图,如图3所示,该数据库集群中共包括6个数据库,分别是数据库A、数据库B、数据库C、数据库D、数据库E、数据库F。其中,数据库A为主库,数据库B、数据库C、数据库D是数据库A的备库,数据库E、数据库F是数据库B的备库。由图3可见,Oracle数据库集群的拓扑结构是一个树形结构,其中位于根节点的数据库A为主库,其他数据库均为备库。对该Oracle数据库集群的元数据进行更新的过程具体可以如图4所示。
图4为本申请实施例提供的对Oracle数据库集群的元数据进行更新的详细过程,具体包括以下步骤:
S401:更新装置读取当前保存的该数据库集群的元数据,确定读取的该元数据中记录的各数据库标识。
其中,如果该Oracle数据库集群是一个新上线的数据库集群,则更新装置当前尚未保存该Oracle数据库集群的元数据,此时更新装置可以将预先保存的预置文件作为该数据库集群的元数据进行读取。
具体的,可预先在更新装置中预置一个预置文件,该预置文件中记录该Oracle数据库集群中的至少一个数据库标识。由于Oracle数据库集群的拓扑结构是如图3所示的树形结构,因此,可将位于该树形结构的根节点的数据库的数据库标识记录在该预置文件中,即,将主库(数据库A)的数据库标识记录在预置文件中。
S402:将确定的各数据库标识添加到预置的堆栈中。
S403:从该堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库。
S404:判断该数据库标识对应的数据库是否处于服务状态,若是,则执行步骤S405,否则返回步骤S403。
也即,如果堆栈中某个数据库标识对应的数据库并未处于服务状态,则说明该数据库是已经下线的数据库,因此并不将该数据库的数据库信息和备库信息记录在更新元数据中,返回步骤S403,继续弹出下一个数据库标识。
S405:获取该数据库的配置文件。
S406:根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新元数据中。
S407:确定该数据库当前的备库信息中包含的备库的数据库标识,如果当前该堆栈中不存在该备库的数据库标识,则将该备库的数据库标识添加到该堆栈中。
S408:判断当前该堆栈中是否存在数据库标识,若是,则返回步骤S403,否则执行步骤S409。
S409:将该更新元数据重新作为该数据库集群的元数据保存。
通过上述方法,当如图3所示的Oracle数据库集群的主备关系发生改变时,更新装置可根据各数据库的配置文件,准确的对元数据进行更新。
当如图3所示的Oracle数据库集群中某个数据库下线时,更新装置也会通过上述步骤S404判断出该数据库未处于服务状态,因此不将该数据库的数据库信息和备库信息记录在更新元数据中。
当如图3所示的Oracle数据库集群中新增某个数据库,或者如图3所示的Oracle数据库集群是一个新上线的数据库集群时,虽然通过上述步骤S402第一次添加到堆栈中的数据库标识可能并不完整,但是通过步骤S407,更新装置则可逐步的将Oracle数据库集群中的所有数据库标识都添加到堆栈中,后续则可以准确的将每个数据库(包括新增数据库)的数据库信息和备库信息记录在更新元数据中。
而且,当如图3所示的Oracle数据库集群是一个新上线的数据库集群时,只需要人工预置一次预置文件(记录主库的数据库标识)即可,后续再对该Oracle数据库集群的元数据进行更新时,则由于更新装置已经保存了该Oracle数据库集群的元数据,因此无需再人工预置该预置文件,直接读取保存的元数据即可。
以上是本申请实施例提供的对Oracle数据库集群的元数据进行更新的过程。下面再以更新MySQL数据库集群的元数据为例,对元数据的更新过程进行详细说明。
图5为本申请实施例提供的MySQL数据库集群的拓扑结构示意图,如图5所示,该数据库集群中共包括6个数据库,分别是数据库A、数据库B、数据库C、数据库D、数据库E、数据库F。其中,数据库A和数据库B均是主库,数据库C、数据库D是数据库A的备库,数据库B是数据库C的备库,数据库A是数据库B的备库,数据库E、数据库F是数据库D的备库。
由图5可见,与如图3所示的Oracle数据库集群的拓扑结构有所不同的是,MySQL数据库集群并不完全是一个树形结构,其中存在环形结构,图5中的环形结构就是由数据库A、数据库B、数据库C构成的,即,数据库A是数据库B的备库、数据库B是数据库C的备库、数据库C是数据库A的备库。也即,在MySQL数据库集群中,可以存在多个主库,而且主库也可以作为其他数据库的备库。对该MySQL数据库集群的元数据进行更新的过程具体可以如图6所示。
图6为本申请实施例提供的对MySQL数据库集群的元数据进行更新的详细过程,具体包括以下步骤:
S601:更新装置读取当前保存的该数据库集群的元数据,确定读取的该元数据中记录的各数据库标识。
具体的,如果该MySQL数据库集群是一个新上线的数据库集群,则更新装置当前尚未保存该MySQL数据库集群的元数据,此时更新装置可以将预先保存的预置文件作为该数据库集群的元数据进行读取。
其中,可预先在更新装置中预置一个预置文件,该预置文件中记录该MySQL数据库集群中的至少一个数据库标识。较佳的,可将至少一个主库(数据库A或数据库B)的数据库标识记录在该预置文件中。
S602:将确定的各数据库标识添加到预置的堆栈中。
S603:从该堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库。
S604:判断该数据库标识对应的数据库是否处于服务状态,若是,则执行步骤S605,否则返回步骤S603。
S605:获取该数据库的配置文件.
S606:根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新元数据中。
S607:确定该数据库当前的备库信息中包含的备库的数据库标识,如果当前该堆栈中不存在该备库的数据库标识,且在本次更新元数据的过程中未访问过该备库,则将该备库的数据库标识添加到该堆栈中。
S608:判断当前该堆栈中是否存在数据库标识,若是,则返回步骤S603,否则执行步骤S609。
S609:将该更新元数据重新作为该数据库集群的元数据保存。
由图6所示的过程可以看出,图6所示的步骤S607与图4所示的步骤S407的区别就在于,当对MySQL数据库集群的元数据进行更新时,如果某个数据库当前的备库的数据库标识不存在于堆栈中,则还要确定在本次对元数据进行更新的过程中未访问过该备库,才将该备库的数据库标识添加到该堆栈中,如果已经访问过该备库,则不将该备库的数据库标识添加到该堆栈中。
仍以图5所示的MySQL数据库集群为例进行说明,假设将数据库A、数据库B、数据库C的数据库标识添加到了堆栈中,即,当前堆栈中的数据库标识为:数据库A、数据库B、数据库C的数据库标识。则:
先从堆栈中弹出数据库C的数据库标识,并将数据库C当前的数据库信息和备库信息记录在更新元数据中,而该数据库C的备库是数据库B,数据库B的数据库标识存在于堆栈中,因此不向堆栈添加数据库B的数据库标识,此时,堆栈中的数据库标识为:数据库A、数据库B的数据库标识;
再从堆栈中弹出数据库B的数据库标识,并将数据库B当前的数据库信息和备库信息记录在更新元数据中,而该数据库B的备库是数据库A,数据库A的数据库标识也存在于堆栈中,因此不向堆栈添加数据库A的数据库标识,此时,堆栈中的数据库标识为:数据库A的数据库标识;
最后从堆栈中弹出数据库A的数据库标识,并将数据库A当前的数据库信息和备库信息记录在更新元数据中,而该数据库A的备库是数据库C和数据库D,由于此时数据库C和数据库D的数据库标识并不存在于堆栈中,但数据库C在本次对元数据进行更新的过程中已经访问过,因此不向堆栈添加数据库C的数据库标识,只添加数据库D的数据库标识,此时,堆栈中的数据库标识为:数据库D的数据库标识。
可见,由于图5中MySQL数据库集群的拓扑结构中存在由数据库A、数据库B、数据库C构成的环形结构,因此,如果在弹出数据库A的数据库标识时,将作为该数据库A的备库的数据库C的数据库标识添加到堆栈中,则会造成死循环。从而,在上述图6所示的对MySQL数据库集群的元数据进行更新时,步骤S607中就需要仅将当前堆栈中不存在的、且本次对元数据进行更新的过程中未访问过的备库的数据库标识添加到堆栈中,对于当前堆栈中已经存在的,或者本次对元数据进行更新的过程中已经访问过的备库的数据库标识,则不添加到堆栈中。
当然,上述图6所示的方法也可以应用于对Oracle的元数据进行更新的过程,可以达到同样的效果。
以上是本申请实施例提供的元数据的更新方法,基于同样的思路,本申请实施例还提供一种元数据的更新装置,如图7所示。
图7为本申请实施例提供的元数据的更新装置结构示意图,具体包括:
读取模块701,用于针对数据库集群,读取当前保存的所述数据库集群的元数据,确定读取的所述元数据中记录的各数据库标识;
收集模块702,用于访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将所述更新元数据重新作为所述数据库集群的元数据保存。
所述收集模块702具体包括:
堆栈单元7021,用于将确定的各数据库标识添加到预置的堆栈中;
访问单元7022,用于从所述堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库,获取该数据库的配置文件;
记录单元7023,用于根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新单元中;
判断更新单元7024,用于判断当前所述堆栈中是否存在数据库标识,若是,则指示所述访问单元7022再次从所述堆栈中弹出一个数据库标识,并继续进行后续步骤,否则,将所述更新元数据重新作为所述数据库集群的元数据保存。
所述记录单元7023还用于,在将该数据库当前的数据库信息以及该数据库当前的悲苦信息记录在更新元数据中之前,确定该数据库处于服务状态。
所述记录单元7023还用于,在所述判断更新单元7024判断当前所述堆栈中是否存在数据库标识之前,确定该数据库当前的备库信息中包含的该备库的数据库标识,如果当前所述堆栈中不存在该备库的数据库标识,则将该备库的数据库标识添加到所述堆栈中。
所述读取模块701具体用于,当未保存所述数据库集群的元数据时,将预先保存的预置文件作为当前保存的所述数据库集群的元数据进行读取,其中,所述预置文件中记录了所述数据库集群中的至少一个数据库的数据库标识。
本申请实施例提供一种元数据的更新方法及装置,该方法更新装置读取当前保存的数据库集群的元数据,确定读取的元数据中记录的各数据库标识,并访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将该更新元数据重新作为该数据库集群的元数据保存。通过上述方法,更新装置可根据当前保存的数据库集群的元数据中记录的各数据库标识,访问该数据库集群中的各数据库,以获取各数据库当前的数据库信息以及当前的备库信息,并据此对元数据进行更新,而无需人为对元数据进行更新,因此提高了元数据更新的效率和准确性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种元数据的更新方法,其特征在于,包括:
更新装置针对数据库集群,读取当前保存的所述数据库集群的元数据,确定读取的所述元数据中记录的各数据库标识;并
访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中;以及
将所述更新元数据重新作为所述数据库集群的元数据保存。
2.如权利要求1所述的方法,其特征在于,访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将所述更新元数据重新作为所述数据库集群的元数据保存,具体包括:
所述更新装置执行下述步骤A~E:
步骤A、将确定的各数据库标识添加到预置的堆栈中;
步骤B、从所述堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库,获取该数据库的配置文件;
步骤C、根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新元数据中;
步骤D、判断当前所述堆栈中是否存在数据库标识,若是,则返回步骤B,否则执行步骤E;
步骤E、将所述更新元数据重新作为所述数据库集群的元数据保存。
3.如权利要求2所述的方法,其特征在于,将该数据库当前的数据库信息以及该数据库当前的备库信息记录在更新元数据中之前,所述方法还包括:
确定该数据库处于服务状态。
4.如权利要求2所述的方法,其特征在于,判断当前所述堆栈中是否存在数据库标识之前,所述方法还包括:
确定该数据库当前的备库信息中包含的该备库的数据库标识;
如果当前所述堆栈中不存在该备库的数据库标识,则将该备库的数据库标识添加到所述堆栈中。
5.如权利要求2所述的方法,其特征在于,读取当前保存的所述数据库集群的元数据,具体包括:
当所述更新装置未保存所述数据库集群的元数据时,将预先保存的预置文件作为当前保存的所述数据库集群的元数据进行读取,其中,所述预置文件中记录了所述数据库集群中的至少一个数据库的数据库标识。
6.一种元数据的更新装置,其特征在于,包括:
读取模块,用于针对数据库集群,读取当前保存的所述数据库集群的元数据,确定读取的所述元数据中记录的各数据库标识;
收集模块,用于访问确定的各数据库标识对应的数据库,从各数据库中获取各数据库当前的数据库信息以及各数据库当前的备库信息,并记录在更新元数据中,将所述更新元数据重新作为所述数据库集群的元数据保存。
7.如权利要求6所述的装置,其特征在于,所述收集模块具体包括:
堆栈单元,用于将确定的各数据库标识添加到预置的堆栈中;
访问单元,用于从所述堆栈中弹出一个数据库标识,访问弹出的该数据库标识对应的数据库,获取该数据库的配置文件;
记录单元,用于根据获取到的该数据库的配置文件,确定该数据库当前的数据库信息以及该数据库当前的备库信息,并记录在更新单元中;
判断更新单元,用于判断当前所述堆栈中是否存在数据库标识,若是,则指示所述访问单元再次从所述堆栈中弹出一个数据库标识,并继续指示所述记录单元以及所述判断更新单元进行后续步骤,否则,将所述更新元数据重新作为所述数据库集群的元数据保存。
8.如权利要求7所述的装置,其特征在于,所述记录单元还用于,在将该数据库当前的数据库信息以及该数据库当前的备库信息记录在更新元数据中之前,确定该数据库处于服务状态。
9.如权利要求7所述的装置,其特征在于,所述记录单元还用于,在所述判断更新单元判断当前所述堆栈中是否存在数据库标识之前,确定该数据库当前的备库信息中包含的该备库的数据库标识,如果当前所述堆栈中不存在该备库的数据库标识,则将该备库的数据库标识添加到所述堆栈中。
10.如权利要求7所述的装置,其特征在于,所述读取模块具体用于,当未保存所述数据库集群的元数据时,将预先保存的预置文件作为当前保存的所述数据库集群的元数据进行读取,其中,所述预置文件中记录了所述数据库集群中的至少一个数据库的数据库标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484979.5A CN103838761B (zh) | 2012-11-23 | 2012-11-23 | 一种元数据的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484979.5A CN103838761B (zh) | 2012-11-23 | 2012-11-23 | 一种元数据的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838761A CN103838761A (zh) | 2014-06-04 |
CN103838761B true CN103838761B (zh) | 2017-03-01 |
Family
ID=50802272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210484979.5A Active CN103838761B (zh) | 2012-11-23 | 2012-11-23 | 一种元数据的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838761B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491558B (zh) * | 2017-09-08 | 2020-09-15 | 北京奇艺世纪科技有限公司 | 元数据更新方法及装置 |
CN110221854B (zh) * | 2019-05-30 | 2023-02-28 | 北京字节跳动网络技术有限公司 | 一种多进程数据更新方法、装置、介质和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366917B1 (en) * | 1998-04-01 | 2002-04-02 | Webputty, Inc. | Method of modifying a populated database structure by modifying metadata describing the database structure |
CN101008957A (zh) * | 2006-01-24 | 2007-08-01 | 国际商业机器公司 | 用于从备份数据映像建立数据库的方法和*** |
CN101271458A (zh) * | 2007-03-22 | 2008-09-24 | 阿里巴巴公司 | 一种分布式计算文件管理方法、***及其装置 |
US7610317B2 (en) * | 2005-02-22 | 2009-10-27 | Microsoft Corporation | Synchronization with derived metadata |
CN101854400A (zh) * | 2010-06-09 | 2010-10-06 | 中兴通讯股份有限公司 | 一种数据库同步部署及监控的方法和装置 |
CN102200977A (zh) * | 2010-03-23 | 2011-09-28 | 国际商业机器公司 | 多租户环境下扩展数据库表的方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7693856B2 (en) * | 2004-06-25 | 2010-04-06 | Apple Inc. | Methods and systems for managing data |
-
2012
- 2012-11-23 CN CN201210484979.5A patent/CN103838761B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366917B1 (en) * | 1998-04-01 | 2002-04-02 | Webputty, Inc. | Method of modifying a populated database structure by modifying metadata describing the database structure |
US7610317B2 (en) * | 2005-02-22 | 2009-10-27 | Microsoft Corporation | Synchronization with derived metadata |
CN101008957A (zh) * | 2006-01-24 | 2007-08-01 | 国际商业机器公司 | 用于从备份数据映像建立数据库的方法和*** |
CN101271458A (zh) * | 2007-03-22 | 2008-09-24 | 阿里巴巴公司 | 一种分布式计算文件管理方法、***及其装置 |
CN102200977A (zh) * | 2010-03-23 | 2011-09-28 | 国际商业机器公司 | 多租户环境下扩展数据库表的方法和*** |
CN101854400A (zh) * | 2010-06-09 | 2010-10-06 | 中兴通讯股份有限公司 | 一种数据库同步部署及监控的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103838761A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589812B (zh) | 磁盘碎片整理方法、装置及主机 | |
CN109271321B (zh) | 一种贡献代码数统计方法及装置 | |
CN105988910A (zh) | 存储装置寿命监控***以及其存储装置寿命监控方法 | |
CN105468473A (zh) | 数据迁移方法及数据迁移装置 | |
CN112597153B (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN104615594B (zh) | 一种数据更新方法及装置 | |
CN112214369A (zh) | 基于模型融合的硬盘故障预测模型建立方法及其应用 | |
CN108139965A (zh) | 管理服务器以及使用该管理服务器的管理方法 | |
US11366714B2 (en) | Behavior-driven die management on solid-state drives | |
CN105426375A (zh) | 一种关系网络的计算方法及装置 | |
CN106294128B (zh) | 一种导出报表数据的自动化测试方法及装置 | |
CN110347407A (zh) | 一种获取内存占用量的方法、装置、计算机设备及介质 | |
CN107479823A (zh) | 随机读写文件测试中的数据校验方法和装置 | |
US11226993B2 (en) | Method and apparatus for clustering data stream | |
CN105183949B (zh) | 一种铁路主数据的清洗方法 | |
CN103838761B (zh) | 一种元数据的更新方法及装置 | |
CN104965846B (zh) | MapReduce平台上的虚拟人建立方法 | |
CN110858122B (zh) | 存储数据的方法和装置 | |
CN109344255B (zh) | 标签的填充方法及终端设备 | |
CN112882956B (zh) | 一种通过数据组合计算自动生成全场景自动化测试案例的方法、装置、存储介质及电子设备 | |
CN107659430A (zh) | 一种节点处理方法、装置、电子设备和计算机存储介质 | |
CN108845767B (zh) | 存储中的卷的缓存加速管理方法、***、设备及存储介质 | |
CN112165412B (zh) | 一种基于时间序列模型的流量预测方法 | |
US20180129963A1 (en) | Apparatus and method of behavior forecasting in a computer infrastructure | |
CN104657216A (zh) | 一种资源池的资源分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191209 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox Patentee before: Alibaba Group Holding Co., Ltd. |