WO2020101343A1 - 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 - Google Patents
데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 Download PDFInfo
- Publication number
- WO2020101343A1 WO2020101343A1 PCT/KR2019/015429 KR2019015429W WO2020101343A1 WO 2020101343 A1 WO2020101343 A1 WO 2020101343A1 KR 2019015429 W KR2019015429 W KR 2019015429W WO 2020101343 A1 WO2020101343 A1 WO 2020101343A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- database server
- cdc
- meta information
- cdc file
- sql
- Prior art date
Links
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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
- G06F16/2358—Change logging, detection, and notification
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/24—Querying
- G06F16/245—Query processing
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Definitions
- the present invention relates to a database management system (DBMS), and more particularly, to a change data capture (CDC).
- DBMS database management system
- CDC change data capture
- a database system for implementing a banking business may be classified into a database that can be accessed simultaneously by multiple external customers and a database that can be accessed by internal employees, depending on the characteristics of the client accessing.
- a solution for transferring change data from a source database system to a target database system is called change data capture (CDC).
- the CDC can be implemented, for example, by reading and interpreting log files in the source database system and replaying the change data in the source database system to the target database system to be replicated.
- query offloading for improving the performance of the database
- only write / update is allowed in the master database, and at least part of the data in the master database is used in the staging database. Duplicate and copy and transfer the copied data to N slave databases.
- the write logic for the database is performed in the master database and the read logic can be performed in the slave database, so that separation according to the type of transaction can be possible. Accordingly, the performance of the database may be improved, such as an increase in the throughput of the database.
- Methods for implementing the CDC include, for example, a row timestamp method, a row version method, a lock method, a row state indicator method, and a table trigger ) And event programming.
- Patent Document 1 US Registered Patent US6,999,977
- Patent Document 2 US Registered Patent US7,111,023
- Patent Document 3 US Registered Patent US7,657,576
- Patent Document 4 US Registered Patent US7,647,354
- Patent Document 5 US Registered Patent US9,727,624
- Patent Document 6 US Registered Patent US9,442,995
- Patent Document 7 US Registered Patent US8,510,270
- Patent Document 8 US Registered Patent US9,298,878
- Patent Document 9 U.S. Registered Patent US7,461,103
- Patent Document 10 US Registered Patent US7,065,538
- Patent Document 11 US Registered Patent US7,668,878
- Patent Document 12 US Registered Patent US6,832,229
- Patent Document 13 US Registered Patent US8,799,213
- Patent Document 14 US Registered Patent US9,230,002
- Patent Document 15 U.S. Registered Patent US9,009,104
- Patent Document 16 US Registered Patent US6,981,004
- Patent Document 17 US Registered Patent US6,976,022
- Patent Document 18 U.S. Registered Patent US7,908,243
- Patent Document 19 US Registered Patent US9,841,909
- Patent Document 20 US Registered Patent US9,495,252
- Patent Document 21 US Registered Patent US8,676,759
- Patent Document 22 US Registered Patent US9,646,042
- Patent Document 23 US Registered Patent US9,047,392
- Patent Document 24 US Registered Patent US7,831,574
- Patent Document 25 US Registered Patent US8,874,506
- Patent Document 26 US Registered Patent US8,385,657
- Patent Document 27 US Patent Publication US2016-0314147
- Patent Document 28 US Published Patent US2018-0081924
- Embodiments of the present disclosure are for efficiently implementing change data capture (CDC) without stopping the DB.
- Embodiments of the present disclosure are for efficiently managing memory in a target DB.
- the computer program when executed by one or more processors of a source database server, causes the one or more processors to perform a method for change data capture (CDC).
- CDC change data capture
- the method includes: identifying a plurality of structured query language (SQL) operations generated for one or more objects associated with the transaction by analyzing a log record including information about the transaction being processed at the source database server; Determining whether a previous SQL operation history for an object corresponding to an individual SQL operation exists in a CDC file based on the order in which the identified multiple SQL operations have occurred; Determining information to be written to the CDC file based on the existence of a previous SQL operation history in the CDC file; Recording the determined information in the CDC file; And determining to transmit the CDC file to the target database server.
- SQL structured query language
- a database server includes one or more processors for implementing Change Data Capture (CDC) in accordance with one embodiment of the present disclosure.
- the database server may include a source database server, or any type of agent server existing between a source database server and a target database server.
- the one or more processors identify a plurality of Structured Query Language (SQL) operations generated for one or more objects associated with the transaction by analyzing log records containing information about the transaction being processed at the source database server action; Determining whether a previous SQL operation history for an object corresponding to an individual SQL operation exists in a CDC file based on the order in which the identified multiple SQL operations have occurred; Determining information to be recorded in the CDC file based on the existence of a previous SQL operation history in the CDC file; Recording the determined information in the CDC file; And determining to transmit the CDC file to the target database server.
- SQL Structured Query Language
- a computer program stored in a computer readable storage medium including encoded instructions when executed by one or more processors, causes one or more processors to perform a method for change data capture (CDC).
- the method comprises: receiving a CDC file from a source database server; Determining whether meta information corresponding to the target database server exists by reading meta information recorded in the CDC file; If the corresponding meta information does not exist, loading the meta information recorded in the CDC file into a memory; Reading an SQL operation recorded in a CDC file, and generating the SQL statement corresponding to the SQL operation by using the meta information on the memory corresponding to the read SQL operation; And applying the generated SQL statement to the target database server.
- CDC change data capture
- a database server that includes one or more processors for implementing Change Data Capture (CDC).
- the database server may include a target database server, or any type of agent server existing between a source database server and a target database server.
- the one or more processors include: receiving a CDC file from a source database server; Determining whether meta information corresponding to the target database server exists by reading meta information recorded in the CDC file; If there is no corresponding meta information, loading the meta information recorded in the CDC file into a memory; Reading an SQL operation recorded in a CDC file, and generating the SQL statement corresponding to the SQL operation by using the meta information on the memory corresponding to the read SQL operation; And applying the generated SQL statement to the target database server.
- CDC Change Data Capture
- change data capture can be efficiently implemented without stopping the DB.
- memory may be efficiently managed in a target DB.
- FIG. 1 exemplarily illustrates a database system according to an embodiment of the present disclosure.
- FIG. 2 exemplarily illustrates a source database server and a target database server in a database system according to an embodiment of the present disclosure.
- FIG. 3 is a flowchart exemplarily showing a CDC method performed in a source database server (or agent server) according to an embodiment of the present disclosure.
- FIG. 4 is a flowchart exemplarily illustrating a CDC method performed in a source database server (or agent server) according to an embodiment of the present disclosure.
- FIG. 5 is a flowchart exemplarily showing a CDC method performed in a target database server (or agent server) according to an embodiment of the present disclosure.
- FIG. 6 schematically illustrates CDC operations performed in a database system according to one embodiment of the present disclosure.
- FIG. 7 schematically illustrates CDC operations performed in a database system according to an embodiment of the present disclosure.
- FIG. 8 shows a block diagram of an exemplary computing device for implementing a CDC solution in accordance with one embodiment of the present disclosure.
- an embodiment As used herein, "an embodiment”, “yes”, “a good”, “an example”, etc. may not be construed as any aspect or design described being better or more advantageous than the other aspect or designs.
- the terms 'component', 'module', 'system', and 'interface' used in the following generally mean a computer-related entity, for example, a combination of hardware, hardware and software, And software.
- Computer-readable media as used herein may include any kind of storage media in which programs and data are stored so that they can be read by a computer system.
- a medium includes ROM (read only memory), RAM (random access memory), CD (compact disk) -ROM, DVD (digital video disk) -ROM, magnetic tape, floppy disk, optical data It may include a storage device. Additionally, such media may be distributed over networked systems to store computer readable codes and / or instructions in a distributed fashion.
- FIG. 1 shows a schematic diagram of a database system 100 according to an embodiment of the present invention.
- the database system 100 may include a source database server 110, a target database server 120 and / or an agent server 130.
- the database system 100 may further include a client.
- a client can refer to any type of node (s) in a system having a mechanism for communicating with database servers.
- such clients may include PCs, laptop computers, workstations, terminals, and / or any electronic device with network connectivity.
- the client may include any server implemented by at least one of an agent, an application programming interface (API), and a plug-in.
- API application programming interface
- operations to be described below of the source database server 110, the target database server 120 and / or the agent server 130 may be performed according to a query issued from a client.
- the database servers 110 and 120 may include any type of computer system or computer device, such as, for example, a microprocessor, mainframe computer, digital single processor, portable device and device controller, and the like. Each of these database servers 110 and 120, although not shown, may include a database management system (DBMS) and / or persistent storage.
- DBMS database management system
- the source database server 110 and the target database server 120 in the present specification may refer to any type of nodes in the database system 100.
- the source database server 110 and the target database server 120 may be integrated and managed and / or clustered in one database server.
- the source database server 110 and the target database server 120 may be integrated into one database server to configure multiple databases linked with each other.
- the source database server 110 and the target database server 120 may refer to heterogeneous database servers located remotely from each other.
- FIG. 1 shows two database servers, more database servers may be included in the scope of the present invention.
- database servers 110 and 120 may include one or more memories including a buffer cache.
- the database servers 110 and 120 may include one or more processors.
- the DBMS in the database server can be operated by the processor on the memory.
- the memory is a main storage device directly accessed by a processor, such as dynamic random access memory (DRAM) or static random access memory (SRAM), and stored information when the power is turned off. Can mean a volatile storage device that is instantly erased, but is not limited to these.
- This memory can be operated by a processor.
- the memory may store data tables containing data values and / or log records according to a transaction.
- log records may be stored in a separate component responsible for storing a separate transaction log in memory.
- a transaction in the present specification may generally mean a continuous processing unit for a series of operations such as information exchange or database update. Such a transaction represents a basic unit of work for completing the requested work in a state where the integrity of the database is guaranteed.
- the log record in the present disclosure means a record for a redo log, and changes to the structure and organization of data in the database (eg, table, column, row, data type, index, etc.) It may contain data records that identify the relevant changes.
- data values and / or log records of a data table may be written from memory to a permanent storage medium.
- the memory includes a buffer cache, where such data and / or log records may be stored in a block of the buffer cache.
- the data and / or log records can be written to a permanent storage medium by a background process.
- the permanent storage medium in the database server is, for example, a magnetic disk, an optical disk and a magneto-optical storage device, as well as a storage device based on flash memory and / or battery-backed memory, Refers to a non-volatile storage medium capable of continuously performing arbitrary data.
- the permanent storage medium can communicate with the processor and memory of the database servers 110 and 120 through various communication means. In additional embodiments, such permanent storage media may be located outside the database servers 110 and 120 to communicate with the database servers 110 and 120.
- DBMS is a program for allowing the database server 110 and 120 to perform operations such as retrieving, inserting, modifying, deleting, and / or managing log records, and the like, as described above, the database servers 110 and 120 ) In memory.
- the client and the database servers 110 and 120 or the database servers 110 and 120 may communicate with each other through a network (not shown).
- the network is a public switched telephone network (PSTN), x Digital Subscriber Line (xDSL), Rate Adaptive DSL (RADSL), Multi Rate DSL (MDSL), Very High Speed DSL (VDSL) ), UADSL (Universal Asymmetric DSL), HDSL (High Bit Rate DSL), and various wired communication systems such as a local area network (LAN).
- PSTN public switched telephone network
- xDSL Digital Subscriber Line
- RADSL Rate Adaptive DSL
- MDSL Multi Rate DSL
- VDSL Very High Speed DSL
- UADSL Universal Asymmetric DSL
- HDSL High Bit Rate DSL
- LAN local area network
- the network proposed in this specification is CDMA (Code Division Multi Access), TDMA (Time Division Multi Access), FDMA (Frequency Division Multi Access), OFDMA (Orthogonal Frequency Division Multi Access), SC-FDMA (Single Carrier-FDMA) ) And other systems.
- the network herein may include a database link (dblink), whereby the database servers 110, 120 communicate with each other via this database link to thereby or from other database servers. / You can also import log records.
- the techniques described herein can be used in the networks mentioned above, as well as other networks.
- the source database server 110 may be located remotely of the target database server 120. Also, the source database server 110 and the target database server 120 may refer to heterogeneous database servers that are servers of the same type or are not compatible with each other.
- the source database server 110 may include, but is not limited to, a device including a processor and memory for executing and storing instructions as any type of database. That is, the source database may include software, firmware and hardware, or a combination thereof.
- the software may include application (s) for creating, deleting and modifying database tables, schemas, indexes and / or data.
- Source database server 110 may receive transactions from a client or other computing device, and exemplary transactions search, add, modify, and / or retrieve data, tables and / or indexes, etc. from source database server 110 And deleting.
- the target database server 120 refers to a database server in which data changes generated in the source database server 110 are replicated or synchronized, and may include at least a part of the characteristics of the source database server 110 described above.
- the target database server 120 may store a copy of data, data types, tables, indexes and / or log records of the source database server 110.
- the log record in the present specification may refer to a data record capable of identifying a structure of data in a database, changes to an organization, and / or changes related to tables, columns, data types, indexes, data, and the like.
- the log record may mean information for uniquely identifying a transaction or operation and / or information for identifying a data record changed according to the transaction or operation.
- the agent server 130 may mean a separate entity for implementing CDC between the source database server 110 and the target database server 120.
- the agent server 130 can perform any operations to implement CDC features.
- the agent server 130 receives and processes data from the source database server 110 in the present disclosure, and then transmits the data to the target database server 120 so that the change data in the target database server 120 is performed. Can be allowed to apply.
- the agent server 130 is a server of any type and may include, but is not limited to, a device including a processor and memory for executing and storing instructions.
- the agent server 130 may include software, firmware and hardware, or a combination thereof.
- software that implements the operations of the agent server 130 may be installed in the source database 110 and / or target database 120.
- the agent server 130 may operate as any type of CDC module.
- the CDC module is installed on the source database server 120 and / or the target database server 130 to allow CDC features between the source database server 120 and the target database server 130 to be implemented. have.
- agent server 130 may be integrated as part of the source database server 110 and / or the target database server 120.
- the CDC function of the agent server 130 may be replaced by the target database server 120.
- FIG. 2 exemplarily illustrates a source database server 110 and a target database server 120 in a database system 100 according to one embodiment of the present disclosure.
- the components of the database servers 110 and 120 shown in FIG. 2 are exemplary, and additional components may exist, or some of the components may be omitted or integrated.
- the source database server 110 may include an extraction module 210, a recording module 220, a reading module 230, a transmitting / receiving module 240 and a storage module 250.
- the above-described modules may refer to a collection of functions performed by one or more processors of the source database server 110. Further, the operations and functions performed by the above-described modules may be performed by one or more threads or processes.
- the extraction module 210 may obtain a log record including information about a transaction processed by the source database server 110.
- the extraction module 210 may receive a redo log from the source database server 110 or access the redo log to the source database server 110.
- log records for the transaction may be recorded in the source database server 110.
- the extraction module 210 may obtain a log record for change data by checking and analyzing a redo log for a transaction recorded in a log buffer and / or log file in the source database server 110.
- the extraction module 210 may extract only the changed data by analyzing the redo log.
- the extraction module 210 may analyze the extracted log records based on one or more rules or based on any type of deep learning algorithm.
- the extraction module 210 may sort the log records based on the order according to when they occur. For example, the extraction module 210 may sort log records based on a System Change Number (SCN). That is, the recording module 210 may sort log records of the source database server 110 in time series.
- SCN System Change Number
- the extraction module 210 may identify a plurality of SQL operations generated for one or more objects associated with a transaction.
- the SQL operation may mean any type of operation written in SQL.
- the SQL operation may include, for example, DML (Data Manipulation Language) operation, DDL (Data Definition Language) operation, and / or DCL (Data Control Language) operation. Additionally, the extraction module 210 may arrange the identified SQL operations in the order in which they occurred and transfer them to the recording module 220.
- the recording module 220 may sort the log records based on the order according to when they occur. For example, the recording module 220 may sort log records based on a System Change Number (SCN). That is, the recording module 220 may sort the log records of the source database server 110 in time series. Therefore, a log record preceded by an SCN can be recorded before a log record having a subsequent SCN.
- the recording module 220 may determine whether a previous SQL operation history for an object corresponding to an individual SQL operation exists in a CDC file based on the order in which the identified multiple SQL operations have occurred.
- the CDC file may mean a file arranged in the order of transactions (computation), which is transferred from the source database server 110 to the target database server 120.
- the recording module 220 may determine information to be recorded in the CDC file based on the existence of a previous SQL operation history in the CDC file, and record the determined information in the CDC file.
- the recording module 220 determines whether or not a previous SQL operation history exists in the CDC file based on whether meta information about an object (eg, a table) corresponding to the SQL operation exists in the CDC file.
- the meta information may include at least one of table user information, table name information, column name information, column order information, and column type information.
- the recording module 220 may determine whether the previous SQL operation history exists in the CDC file based on whether a DML operation or a DDL operation has been previously performed on an object corresponding to the SQL operation.
- the above-described determination of the history of the previous SQL operation of the recording module 220 may be performed in the order in which the SQL operation occurs (eg, according to the temporal prognostic relationship of the SCN) for all objects associated with the transaction.
- the recording module 220 When the previous SQL operation history in the CDC file does not exist, the recording module 220 generates meta information about the object using DD (Data Dictionary) information for the object, and transfers the CDC file. When an SQL operation history exists, it may be decided not to generate meta information about the corresponding object. In addition, when the meta information for the object is generated, the recording module 220 determines to record the SQL operation and the meta information related to the object in the CDC file, and the meta information for the object is If not generated, it may be determined to record the SQL operation related to the object in the CDC file.
- DD Data Dictionary
- the reading module 230 may transmit the read CDC file or information recorded in the CDC file to the transmitting / receiving module 240 to allow the CDC file to be read and transmitted to the target database server.
- the reading module 230 may convert the CDC file or information recorded in the CDC file into a format suitable for the target database server 120.
- the transmission / reception module 240 may provide a communication function of the database servers 110 and 120 and / or a communication function with a client. For example, when the transmission / reception module 240 is located outside the source database server 110, the extracted log records may be received from the source database server 110.
- the transmission / reception module 240 may allow communication between the database servers 110 and 120 using any network and / or database link.
- the transmission / reception module 240 may receive input from a client.
- the transmission / reception module 240 may receive a request related to data storage, change, and query, and index build, change, and query from the client.
- the transmit / receive module 240 may allow the transfer of information between database servers by invoking a procedure with the database server.
- the transmission / reception module 240 may provide a function of transmitting / receiving any data / information transmitted between database servers in relation to database replication.
- the transmitting / receiving module 240 may transmit the received CDC file or information recorded in the CDC file to the target database server 120.
- the transmission / reception module 240 may convert the CDC file or information recorded in the CDC file into a format suitable for the target database server 120 and transmit the converted format to the target database server 120.
- the storage module 250 may store any data stored in connection with performing CDC features according to embodiments of the present disclosure, such as storing extracted log records.
- the storage module 250 may be included in the DBMS and / or permanent storage media. Additionally, the storage module 250 can perform storage related to the update request.
- the storage module 250 may determine to store data tables, index tables, and the like.
- the storage module 250 may determine the storage location on the data table and the storage location on the permanent storage medium for data.
- the target database server 120 may include a transmit / receive module 310, a write module 320, a read module 330, a change and reflect module 340, and a storage module 350 have.
- the transmission / reception module 310 may receive a CDC file or information stored in the CDC file from the source database server 110 or the agent server 130.
- the transmission / reception module 310 may provide a communication function of the same type as the transmission / reception module 240 of the source database server 110 described above.
- the recording module 320 may record CDC file or CDC file information received from the source database server 110 in the CDC file of the target database server 120. For example, the recording module 320 determines to use the same file as the CDC file received from the source database server 110 as its own CDC file, or writes the same information as the CDC file information to the CDC file. Can be. In a further embodiment, when the CDC file received from the source database server 110 is employed as it is, the recording module 320 in the target database server 120 may be replaced with the transmission / reception module 310.
- the reading module 330 may read a CDC file existing in the target database server 120.
- the reading module 330 may transfer the read CDC file to the change and reflection module 340.
- the reading module 330 may modify the CDC file to match the format of the target database server 120 and transfer it to the change and reflection module 340.
- the reading module 330 can read the CDC files in the order recorded by the source database server 110.
- the reading module 330 may determine data to be changed and reflected in the target database server 120 based on the read CDC file. In this case, the reading module 330 may perform an operation of comparing data reflected in the target database server 120 and data included in the read CDC file. Accordingly, the reading module 330 may control the change and reflection module 340 to reflect only the minimum data to the target database server 120.
- the reading module 330 may determine whether there is meta information corresponding to the target database server 120 by reading the meta information recorded in the CDC file.
- the change and reflection module 340 may check whether meta information about the object is recorded in the CDC file.
- the change and reflection module 340 may determine whether there is meta information corresponding to the target database server 120 by reading meta information recorded in the CDC file.
- the change and reflection module 340 may load the meta information in the memory when the meta information does not exist and use the existing meta information when the meta information exists. That is, the change and reflection module 340 determines whether to load the meta information based on whether the corresponding meta information is loaded in the memory of the target database server 120, and when the corresponding meta information exists, It is possible to determine to use the corresponding meta information loaded in the target database server 120 without loading the meta information recorded in the CDC file into memory.
- the change and reflection module 340 reads the SQL operation recorded in the CDC file, and generates meta-statement corresponding to the SQL operation by using meta information on the memory corresponding to the read SQL operation. Can be. Also, the change and reflection module 340 applies the generated SQL statement to the target database server 120 so that the change data in the source database server 110 can be finally reflected in the target database server 120. Allow.
- the change and reflection module 340 first recognizes metadata in the received CDC file, loads the metadata into memory, and then uses the loaded metadata after recognizing the SQL operation in the CDC file. By doing so, you can create an SQL statement for the corresponding SQL operation. After reflecting the generated SQL statement to the target database server 120, the change and reflect module 340 may recognize the commit for the transaction in the corresponding CDC file and reflect the commit to the target database server 120.
- FIG. 3 is a flowchart exemplarily showing a CDC method performed in a source database server (or agent server) according to an embodiment of the present disclosure.
- the steps shown in FIG. 3 are exemplary, and additional steps may be present or some of the steps may be omitted.
- the steps illustrated in FIG. 3 may be performed on the source database server 110 or the agent server 130. For convenience of description, it will be described below on the assumption that it is performed in the source database server 110.
- the source database server 110 may identify SQL operations generated for one or more objects associated with the transaction by analyzing a log record including information about the transaction processed by the source database server 110 ( 410).
- log records for the transaction may be recorded in the source database server 110.
- the source database server 110 may extract change data by analyzing log records recorded in the log buffer and / or log files in the source database server 110. For example, when DML occurs in the source table, the source database server 110 may extract new changed data after the most recently acquired / extracted changed data as change data.
- the source database server 110 may recognize the DDL for the table as change data and extract it as change data to be reflected in the target database server 120. . Additionally, the source database server 110 may sort change data in time series based on the SCN value of the change data.
- the source database server 110 may determine whether a previous SQL operation history for an object corresponding to an individual SQL operation exists in a CDC file based on the order in which the identified multiple SQL operations have occurred (420). Then, the source database server 110 may determine information to be recorded in the CDC file based on the existence of a previous SQL operation history in the CDC file (430). For example, when the source database server 110 extracts change data representing operations on the first DB object, the source database server 110 has previously performed a DML or DDL operation on the first DB object.
- the source database server 110 can determine whether In this example, the source database server 110, if DML or DDL operation has not been previously performed on the first DB object, meta information about the first DB object from memory (eg, Data Dictionary (DD) information) Can receive The source database server 110 may generate meta information about the first DB object by using DD information for the first DB object. If the DML or DDL operation was previously performed on the first DB object, the source database server 110 will not generate additional meta information because there will be meta information about the first DB object.
- meta information may include at least one of table user information, table name information, column name information, column order information, and column type information.
- the source database server 110 in the order in which SQL operations are performed for all objects associated with a specific transaction, the history of previous SQL operations for each object that is a target of the corresponding SQL operation exists in the CDC file Can determine whether or not.
- the source database server 110 may record the determined information in a CDC file (440). In step 430, it may be determined whether meta information generated by generating meta information is recorded in a CDC file. In step 440, the source database server 110 may record both meta information and SQL operation information in a CDC file, or only SQL operation information in a CDC file. In one embodiment, the source database server 110 may record meta information and SQL operation information in a CDC file in the CDC file in front of the SQL operation information. Further, according to an embodiment of the present disclosure, when the first transaction is committed before the second transaction, the source database server 110 may include the SQL operation included in the first transaction and the SQL included in the second transaction. You can write to the beginning of the CDC file rather than the operation. According to the above-described recording rules, the source database server 110 and the target database server 120 can efficiently implement CDC while recording both meta information and SQL operation information in a single file.
- the meta information about a specific object is first read. Then, the SQL statement corresponding to the SQL operation information related to the meta information can be easily written using the meta information.
- CDC since SQL operations and meta information can be recorded together in a single CDC file, compared to an embodiment in which a separate file managing only meta information exists, CDC can be implemented in an efficient manner. For example, in the embodiment in which a separate file for recording only SQL operation information and recording and managing meta information exists in the CDC file, meta information for all objects must be stored in the file for recording meta information. . Furthermore, when only the meta information is managed separately, when DDL occurs, since the meta information needs to be corrected, there is no choice but to stop operating in the database server, which may be referred to as “Stop The World”.
- meta information since the meta information is managed as a meta file from the viewpoint of the target database server 120, a meta file storing meta information about all objects must be loaded in its memory. Therefore, according to this embodiment, there is a disadvantage that the usage of the memory is maximized.
- meta information and SQL operation information are managed as one file according to an embodiment of the present disclosure, data is used to implement CDC while reducing memory usage between the source database server 110 and the target database server 120. Latency can also be minimized. According to an embodiment of the present disclosure, since only meta information about a table in which DML or DDL has occurred is recorded in one CDC file, memory usage can be significantly reduced.
- memory loading is performed in units of metadata for a specific table, and after the metadata for the specific table is loaded into memory, SQL operations on the specific table are performed.
- the source database server 110 may determine to transmit the CDC file to the target database server 120 (450). Communication between the source database server 110 and the target database server 120 may be performed by any form of communication network and / or any form of dblink.
- FIG. 4 is a flowchart exemplarily illustrating a CDC method performed in a source database server (or agent server) according to an embodiment of the present disclosure.
- the steps shown in FIG. 4 are exemplary, and additional steps may be present or some of the steps may be omitted.
- the steps illustrated in FIG. 4 may be performed at the source database server 110 or agent server 130. For convenience of description, it will be described below on the assumption that it is performed in the source database server 110.
- the source database server 110 analyzes log records that contain information about transactions processed by the source database server 110, thereby generating SQL operations on one or more objects associated with the transaction. Can be identified (510).
- log records for the transaction may be recorded in the source database server 110.
- the source database server 110 may extract change data by analyzing log records recorded in the log buffer and / or log files in the source database server 110. For example, when DML occurs in the source table, the source database server 110 may extract new changed data after the most recently acquired / extracted changed data as change data.
- the source database server 110 may recognize the DDL for the table as change data and extract it as change data to be reflected in the target database server 120. . Additionally, the source database server 110 may sort change data in time series based on the SCN value of the change data.
- the source database server 110 may determine a type for each of the identified plurality of SQL operations (520). For example, the source database server 110 may determine whether each of the identified plurality of SQL operations is a DML operation or a DDL operation. As described above, depending on the type of SQL operation, a method of recording information in a CDC file may be different.
- the source database server 110 may determine that it is necessary to determine whether or not a previous SQL operation history for an object corresponding to the DML operation exists ( 530). Then, the source database server 110 may determine whether a previous SQL operation history exists in the CDC file.
- the source database server 110 may generate meta information about the object using DD information for the object (550). If it is determined that the previous SQL operation history does not exist in the CDC file, the source database server 110 may determine to use the previously generated meta information without generating meta information about the corresponding object (550).
- the source database server 110 may determine to record the SQL operation related to the object and the generated meta information in a single CDC file (560). In addition, when it is determined that generation of meta information for the corresponding object is not necessary, the source database server 110 may determine to record the SQL operation in the single CDC file.
- the source database server 110 may determine to transmit the CDC file to the target database server 120 (570).
- the source database server 110 may determine not to determine whether or not a previous SQL operation history for an object corresponding to the DDL operation exists in the CDC file (540). . Then, the source database server 110 may determine to generate meta information about the object corresponding to the DDL operation and record the generated meta information in the CDC file based on the received DDL operation (540).
- meta information corresponding to the DDL operation may be recorded at a position subsequent to the recording position of other SQL operations performed before the DDL operation in the CDC file. Then, the source database server 110 may determine to transmit the CDC file in which the information is recorded to the target database server 120 (570).
- FIG. 5 is a flowchart exemplarily illustrating a CDC method performed in the target database server 120 (or agent server 130) according to an embodiment of the present disclosure.
- the steps shown in FIG. 5 are exemplary, and additional steps may be present or some of the steps may be omitted.
- the steps illustrated in FIG. 5 may be performed on the target database server 120 or the agent server 130. For convenience of description, hereinafter, it is assumed that the target database server 120 is performed.
- the target database server 120 may receive a CDC file from the source database server 110 (1010).
- the target database server 120 may receive the CDC file generated by the source database server 110 and apply it to the target database server 120.
- Communication between the source database server 110 and the target database server 120 may be performed by any form of communication network and / or any form of dblink.
- the target database server 120 may determine whether meta information corresponding to the target database server 120 exists in the memory by reading meta information recorded in the received CDC file (1020). CDC files may be read from the target database server 120 in the order recorded by the source database server 110. Accordingly, the target database server 120 reads the CDC files recorded according to a predetermined recording rule in the source database server 110 in the recording order and performs corresponding operations in the read order, thereby reducing memory usage. In addition, the CDC operation can be performed without latency.
- the target database server 120 may load the meta information recorded in the CDC file into the memory (1030). In addition, when the corresponding meta information exists, the target database server 120 may determine not to newly load the meta information recorded in the CDC file, but to use the existing meta information (1030). For example, when meta information for a specific table is previously loaded in the memory of the target database server 120, since there is no need to newly load meta information into the memory, the target database server is used using the existing loaded meta information. A change data reflection operation to 120 may be performed.
- the target database server 120 reads the SQL operations recorded in the CDC file in order, and generates the SQL statement corresponding to the SQL operation by using the meta information on the memory corresponding to the read SQL operation. Can (1040).
- the SQL statement generated by the target database server 120 may mean an SQL statement for generating an SQL operation performed by the source database server 110.
- the target database server 120 automatically reflects the change data to its DB by performing the same SQL operation performed by the source database server 110 using the SQL operation information and meta information recorded in the CDC file. I can do it.
- the target database server 120 may apply the generated SQL statement to the target database server.
- change data corresponding to the SQL operation performed automatically by the source database server 110 may be reflected in the target database server 120.
- the target database server 120 reflects the change data in its DB
- meta information about the object where the SQL operation occurred among the objects of the source database server 110 will be recorded. Can be.
- the target database server 120 does not need to load meta information for all objects in its memory, and only meta information for objects related to change data in the source database server 110 is stored. Since it is loaded in, the memory usage within the database server can be significantly reduced.
- FIG. 6 schematically illustrates CDC operations performed in a database system according to one embodiment of the present disclosure.
- operations performed between the source database server 110 and the target database server 120 are exemplarily represented.
- the source database server 110 may include a source DBMS 610 and a source processor 620.
- the source DBMS 610 may be operated by the source processor 620 on the memory of the source database server 110.
- the memory is a main storage device directly accessed by a processor, such as dynamic random access memory (DRAM) or static random access memory (SRAM), and stored information when the power is turned off. Can mean a volatile storage device that is instantly erased, but is not limited to these.
- a memory can be operated by the processor as described above.
- the memory can store any type of data, such as change data.
- the memory may store a data table including data values.
- change data and / or data values of the data table may be recorded from memory to a permanent storage medium.
- the memory includes a buffer cache, and data may be stored in a data block of the buffer cache. The data can be recorded on a permanent storage medium by a background process.
- Persistent storage media herein include, for example, magnetic disks, optical disks and magneto-optical storage devices, as well as flash memory and / or battery-backed memory based storage devices.
- the permanent storage medium may communicate with the processor and memory of the database servers 110 and 120 through various communication means. In additional embodiments, such permanent storage media may be located outside the database servers 110 and 120 to communicate with the database servers 110 and 120.
- DBMS (610, 710) is a program for allowing the database server 110 and 120 to perform operations such as retrieving, inserting, modifying and / or deleting necessary data, and as described above, the database server 110 and It may be implemented by the processor (620, 720) in the memory of 120).
- the source DBMS 610 may determine to generate, manage and store redo logs for transactions occurring in the source database server 110.
- the source processor 620 extracts and analyzes the stored redo logs to implement the CDC operation (630), records the contents in the CDC file 670, and reads the CDC file 670 (650) to the network. It may be transmitted to the target database server 120 through 140 (660).
- extract module 210 write module 220 in FIG.
- the read module 230 and the transmit / receive module 240 may correspond to operations performed.
- extract 630, write 640, read 650 and transmit 660 operations may each be performed by separate threads.
- a plurality of extract 630, write 640, read 650 and transmit 660 operations may be performed by a single thread.
- the operations of extracting 630, writing 640, reading 650 and transmitting 660 may be performed by separate processes, or a process may perform a plurality of operations among the above operations.
- a CDC operation in the source processor 620 may be initiated.
- the source processor 620 may perform the extraction operation 630.
- the source processor 620 may perform a CDC operation for a plurality of transactions related to corresponding Commit operations when a predetermined number of Commit operations are performed (eg, when Commit operations are performed for two transactions). Can be initiated.
- CDC operation of the source processor 620 may be initiated according to a predetermined time period or a predetermined SCN period.
- transactions 680 for the T1 object and the T2 object may be fetched from the source DBMS 610.
- the transactions 680 may include a first transaction and a second transaction.
- the first transaction may include a Delete operation and a Commit operation on the T1 object.
- the second transaction may include an Insert operation on the T1 object, an Update operation on the T2 object, and a Commit operation.
- the SQL operations 680 performed on the source DBMS 610 may be sorted in time series and on a transaction basis based on when the Commit operation is performed.
- the SQL operations for the first transaction since the Commit operation for the first transaction is performed before the Commit operation for the second transaction, the SQL operations for the first transaction may be disposed in front of the SQL operations for the second transaction.
- the source processor 620 may extract the Delete operation and the Commit operation for the T1 object from the redo log, sort them in chronological order, and deliver them to the read 640 thread, for example.
- the read 640 thread may check the Delete operation (that is, Delete T1) for the T1 object that is disposed first, and determine whether a previous SQL operation history for the T1 object exists in the CDC file 670. . In one example, the read 640 thread may determine whether a previous DML or DDL for the T1 object has been made. As shown in FIG.
- the read 640 thread uses the DD (Data Dictionary) information held in the memory and meta information about T1 (ie, T1 DD). Then, the read 640 thread may write T1 DD, which is meta information about T1, and Delete T1, which is a Delete operation on T1, to the CDC file 670.
- T1 DD may be recorded in a CDC file in front of Delete T1 which is SQL operation information.
- the read 640 thread can write a commit operation on the T1 object to the CDC file 670. In this case, the Commit operation may be recorded in a portion after the Delete T1 in the CDC file 670 is recorded.
- the extracting 630 thread may extract the Insert operation for the T1 object, the Update operation for the T2 object, and the Commit operation for the second transaction included in the second transaction in the redo log. .
- the extraction 630 thread may be arranged in the order of Insert T1, Update T2, and Commit operations according to the order of occurrence of SQL operations. Since the second transaction is committed after the first transaction, among the SQL operations 680 performed in the source DBMS 610, SQL operations related to the first transaction are placed before SQL operations related to the second transaction. It can be arranged as much as possible.
- the read 640 thread will read Delete T1 and Commit operations for the first transaction, and then read operations related to transaction 2.
- the read 640 thread reads the Insert operation on the T1 object (ie, Insert T1) and whether the DML or DDL for the T1 object has occurred in the CDC file 670 (i.e., whether a previous SQL operation history exists). Can judge. Since the DD information for the T1 object is recorded in the CDC file 670 in processing the operations related to the first transaction (ie, Delete T1), the read 640 thread is assigned to the T1 object in the CDC file 670. It will be judged that there is a previous SQL operation history. In this situation, the read 640 thread may write an Insert operation (ie, Insert T1) on the T1 object to the next recording location in the CDC file 670 without generating meta information for the T1 object.
- the read 640 thread can recognize the Update operation on the T2 object.
- the read 640 thread will determine whether the previous SQL operation exists for the T2 object by checking the CDC file 670, and since the previous SQL operation does not exist, the DD for the T2 object stored in the memory Meta information (ie, T2 DD) for the T2 object may be generated using the information.
- the read 640 thread can then write meta information about the T2 object to the next location in the CDC file 670.
- the read 640 thread may record an Update operation (that is, Update T2) for the T2 object at a subsequent position of the location where the meta information for the T2 object is recorded. Additionally, the read 640 thread can write a Commit operation for the T2 object to the CDC file 670.
- the Commit operation may be recorded in a portion after the Update T2 in the CDC file 670 is recorded.
- Information 690 may be recorded in the CDC file 670 based on the Commit time for transactions and the occurrence time of operations in the above-described manner. Since both meta information and SQL operation information can be recorded in a single CDC file 670 in this manner, the CDC can be implemented in an efficient manner. In addition, only the meta information where the Commmit has occurred can be loaded from the memory in the source database server 110, and the CDC file 670 contains information 690 in order according to the recording rules according to embodiments of the present disclosure.
- the target database server 120 can easily reflect the changed data in its DB while reading in the order recorded in the single CDC file 670 created by the source database server 110. That is, meta information about an object in which an SQL operation occurs among objects of the source database server 110 may be recorded in a CDC file used when the target database server 120 reflects change data in its DB. In this way, the target database server 120 does not need to load meta information for all objects in its memory, and only meta information for objects related to change data in the source database server 110 is stored. Since it is loaded in, the memory usage within the database server can be significantly reduced.
- the client 110 and the database servers 120 and 130 or the database servers 120 and 130 can communicate with each other via a network (not shown).
- the network is a public switched telephone network (PSTN), x Digital Subscriber Line (xDSL), Rate Adaptive DSL (RADSL), Multi Rate DSL (MDSL), Very High Speed DSL (VDSL) ), UADSL (Universal Asymmetric DSL), HDSL (High Bit Rate DSL), and various wired communication systems such as a local area network (LAN).
- PSTN public switched telephone network
- xDSL Digital Subscriber Line
- RADSL Rate Adaptive DSL
- MDSL Multi Rate DSL
- VDSL Very High Speed DSL
- UADSL Universal Asymmetric DSL
- HDSL High Bit Rate DSL
- LAN local area network
- the network proposed in this specification is CDMA (Code Division Multi Access), TDMA (Time Division Multi Access), FDMA (Frequency Division Multi Access), OFDMA (Orthogonal Frequency Division Multi Access), SC-FDMA (Single Carrier-FDMA) ) And other systems.
- the network in this specification may include a database link (dblink), so that the source database server 110 and the target database server 120 (or agent server 130) communicate with each other through such a database link. Data from another database server.
- the database link may include a database link from the source database server 110 to the target database server 120.
- the target database server 120 may include a target DBMS 710 and a target processor 720.
- the target DBMS 710 may be operated by the target processor 720 on the memory of the target database server 120. Since the hardware configurations of the target database server 120 and the description of the target DBMS 710 are the same as the hardware configurations of the source database server 110 and the configuration of the source DBMS 610 described above, the corresponding description is here. Will be omitted from.
- the target processor 720 receives (730) the CDC file 670 to implement the CDC operation, records the contents of the CDC file 770 (740) (or receives the received CDC file 670).
- the CDC file 770 may be used as it is, and the CDC file 770 may be read 750 to reflect 760 the change data to the target DBMS 710.
- Each of the receive 730, write 740, read 750, and change / reflect 760 operations of the target processor 720 as described above, receive module 310, write module 320 in FIG. ), And may correspond to operations performed by the read module 330 and the change / reflect module 340. Additionally, receive 730, write 740, read 750 and change / reflect 760 operations may each be performed by separate threads.
- a plurality of receive 730, write 740, read 750 and change / reflect 760 operations may be performed by a single thread.
- the receive 730, write 740, read 750 and change / reflect 760 operations may each be performed by separate processes, or a process may perform multiple operations among the above operations.
- the target processor 720 of the target database server 120 may receive the CDC file 670 from the source database server 110.
- the target processor 720 of the target database server 120 records 740 the received CDC file 670 in the same way as its CDC file 770, or records the received CDC file 670 in its CDC file (670). 770).
- the read 750 thread of the target processor 720 may read the information 780 recorded in the CDC file 770 and transfer it to the change / reflect 760 thread.
- the change / reflect 760 thread may read the meta information called T1 DD first recorded in the CDC file 770 to determine whether DD meta information for the T1 object exists in its memory.
- the target database server 120 may load the T1 DD meta information into its memory.
- the change / reflect 760 thread can confirm Delete T1 recorded after the information T1 DD in the CDC file 770.
- the change / reflect 760 thread may automatically generate an SQL statement for performing a Delete operation on the T1 object by using the T1 DD meta information loaded on the memory and reflect it on the target DBMS 710.
- the change / reflect 760 thread can confirm the Commit and reflect the Commit to the target DBMS 710. Then, the change / reflect 760 thread can check Insert T1 which is the next recorded information in the CDC file 770. Since it is an operation on the T1 object, the change / reflect 760 thread can generate an SQL statement for performing an Insert operation on the T1 object using meta information about the T1 object loaded in memory.
- the change / reflect 760 thread may check the T2 DD meta information recorded at the next position in the CDC file 770.
- the change / reflect 760 thread may check whether DD meta information for the T2 object exists in the memory of the target database server 120.
- the change / reflect 760 thread loads meta information about the T2 object (that is, T2 DD meta information) into the memory of the target database server 120 when it is determined that there is no meta information about the T2 object loaded in its memory. can do.
- the change / reflect 760 thread can then recognize the Update T2 recorded at the next location in the CDC file 770.
- the change / reflect 760 thread may load meta information about the T2 object from the memory and automatically generate an SQL statement corresponding to the Update operation for the T2 object by using the meta information.
- the change / reflect 760 thread can reflect the SQL statement for performing the Update operation on the T2 object in its DBMS 710.
- the change / reflect 760 thread can confirm the commit and reflect it to the DBMS 7
- a recording rule for a CDC file may include recording meta information about a specific object in a first order and subsequently recording DML or DDL for a specific table.
- a recording rule for a CDC file determines the order of transactions to be recorded according to the order in which the commits occur, and records meta information in the SQL operation information before, for a single CDC file. Through delivery, CDC can be easily achieved.
- memory usage may be significantly reduced compared to a configuration in which all meta information is loaded into memory and CDC is implemented (ie, a configuration in which meta information and SQL operation information are managed by individual files).
- CDC features according to an embodiment of the present disclosure can significantly reduce memory usage compared to an existing structure in reflecting DML or DDL for a plurality of tables.
- CDC implementations that separately manage meta information and SQL operation information share a separate file that records meta information about all objects while transmitting and receiving between the two database servers. Accordingly, these implementation methods require that the target database server 120 also retains DD information for an object in which DML has not occurred in memory. That is, the target database server 120 should retain DD information for as many objects as possible in memory according to all objects (eg, tables) or memory capacity.
- the source database server 110 is idle until the transmission of the meta file is completed even if the file that records the meta information must be manually generated and transmitted or the file that records the meta information is automatically transmitted. You must wait in the (idle) state.
- CDC implementations according to an embodiment of the present disclosure do not need to separately generate and transmit a meta file in which meta information is stored, and do not generate an idle state of the source database server 110. Accordingly, CDC implementation schemes according to an embodiment of the present disclosure may allow real-time DDL synchronization. Furthermore, since CDC implementations according to an embodiment of the present disclosure manage DD information for a table in which DML has occurred, memory management in the target database server 120 can be efficiently performed. For example, since a DD for a CDC file is managed with respect to read / write and a DD for a DML-generated object with respect to change / reflection will be managed, a more resource-efficient CDC implementation may be possible. have.
- FIG. 7 schematically illustrates CDC operations performed in a database system according to an embodiment of the present disclosure.
- the embodiment shown in FIG. 7 is a DDL feature added to the embodiment shown in FIG. 6, and contents common to the embodiments in FIG. 6 will be omitted below for convenience of description.
- the extract 830, write 840, read 850, and transmit 860 operations in FIG. 7 include extract 630, write 640, read 650, respectively, in FIG. And transmit 660 operations.
- the receive 930, write 940, read 950, and change / reflect 960 operations in FIG. 7 include receive 730, write 740, and read 750 in FIG. 6, respectively. And change / reflect 760 operations.
- the source DBMS 810, the source processor 820, the target DBMS 910, and the target processor 920 in FIG. 7 are the source DBMS 610, the source processor 620, and the target DBMS in FIG. 6, respectively. 710) and the target processor 720.
- transactions 880 may be imported into the source DBMS 810.
- the transactions 880 include a first transaction including Insert T1, Update T2 and Commit, a second transaction including Delete T3 and Commit, and a third transaction including DDL T1 can do.
- the source processor 820 may arrange operations included in the incoming transactions in the order of occurrence time, as indicated by reference numeral 880.
- the extracting 830 thread may analyze the redo log of transactions generated in the source DBMS 810, extract information about the changed data as reference number 880, and sort the extracted data.
- the source processor 820 may perform SQL operations related to the second transaction and SQL related to the first transaction.
- the CDC file 870 can be written before operations. SQL operations related to transactions may be recorded in the CDC file 870 according to the time sequence generated within the transaction.
- the record 840 thread can recognize that a Delete operation has been performed on the T3 object in the second transaction.
- the record 840 thread may check whether meta information about the T3 object exists in the CDC file 870. That is, the record 840 thread can check in the CDC file 870 whether there is a previous SQL execution history for the T3 object. Since there is no meta information for the T3 object, the recording 840 thread generates meta information for the T3 object by using the DD information loaded on the memory, and the generated meta information (ie, T3 DD # 1) ) In the CDC file 870. Then, the record 840 thread may record a Delete operation on the T3 object (ie, Delete T3) in the CDC file 870. Additionally, the record 840 thread may write a Commit operation for the second transaction to the CDC file 870. The recording position of the Commit operation is later than that of Delete T3.
- the record 840 thread may begin writing to the CDC file 870 for the first transaction after completing writing to the CDC file 870 for the second transaction.
- the record 840 thread may check Insert T1 and check whether meta information about the T1 object exists in the CDC file 870.
- the record 840 thread stores the meta information for the T3 object in DD information (eg, a T3 object) in memory. DD information for.
- the recording 840 thread may record meta information (ie, TT DD # 1) for the created T3 object as a CDC file 870.
- the record 840 thread can record the Insert T1 operation previously identified in the CDC file 870 after the location where the meta information is recorded.
- the record 840 thread can check the Update T2 operation, which is the SQL operation generated after Insert T1 in the first transaction.
- the record 840 thread may check whether meta information about the T2 object exists in the CDC file 870. Since the meta information about the T3 object and the meta information about the T2 object are recorded in the current CDC file 870, the record 840 thread can determine that there is no meta information about the T2 object. In this case, the recording 840 thread may generate meta information about the T2 object by referring to the DD information about the T2 object loaded on the memory.
- the recording 840 thread may record meta information of the generated T2 object as a CDC file 870. Meta information of the T2 object may be recorded at a position subsequent to the recording position of the insert T1 recorded immediately before. Then, the recording 840 thread may record the Update T2 operation corresponding to the recorded meta information subsequent to the CDC file 870. Then, the record 840 thread can record the Commit operation for the first transaction in the CDC file 870. The recording position of the Commit operation is later than that of Update T2.
- the record 840 thread may check the third transaction (including DDL T1) after all operations for the first transaction are reflected.
- the record 840 thread may determine the type of the SQL operation, and determine that it is a DDL type. That is, when it is determined that the type of the SQL operation is a DML operation, the record 840 thread determines to determine whether or not the previous SQL operation history for the object corresponding to the DML operation exists in the CDC file 870. Can be.
- the record 840 thread when it is determined that the type of the SQL operation is a DDL operation, the record 840 thread does not determine whether a previous SQL operation history for an object corresponding to the DDL operation exists in the CDC file 870, and the Based on the DDL operation, it is possible to generate meta information about an object corresponding to the DDL operation and to record the generated meta information in the CDC file. Accordingly, the recording 840 thread may generate meta information corresponding to the DDL operation for T1 and record the DDL T1 in the CDC file 870 as illustrated in FIG. 7.
- the read 850 thread can read the CDC file 870 recorded by the write 840 thread and deliver it to the send 860 thread.
- the transmission 860 thread may transmit the received CDC file 870 to the target database server 120 through the network 140.
- the target processor 920 of the target database server 120 may receive the CDC file 870 by a receive 930 thread.
- the record 940 thread of the target processor 920 may record the information recorded in the CDC file 870 received in its CDC file 970 in the same order.
- the recording 940 thread of the target processor 920 may use the received CDC file 870 as its own CDC file 970. Therefore, the CDC file 970 of the target database server 120 may include information in the order recorded by the source database server 110 as shown by reference numeral 980.
- the read 950 thread of the target database server 120 may transfer the information 980 recorded in the CDC file 970 to the change / reflect 920 thread, and the change / reflect 920 thread may receive the received information.
- Reflecting on the target DBMS 910 synchronization of the target DBMS 910 and the source DBMS 810 may be performed.
- the change / reflect 920 thread may perform reflection to the target DBMS 910 in the order of recording the information expressed by reference number 980. Since the meta information for a specific SQL operation is first recorded in the CDC file 970, and the corresponding SQL operation information can be recorded thereafter, and the corresponding meta information is recorded for the DDL operation, the target database server 120 itself It is not necessary to load meta information about many objects in the memory of. It can process reflection by loading meta information about the object where DML has occurred. Since the detailed reflection method has been described above with reference to FIG. 6, a description thereof will be omitted in FIG. 7.
- FIG. 8 shows a block diagram of an exemplary computing device for implementing a CDC solution in accordance with one embodiment of the present disclosure.
- program modules include routines, procedures, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules include routines, procedures, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- routines include routines, procedures, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules include routines, procedures, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules include routines, procedures, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- the method of the present invention includes single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc. It will be appreciated that it may be implemented with other computer system configurations, including those that may operate in conjunction with one or more associated devices.
- the described embodiments of the invention may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote memory storage devices.
- Computers typically include a variety of computer readable media. Any computer-readable medium can be a computer-readable medium, and the computer-readable medium can include a computer-readable storage medium and a computer-readable transmission medium. Such computer-readable storage media include volatile and non-volatile media, removable and non-removable media. Computer readable storage media includes volatile and nonvolatile media, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer-readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage Devices, or any other medium that can be accessed by a computer and used to store desired information.
- Computer readable transmission media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism. Includes information delivery media.
- modulated data signal means a signal in which one or more of the characteristics of the signal are set or changed to encode information in the signal.
- computer readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above-described media are also intended to be included within the scope of computer-readable transmission media.
- System bus 1108 connects system components, including, but not limited to, system memory 1106 to processing device 1104.
- the processing device 1104 can be any of a variety of commercial processors. Dual processor and other multiprocessor architectures may also be used as the processing unit 1104.
- the system bus 1108 can be any of several types of bus structures that can be further interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures.
- System memory 1106 includes read-only memory (ROM) 1110 and random access memory (RAM) 1112.
- ROM read-only memory
- RAM random access memory
- a basic input / output system (BIOS) is stored in a non-volatile memory 1110 such as ROM, EPROM, EEPROM, etc., and this BIOS is basic to help transfer information between components in the computer 1102 at the same time as during startup. Contains routines.
- the RAM 1112 may also include high-speed RAM, such as static RAM for caching data.
- Computer 1102 also has an internal hard disk drive (HDD) 1114 (eg, EIDE, SATA) —this internal hard disk drive 1114 can also be configured for external use within a suitable chassis (not shown).
- HDD hard disk drive
- FDD magnetic floppy disk drive
- optical disk drive 1120 e.g., CD-ROM Disc 1122, or for reading from or writing to other high-capacity optical media such as DVDs.
- the hard disk drive 1114, the magnetic disk drive 1116, and the optical disk drive 1120 are the system bus 1108 by the hard disk drive interface 1124, the magnetic disk drive interface 1126, and the optical drive interface 1128, respectively.
- the interface 1124 for implementing an external drive includes at least one of USB (Universal Serial Bus) and IEEE 1394 interface technology, or both.
- drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
- drives and media correspond to storing any data in a suitable digital format.
- computer readable media refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, those of ordinary skill in the art can use zip drives, magnetic cassettes, flash memory cards, cartridges, etc. It will be appreciated that other types of media readable by a computer, etc., may also be used in the exemplary operating environment and any such media may include computer-executable instructions for performing the methods of the present invention.
- a number of program modules may be stored in the drive and RAM 1112, including the operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or part of the operating system, applications, modules, and / or data may also be cached in RAM 1112. It will be appreciated that the present invention can be implemented in various commercially available operating systems or combinations of operating systems.
- the user may input commands and information to the computer 1102 through one or more wired / wireless input devices, for example, pointing devices such as a keyboard 1138 and a mouse 1140.
- Other input devices may include a microphone, IR remote control, joystick, game pad, stylus pen, touch screen, etc.
- input device interface 1142 connected to the system bus 1108, but the parallel port, IEEE 1394 serial port, game port, USB port, IR interface, And other interfaces.
- the monitor 1144 or other type of display device is also connected to the system bus 1108 through an interface such as a video adapter 1146.
- the computer generally includes other peripheral output devices (not shown) such as speakers, printers, and the like.
- the computer 1102 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer (s) 1148 via wired and / or wireless communication.
- the remote computer (s) 1148 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, typically for computer 1102. It includes many or all of the described components, but for simplicity, only the memory storage device 1150 is shown.
- the illustrated logical connections include wired / wireless connections to a local area network (LAN) 1152 and / or a larger network, such as a wide area network (WAN) 1154.
- LAN and WAN networking environments are common in offices and companies, and facilitate enterprise-wide computer networks such as intranets, all of which can be connected to computer networks around the world, for example, the Internet.
- the computer 1102 When used in a LAN networking environment, the computer 1102 is connected to the local network 1152 via a wired and / or wireless communication network interface or adapter 1156.
- the adapter 1156 may facilitate wired or wireless communication to the LAN 1152, which also includes a wireless access point installed therein to communicate with the wireless adapter 1156.
- the computer 1102 may include a modem 1158, connect to a communication server on the WAN 1154, or otherwise establish communication over the WAN 1154, such as through the Internet. Have a means
- the modem 1158 which may be an internal or external and wired or wireless device, is connected to the system bus 1108 via a serial port interface 1142.
- program modules described for the computer 1102 or portions thereof may be stored in the remote memory / storage device 1150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between computers can be used.
- the computer 1102 is associated with any wireless device or object that is deployed and operates in wireless communication, such as a printer, scanner, desktop and / or portable computer, a portable data assistant (PDA), communication satellite, or wireless detectable tag. It operates to communicate with any equipment or place and telephone. This includes at least Wi-Fi and Bluetooth wireless technology. Accordingly, the communication may be a predefined structure as in a conventional network or simply ad hoc communication between at least two devices.
- PDA portable data assistant
- Wi-Fi Wireless Fidelity
- Wi-Fi is a wireless technology such as a cell phone that allows a computer, for example, a computer to transmit and receive data indoors and outdoors, ie anywhere within the base station's coverage area.
- Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide a secure, reliable and high-speed wireless connection.
- Wi-Fi can be used to connect computers to each other, to the Internet, and to a wired network (using IEEE 802.3 or Ethernet).
- Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz radio bands, for example, at 11 Mbps (802.11a) or 54 Mbps (802.11b) data rates, or in products that include both bands (dual band). have.
- a person of ordinary skill in the art of the present invention may provide various exemplary logical blocks, modules, processors, means, circuits, and algorithm steps described in connection with the embodiments disclosed herein with electronic hardware, (convenience For the sake of understanding, it may be implemented by various forms of program or design code (referred to herein as “software”) or a combination of both.
- software program or design code
- various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system.
- Those skilled in the art of the present invention may implement the functions described in various ways for each specific application, but such implementation decisions should not be interpreted as being outside the scope of the present invention.
- machine-readable medium includes, but is not limited to, wireless channels and various other media capable of storing, retaining, and / or transferring command (s) and / or data.
- the present invention relates to a database management system (DBMS), and more particularly, to a change data capture (CDC).
- DBMS database management system
- CDC change data capture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (18)
- 인코딩된 명령들을 포함하는 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에 의해 실행되는 경우, 상기 하나 이상의 프로세서로 하여금 변경 데이터 캡쳐(CDC:Change Data Capture)를 위한 방법을 수행하도록 하며, 상기 방법은:소스(source) 데이터베이스 서버에서 처리되는 트랜잭션에 대한 정보를 포함하는 로그 레코드를 분석함으로써, 상기 트랜잭션과 연관되는 하나 이상의 객체들에 대하여 발생된 복수의 SQL(Structured Query Language) 연산들을 식별하는 단계;식별된 SQL 연산에 대응되는 객체에 대한 메타 정보가 상기 CDC 파일에 존재하는지 여부에 기초하여, 개별 SQL 연산과 대응되는 객체에 대한 이전 SQL 연산 이력(previous SQL operation history)이 CDC 파일에 존재하는지 여부를 판단하는 단계;상기 CDC 파일에서의 이전 SQL 연산 이력의 존재 여부에 기초하여, 상기 CDC 파일에 기록할 정보를 결정하는 단계;상기 결정된 정보를 상기 CDC 파일에 기록하는 단계; 및상기 CDC 파일을 타겟(target) 데이터베이스 서버로 전송할 것을 결정하는 단계;를 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 메타 정보는: 테이블 유저 정보, 테이블 이름 정보, 컬럼 이름 정보, 컬럼 순서 정보 및 컬럼 타입 정보 중 적어도 하나를 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 이전 SQL 연산 이력이 상기 CDC 파일에 존재하는지 여부를 판단하는 단계는,상기 SQL 연산에 대응되는 객체에 대해서 이전에 DML(Data Manipulation Language) 연산 혹은 DDL(Data Definition Language) 연산이 수행되었는지 여부에 추가적으로 기초하여, 상기 이전 SQL 연산 이력이 상기 CDC 파일에 존재하는지 여부를 판단하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 이전 SQL 연산 이력이 상기 CDC 파일에 존재하는지 여부를 판단하는 단계는,상기 트랜잭션과 연관되는 객체들 전체에 대해서 상기 SQL 연산이 발생한 순서대로 수행되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 CDC 파일에는 상기 소스 데이터베이스 서버의 객체들 중 상기 SQL 연산이 발생한 객체에 대한 메타 정보가 기록되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 CDC 파일에 기록할 정보를 결정하는 단계는:상기 CDC 파일에서의 이전 SQL 연산 이력이 존재하지 않는 경우, 해당 객체에 대한 DD(Data Dictionary) 정보를 사용하여 상기 해당 객체에 대한 메타 정보를 생성하고, 그리고 상기 CDC 파일에서의 이전 SQL 연산 이력이 존재하는 경우, 상기 해당 객체에 대한 메타 정보를 생성하지 않을 것을 결정하는 단계;를 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 6 항에 있어서,상기 CDC 파일에 기록할 정보를 결정하는 단계는:상기 해당 객체에 대한 메타 정보가 생성된 경우, 상기 해당 객체와 관련된 SQL 연산 및 상기 메타 정보를 상기 CDC 파일에 기록할 것을 결정하고, 그리고 상기 해당 객체에 대한 메타 정보가 생성되지 않은 경우, 상기 해당 객체와 관련된 SQL 연산을 상기 CDC 파일에 기록할 것을 결정하는 단계;를 더 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 7 항에 있어서,상기 SQL 연산 및 상기 메타 정보는, 단일의 CDC 파일에 함께 기록되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 6 항에 있어서,상기 결정된 정보를 상기 CDC 파일에 기록하는 단계는,상기 해당 객체에 대한 메타 정보를 상기 해당 객체와 관련된 SQL 연산 보다 상기 CDC 파일에서의 앞 부분에 기록하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 6 항에 있어서,상기 트랜잭션은 제 1 트랜잭션 및 제 2 트랜잭션을 포함하며, 그리고상기 제 1 트랜잭션이 상기 제 2 트랜잭션 보다 먼저 커밋(commit)된 경우, 상기 제 1 트랜잭션에 포함된 SQL 연산이 상기 제 2 트랜잭션에 포함된 SQL 연산 보다 상기 CDC 파일에서의 앞 부분에 기록되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 10 항에 있어서,상기 제 1 트랜잭션이 적어도 제 1 객체와 관련되고 그리고 상기 제 2 트랜잭션이 상기 제 1 객체 및 상기 제 1 객체와 상이한 제 2 객체와 관련되는 경우, 상기 결정된 정보를 상기 CDC 파일에 기록하는 단계는:상기 제 1 트랜잭션에 따라 생성된 제 1 객체에 대한 메타 정보, 상기 제 1 트랜잭션에 따라 생성된 제 1 객체에 대한 SQL 연산, 상기 제 2 트랜잭션에 따라 생성된 제 1 객체에 대한 SQL 연산, 상기 제 2 트랜잭션에 따라 생성된 제 2 객체에 대한 메타 정보, 그리고 상기 제 2 트랜잭션에 따라 생성된 제 2 객체에 대한 SQL 연산의 순서로 상기 CDC 파일에 기록하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,상기 SQL 연산은, DML(Data Manipulation Language) 연산 및 DDL(Data Definition Language) 연산 중 적어도 하나의 타입을 포함하며,상기 방법은:상기 식별된 복수의 SQL 연산들 각각에 대한 타입을 결정하는 단계;SQL 연산에 대한 타입이 DML 연산인 것으로 결정된 경우, 상기 DML 연산과 대응되는 객체에 대한 상기 이전 SQL 연산 이력이 상기 CDC 파일에 존재하는지 여부를 판단할 것을 결정하는 단계; 및상기 SQL 연산에 대한 타입이 DDL 연산인 것으로 결정된 경우, 상기 DDL 연산과 대응되는 객체에 대한 이전 SQL 연산 이력이 상기 CDC 파일에 존재하는지 여부를 판단하지 않고, 상기 DDL 연산에 기초하여, 상기 DDL 연산에 대응되는 객체에 대한 메타 정보를 생성하고 그리고 생성된 메타 정보를 상기 CDC 파일에 기록할 것을 결정하는 단계;를 더 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 변경 데이터 캡쳐(CDC:Change Data Capture)를 구현하기 위한 하나 이상의 프로세서를 포함하는 데이터베이스 서버로서,상기 하나 이상의 프로세서는:소스 데이터베이스 서버에서 처리되는 트랜잭션에 대한 정보를 포함하는 로그 레코드를 분석함으로써, 상기 트랜잭션과 연관되는 하나 이상의 객체들에 대하여 발생된 복수의 SQL(Structured Query Language) 연산들을 식별하는 동작;식별된 SQL 연산에 대응되는 객체에 대한 메타 정보가 상기 CDC 파일에 존재하는지 여부에 기초하여, 개별 SQL 연산과 대응되는 객체에 대한 이전 SQL 연산 이력(previous SQL operation history)이 CDC 파일에 존재하는지 여부를 판단하는 동작;상기 CDC 파일에서의 이전 SQL 연산 이력의 존재 여부에 기초하여, 상기 CDC 파일에 기록할 정보를 결정하는 동작;상기 결정된 정보를 상기 CDC 파일에 기록하는 동작; 및상기 CDC 파일을 타겟(target) 데이터베이스 서버로 전송할 것을 결정하는 동작;을 수행하는,하나 이상의 프로세서를 포함하는 데이터베이스 서버.
- 인코딩된 명령들을 포함하는 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에 의해 실행되는 경우, 상기 하나 이상의 프로세서로 하여금 변경 데이터 캡쳐(CDC:Change Data Capture)를 위한 방법을 수행하도록 하며, 상기 방법은:소스 데이터베이스 서버로부터 CDC 파일을 수신하는 단계;상기 CDC 파일에 기록된 메타 정보를 판독함으로써, 타겟 데이터베이스 서버에 대응되는 메타 정보가 존재하는지 여부를 판단하는 단계;상기 대응되는 메타 정보가 존재하지 않는 경우, 상기 CDC 파일에 기록된 메타 정보를 메모리에 로딩하는 단계;상기 CDC 파일에 기록된 SQL 연산을 판독하고, 그리고 상기 판독된 SQL 연산과 대응되는 상기 메모리 상에서의 상기 메타 정보를 사용함으로써 상기 SQL 연산과 대응되는 SQL 문(statement)을 생성하는 단계; 및상기 생성된 SQL 문을 상기 타겟 데이터베이스 서버에 적용시키는 단계;를 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 14 항에 있어서,상기 CDC 파일은, 상기 소스 데이터베이스 서버에 의해 기록된 순서대로 상기 타겟 데이터베이스 서버에서 판독되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 14 항에 있어서,상기 타겟 데이터베이스 서버에 상기 대응되는 메타 정보가 존재하는지 여부를 판단하는 단계는, 상기 대응되는 메타 정보가 상기 타겟 데이터베이스 서버의 메모리에 로딩되어 있는지 여부에 기초하여 판단하며, 그리고상기 방법은: 상기 대응되는 메타 정보가 존재하는 경우, 상기 CDC 파일에 기록된 메타 정보를 메모리에 로딩하지 않고 상기 타겟 데이터베이스 서버의 로딩되어 있는 상기 대응되는 메타 정보를 사용할 것을 결정하는 단계;를 더 포함하는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 제 14 항에 있어서,상기 CDC 파일에는 상기 소스 데이터베이스 서버의 객체들 중 상기 SQL 연산이 발생한 객체에 대한 메타 정보가 기록되는,컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
- 변경 데이터 캡쳐(CDC:Change Data Capture)를 구현하기 위한 하나 이상의 프로세서를 포함하는 데이터베이스 서버로서,상기 하나 이상의 프로세서는:소스 데이터베이스 서버로부터 CDC 파일을 수신하는 동작;상기 CDC 파일에 기록된 메타 정보를 판독함으로써, 타겟 데이터베이스 서버에 대응되는 메타 정보가 존재하는지 여부를 판단하는 동작;상기 대응되는 메타 정보가 존재하지 않는 경우, 상기 CDC 파일에 기록된 메타 정보를 메모리에 로딩하는 동작;상기 CDC 파일에 기록된 SQL 연산을 판독하고, 그리고 상기 판독된 SQL 연산과 대응되는 상기 메모리 상에서의 상기 메타 정보를 사용함으로써 상기 SQL 연산과 대응되는 SQL 문(statement)을 생성하는 동작; 및상기 생성된 SQL 문을 상기 타겟 데이터베이스 서버에 적용시키는 동작;을 수행하는,하나 이상의 프로세서를 포함하는 데이터베이스 서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/965,282 US11314719B2 (en) | 2018-11-14 | 2019-11-13 | Method for implementing change data capture in database management system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180139901A KR102119258B1 (ko) | 2018-11-14 | 2018-11-14 | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 |
KR10-2018-0139901 | 2018-11-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020101343A1 true WO2020101343A1 (ko) | 2020-05-22 |
Family
ID=70731601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/015429 WO2020101343A1 (ko) | 2018-11-14 | 2019-11-13 | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11314719B2 (ko) |
KR (1) | KR102119258B1 (ko) |
WO (1) | WO2020101343A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115147A (zh) * | 2020-09-25 | 2020-12-22 | 北京百度网讯科技有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN113742415A (zh) * | 2020-05-29 | 2021-12-03 | 北京金山云网络技术有限公司 | 增量数据同步方法、装置及电子设备 |
CN113836139A (zh) * | 2021-09-15 | 2021-12-24 | 许昌许继软件技术有限公司 | 一种跨隔离装置的数据库同步系统及方法 |
CN117708094A (zh) * | 2023-12-26 | 2024-03-15 | 行吟信息科技(武汉)有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023000912A (ja) * | 2021-06-18 | 2023-01-04 | 株式会社日立製作所 | リフレクション生成システム、リフレクション生成方法、及びリフレクション生成プログラム |
CN113722394A (zh) * | 2021-08-17 | 2021-11-30 | 北京百悟科技有限公司 | 数据同步方法、设备及存储介质 |
US11874751B2 (en) * | 2021-12-09 | 2024-01-16 | International Business Machines Corporation | Operating a data center |
KR20240139375A (ko) * | 2023-03-14 | 2024-09-23 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐를 수행하기 위한 방법 및 장치 |
CN116501789A (zh) * | 2023-06-28 | 2023-07-28 | 本原数据(北京)信息技术有限公司 | 数据库数据写入方法和装置、电子设备及存储介质 |
CN117909346B (zh) * | 2024-01-17 | 2024-09-17 | 中科世通亨奇(北京)科技有限公司 | 离线数据的更新方法、系统、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647354B2 (en) * | 2002-05-24 | 2010-01-12 | Oracle International Corporation | High-performance change capture for data warehousing |
US20110191299A1 (en) * | 2010-02-01 | 2011-08-04 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
JP2011258122A (ja) * | 2010-06-11 | 2011-12-22 | Mitsubishi Electric Corp | データ転送装置及びデータ転送方法及びデータ転送プログラム及びデータ連携システム |
US20170011087A1 (en) * | 2015-07-06 | 2017-01-12 | Oracle International Corporation | Dynamically switching between data sources |
KR20180055952A (ko) * | 2016-11-16 | 2018-05-28 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 데이터 복제 기법 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976002B1 (en) | 1999-08-24 | 2005-12-13 | Steelcase Development Corporation | System and method of determining a knowledge management solution |
US7065538B2 (en) | 2000-02-11 | 2006-06-20 | Quest Software, Inc. | System and method for reconciling transactions between a replication system and a recovered database |
US6832229B2 (en) | 2001-03-09 | 2004-12-14 | Oracle International Corporation | System and method for maintaining large-grained database concurrency with a log monitor incorporating dynamically redefinable business logic |
US7111023B2 (en) | 2001-05-24 | 2006-09-19 | Oracle International Corporation | Synchronous change data capture in a relational database |
US7657576B1 (en) | 2001-05-24 | 2010-02-02 | Oracle International Corporation | Asynchronous change capture for data warehousing |
US6999977B1 (en) | 2002-05-09 | 2006-02-14 | Oracle International Corp | Method and apparatus for change data capture in a database system |
US6981004B2 (en) | 2002-09-16 | 2005-12-27 | Oracle International Corporation | Method and mechanism for implementing in-memory transaction logging records |
US6976022B2 (en) | 2002-09-16 | 2005-12-13 | Oracle International Corporation | Method and mechanism for batch processing transaction logging records |
US7908243B2 (en) | 2005-11-25 | 2011-03-15 | Oracle International Corporation | Considering transient data also in reports generated based on data eventually stored in a data-warehouse |
US7831574B2 (en) | 2006-05-12 | 2010-11-09 | Oracle International Corporation | Apparatus and method for forming a homogenous transaction data store from heterogeneous sources |
US7668878B2 (en) | 2006-07-31 | 2010-02-23 | Oracle International Corporation | Replicating data between heterogeneous data systems |
US7801852B2 (en) | 2007-07-31 | 2010-09-21 | Oracle International Corporation | Checkpoint-free in log mining for distributed information sharing |
US8799213B2 (en) | 2007-07-31 | 2014-08-05 | Oracle International Corporation | Combining capture and apply in a distributed information sharing system |
US8385657B2 (en) | 2007-08-01 | 2013-02-26 | Yeda Research And Development Co. Ltd. | Multiscale edge detection and fiber enhancement using differences of oriented means |
US9230002B2 (en) | 2009-01-30 | 2016-01-05 | Oracle International Corporation | High performant information sharing and replication for single-publisher and multiple-subscriber configuration |
US8676759B1 (en) | 2009-09-30 | 2014-03-18 | Sonicwall, Inc. | Continuous data backup using real time delta storage |
CN101697169A (zh) * | 2009-10-23 | 2010-04-21 | 中兴通讯股份有限公司 | 源数据库和目的数据库之间数据同步的方法、装置及系统 |
US8626778B2 (en) | 2010-07-23 | 2014-01-07 | Oracle International Corporation | System and method for conversion of JMS message data into database transactions for application to multiple heterogeneous databases |
US8510270B2 (en) | 2010-07-27 | 2013-08-13 | Oracle International Corporation | MYSQL database heterogeneous log based replication |
US9298878B2 (en) | 2010-07-29 | 2016-03-29 | Oracle International Corporation | System and method for real-time transactional data obfuscation |
US8874506B2 (en) | 2012-09-10 | 2014-10-28 | Oracle International Corporation | Preventing database replication conflicts in a distributed environment |
WO2014101207A1 (en) * | 2012-12-31 | 2014-07-03 | Sybase, Inc. | Continuous change data capture without disruption of ddl |
US9141680B2 (en) | 2013-02-11 | 2015-09-22 | Dell Products L.P. | Data consistency and rollback for cloud analytics |
US9727624B2 (en) | 2013-03-01 | 2017-08-08 | Oracle International Corporation | Active replication with generic conflict detection and resolution (CDR) |
US9171051B2 (en) * | 2013-07-24 | 2015-10-27 | Oracle International Corporation | Data definition language (DDL) expression annotation |
US10671565B2 (en) | 2015-04-24 | 2020-06-02 | Quest Software Inc. | Partitioning target data to improve data replication performance |
US10216589B2 (en) * | 2016-03-02 | 2019-02-26 | International Business Machines Corporation | Smart data replication recoverer |
US10803048B2 (en) | 2016-09-16 | 2020-10-13 | Oracle International Corporation | Change data capture processing and analysis |
US11669509B2 (en) * | 2017-09-29 | 2023-06-06 | Jpmorgan Chase Bank, N.A. | System and method for achieving optimal change data capture (CDC) on hadoop |
US10936441B2 (en) * | 2017-12-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | Write-ahead style logging in a persistent memory device |
US10664465B2 (en) * | 2018-04-03 | 2020-05-26 | Sap Se | Database change capture with transaction-consistent order |
US11645261B2 (en) * | 2018-04-27 | 2023-05-09 | Oracle International Corporation | System and method for heterogeneous database replication from a remote server |
-
2018
- 2018-11-14 KR KR1020180139901A patent/KR102119258B1/ko active
-
2019
- 2019-11-13 US US16/965,282 patent/US11314719B2/en active Active
- 2019-11-13 WO PCT/KR2019/015429 patent/WO2020101343A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647354B2 (en) * | 2002-05-24 | 2010-01-12 | Oracle International Corporation | High-performance change capture for data warehousing |
US20110191299A1 (en) * | 2010-02-01 | 2011-08-04 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
JP2011258122A (ja) * | 2010-06-11 | 2011-12-22 | Mitsubishi Electric Corp | データ転送装置及びデータ転送方法及びデータ転送プログラム及びデータ連携システム |
US20170011087A1 (en) * | 2015-07-06 | 2017-01-12 | Oracle International Corporation | Dynamically switching between data sources |
KR20180055952A (ko) * | 2016-11-16 | 2018-05-28 | 주식회사 실크로드소프트 | 데이터베이스 관리 시스템에서의 데이터 복제 기법 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742415A (zh) * | 2020-05-29 | 2021-12-03 | 北京金山云网络技术有限公司 | 增量数据同步方法、装置及电子设备 |
CN112115147A (zh) * | 2020-09-25 | 2020-12-22 | 北京百度网讯科技有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN112115147B (zh) * | 2020-09-25 | 2024-04-30 | 北京百度网讯科技有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN113836139A (zh) * | 2021-09-15 | 2021-12-24 | 许昌许继软件技术有限公司 | 一种跨隔离装置的数据库同步系统及方法 |
CN113836139B (zh) * | 2021-09-15 | 2024-04-12 | 许昌许继软件技术有限公司 | 一种跨隔离装置的数据库同步系统及方法 |
CN117708094A (zh) * | 2023-12-26 | 2024-03-15 | 行吟信息科技(武汉)有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20200056526A (ko) | 2020-05-25 |
KR102119258B1 (ko) | 2020-06-05 |
US20210271660A1 (en) | 2021-09-02 |
US11314719B2 (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020101343A1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
WO2018093094A1 (ko) | 데이터베이스 관리 시스템에서의 데이터 복제 기법 | |
WO2018101640A1 (ko) | 데이터베이스 이중화 무중단 정합성 복구 기법 | |
US10754835B2 (en) | High-efficiency deduplication module of a database-management system | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
KR100983300B1 (ko) | 데이터 처리 시스템 내에서의 고장 복구 | |
US7984327B2 (en) | Fast data recovery system | |
US8495027B2 (en) | Processing archive content based on hierarchical classification levels | |
JP3503957B2 (ja) | 遠隔データベースの制御方法及び装置 | |
US20040078658A1 (en) | Journaling and recovery method of shared disk file system | |
US11347681B2 (en) | Enhanced reading or recalling of archived files | |
US20100318534A1 (en) | Intelligent retrieval of digital assets | |
WO2021141294A1 (ko) | 데이터의 하이브리드 저장을 이용한 데이터 아카이빙 방법 및 시스템 | |
US20210318938A1 (en) | Updating stateful system in server cluster | |
WO2020119709A1 (zh) | 数据合并的实现方法、装置、系统及存储介质 | |
WO2022252322A1 (zh) | 基于特征标记的电网监控系统内存库关系库同步方法 | |
WO2018097522A1 (ko) | 데이터베이스의 이중화를 위한 기법 | |
WO2020213985A1 (ko) | 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램 | |
US6738791B2 (en) | Data synchronizing device | |
WO2023240995A1 (zh) | 一种双机热备系统的数据恢复方法、装置及介质 | |
WO2024190986A1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐를 수행하기 위한 방법 및 장치 | |
WO2021141293A1 (ko) | 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템 | |
CN112199332A (zh) | 分布式防爆巡检机器人集群智能化文件管理方法及系统 | |
KR20200078426A (ko) | 복구 서버 및 컴퓨터 프로그램 | |
WO2022250292A1 (ko) | 서버간 네트워크가 단절된 망분리 환경에서의 cdc 방식의 db 복제 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19884285 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19884285 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 01/10/2021) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19884285 Country of ref document: EP Kind code of ref document: A1 |