WO2020173248A1 - 数据同步方法、装置、终端及存储介质 - Google Patents
数据同步方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- WO2020173248A1 WO2020173248A1 PCT/CN2020/072654 CN2020072654W WO2020173248A1 WO 2020173248 A1 WO2020173248 A1 WO 2020173248A1 CN 2020072654 W CN2020072654 W CN 2020072654W WO 2020173248 A1 WO2020173248 A1 WO 2020173248A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- database
- synchronized
- master
- slave
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000001360 synchronised effect Effects 0.000 claims description 154
- 230000010076 replication Effects 0.000 claims description 34
- 238000011084 recovery Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
Definitions
- the embodiments of the present disclosure relate to the field of computer application technology, for example, to a data synchronization method, device, terminal, and storage medium. Background technique
- MySQL is a database management system and a relational database. It is an open source software supported by Oracle. MySQL is widely used due to its small size, high speed, and low total cost of ownership, especially its open source. In recent years, multiple activities in different places have become a data management solution adopted by more and more large Internet companies, and it is almost an inevitable choice for large-scale applications to develop to a certain stage.
- Multi-activity in different places generally refers to the establishment of independent data centers in different cities. These computer rooms also need to carry traffic in daily business to provide business support. That is, the data exchange between two computer rooms in different cities allows users to access data from one location in another location.
- the embodiments of the present disclosure provide a data synchronization method, device, terminal, and storage medium to solve the problem that the data synchronization method shuts down the interoperable database and affects the user experience, and realizes the completion of data synchronization without the database being stopped.
- an embodiment of the present disclosure provides a data synchronization method, the method includes: controlling a first master database to transmit to a first slave database of the first master database to be synchronized in the first master database Data, and control the first slave database to synchronize the received data to be synchronized to the second master database;
- an embodiment of the present disclosure provides a data synchronization method, the method including: receiving, through a second master database, data to be synchronized transmitted by a first slave database of a first master database;
- the full amount of data includes the data to be synchronized transmitted from the first slave database and the local write data in the second master database; the data to be synchronized comes from the first master database; and wherein, the The data to be synchronized transmitted by the first slave database includes one of the following: when a preset synchronization stop condition is met, the first master database stops transmitting the data to be synchronized to the first slave database; When the synchronization condition is restored, the first master database continues to transmit the data to be synchronized to the first slave database.
- the embodiment of the present disclosure further provides a data synchronization device, the device includes: a data synchronization module to be synchronized, configured to control a first master database to a first slave database transmission station of the first master database The data to be synchronized in the first master database, and controlling the first slave database to synchronize the received data to be synchronized to the second master database;
- a synchronization stop module configured to control the first master database to stop transmitting data to be synchronized to the first slave database when a preset synchronization stop condition is met;
- the synchronization recovery module is configured to control the first master database to continue to transmit data to be synchronized to the first slave database, and to control the first slave database to continue to receive The data to be synchronized is synchronized to the second primary database.
- the embodiment of the present disclosure further provides a data synchronization device, the device includes: a data to be synchronized receiving module configured to receive the data to be synchronized transmitted by the first slave database of the first master database through the second master database Synchronous Data;
- a full data synchronization module configured to control a second master database to synchronize full data in the second master database to a second slave database of the second master database;
- the full amount of data includes the data to be synchronized transmitted from the first slave database and the local write data in the second master database; the data to be synchronized comes from the first master database; and wherein, the The data to be synchronized transmitted by the first slave database includes one of the following: when a preset synchronization stop condition is met, the first master database stops transmitting the data to be synchronized to the first slave database; When the synchronization condition is restored, the first master database continues to transmit the data to be synchronized to the first slave database.
- an embodiment of the present disclosure further provides an electronic device, the electronic device including: One or more processing devices;
- Memory set to store one or more programs
- the one or more processing devices When the one or more programs are executed by the one or more processing devices, the one or more processing devices implement the data synchronization method according to any embodiment of the present disclosure.
- the embodiment of the present disclosure further provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the implementation is as in any one of the present disclosure.
- Figure 1 is a schematic flow chart of a data synchronization method provided in the first embodiment of the present disclosure
- Figure 2 is a schematic flow chart of a data synchronization method provided in the second embodiment of the present disclosure
- Figure 3 is a schematic flow chart of a data synchronization method provided in the third embodiment of the present disclosure
- Fig. 4 is a schematic flowchart of a data synchronization method provided in the fourth embodiment of the present disclosure
- Fig. 5a is a schematic flowchart of a data intercommunication system provided in the fifth embodiment of the present disclosure
- FIG. 5b is a schematic diagram of one-way data synchronization provided by Embodiment 5 of the present disclosure
- Figure 5c is a schematic diagram of the interaction of two-way data synchronization provided in the fifth embodiment of the present disclosure
- Figure 5d is another schematic diagram of the interaction of two-way data synchronization provided in the fifth embodiment of the present disclosure
- Figure 5f is another schematic diagram of the interaction of two-way data synchronization provided by the fifth embodiment of the present disclosure
- Figure 5g is another schematic diagram of the interaction of two-way data synchronization provided by the fifth embodiment of the present disclosure
- 5h is another schematic diagram of data intercommunication interaction provided in the fifth embodiment of the present disclosure
- FIG. 6 is a schematic structural diagram of a data synchronization device provided in the sixth embodiment of the present disclosure
- FIG. 7 is a schematic diagram of a data synchronization device provided in the seventh embodiment of the present disclosure
- FIG. 8 is a schematic structural diagram of an electronic device provided in Embodiment 8 of the present disclosure.
- FIG. 1 is a flow chart of a data synchronization method provided in the first embodiment of the present disclosure.
- This embodiment is suitable for the case of two independent databases for data intercommunication, and can be used to realize multiple activities in different places.
- the method can be implemented by a data synchronization device.
- the data synchronization device may be configured in a terminal or a server for implementing the method of the embodiment of the present disclosure.
- whether the two databases are in different places can be determined according to the round-trip time (RTT) between the two databases. That is, according to the total time delay experienced from the sending end of sending data until the sending end receives the confirmation from the receiving end, generally the receiving end sends the confirmation immediately after receiving the data.
- RTT round-trip time
- the method in this embodiment may include: S110 to S130.
- the data to be synchronized includes historical data of the first master database and incremental data of the first master database.
- the historical data and the incremental data of the first main database can be divided according to actual needs.
- historical data may be data that has been stored at the current time in the first main database; incremental data of the first main database may be data written after the current time.
- the current moment may be the moment when the first master database transmits the data to be synchronized in real time.
- controlling the first master database to transmit the data to be synchronized in the first master database to the first slave database of the first master database may include: controlling the first master database to the first master database The first slave database of the database transmits historical data in the first master database; and/or controls the first master database to transmit incremental data in the first master database to the first slave database of the first master database . Furthermore, by controlling the first slave database to synchronize the received data to be synchronized to the second master database, data synchronization between the first master database and the second master database can be preliminarily realized.
- the synchronizing the second to-be-synchronized data of the first slave database to the second master database may include: monitoring through incremental data subscription and consumption service canal
- the received log file Binlog determines the incremental data of the first slave database, and synchronizes the incremental data to the second master database.
- the log file is monitored according to the incremental data subscription and consumption service, and the incremental data of the first slave database is determined according to the log file.
- synchronizing the incremental data to the second master database may further include: synchronizing the incremental data of the first slave database to the second master database through a distributed publish-and-subscribe messaging system kafka message queue. The second main database.
- first main database and the second main database may be relational databases, for example, the first main database and the second main database are both MySQl databases.
- the first master database and the first slave database comply with a master-slave protocol.
- the preset synchronization stop condition may include: the data synchronization time between the first slave database and the first master database reaches a preset duration; or, the first slave database and the first master database The data to be synchronized of the database has no data delay; or the data synchronization time between the first slave database and the first master database reaches a preset duration and the data to be synchronized has no data delay.
- the data to be synchronized without data delay means that the data between the first master database and the first slave database has no data delay, that is, it is ensured that the first slave database receives all the data to be synchronized within the current transmission duration of the first master database. .
- the data currently to be synchronized in the first master database has been transmitted to the first slave database in real time, and there is no data delay.
- the data synchronization time between the first slave database and the first master database may refer to the time for the first master database to transmit the data to be synchronized in the first master database to the first slave database.
- controlling the first master database to stop transmitting the data to be synchronized to the first slave database that is, transmitting the data of the first slave database to the second master database in a snapshot mode, not only It can achieve the effect of data intercommunication after the two databases are shut down in related technologies, ensure the accuracy of data transmission, and can also solve problems that affect user access.
- the preset synchronization recovery condition includes that the synchronization data received by the second master database is consistent with the data to be synchronized in the first slave database.
- the preset synchronization recovery conditions include: the synchronization data received by the second master database is consistent with the synchronized data to be synchronized in the first slave database.
- the first master database is controlled to continue to transmit the data to be synchronized to the first slave database
- the first slave database is controlled to continue to synchronize the received data to be synchronized to the second master database
- All the unsynchronized data to be synchronized in the first primary database is synchronized to the second primary database by means of resumable transmission.
- the preset synchronization stop condition is met once, twice or more than twice. Accordingly, There may also be cases where the preset synchronization recovery condition is met once, twice or more than twice, which may be determined according to actual conditions, and is not limited here.
- the data to be synchronized in the first master database is transmitted to the second master database through the first slave database of the first master database, which can ensure that the data is transmitted more smoothly and quickly, for example, it is suitable for remote locations.
- Multi-active scenario and when the preset stop synchronization condition is met, control to stop the data transmission between the first master database and the first slave database.
- the data to be synchronized received from the first slave database is static data, which is equivalent to
- the snapshot of the first master database can import all the data of the first slave database into the second master database; further, when the preset recovery synchronization conditions are met, the first master database and the first slave database are restored.
- the data synchronization method can solve the problem that the data synchronization method often needs to shut down the interoperable database and affect the user experience by means of resumable transmission. Complete data synchronization without stopping the database.
- FIG. 2 is a schematic flowchart of a data synchronization method provided in Embodiment 2 of the present disclosure.
- the synchronization of the second to-be-synchronized data of the first slave database to the second master database includes: subscribing to and consuming the service canal according to incremental data and monitoring the log file Binlog , Determining the incremental data of the first slave database according to the log file; and synchronizing the incremental data to the second master database through the Kafka message queue of a distributed publish-subscribe messaging system.
- the method in this embodiment may include: S210 to S250.
- S210 Control the first master database to transmit the data to be synchronized in the first master database to the first slave database of the first master database.
- S220 Determine the incremental data of the first slave database according to the log file Binlog monitored through the incremental data subscription and consumption service canal.
- the log file is monitored based on incremental data subscription and consumption services, and the incremental data of the first slave database is determined based on the log file.
- the log file Binlog is a binary log, which conforms to the master-slave protocol between the first master database and the first slave database, and is used for recording data information and data operations, and can ensure that data is not lost.
- the incremental data subscription and consumption service canal refers to the canal server, which can read the log file Binlog of the relational database, and analyze the log file Binlog to determine the incremental data of the first slave database.
- S230. Synchronize the incremental data to the second master database through the Kafka message queue of the distributed publish-subscribe messaging system, and control the first slave database to synchronize the received data to be synchronized to the second master database .
- the Kafka message queue can capture incremental data and data operations in the to-be-synchronized data of the first slave database, and the Kafka message queue also has a time-granular message backtracking feature, which can perform message backtracking.
- message backtracking can also be performed through the kafka message queue, which provides convenience for database data maintenance, and the incremental data is passed through the distributed publish-subscribe message system kafka message
- the queue is synchronized to the second main database, which can fully guarantee the accuracy and security of data synchronization.
- the incremental data of the first slave database is determined through the log file Binlog monitored by canal, which supports accurate resuming transmission after a breakpoint, and then sends the incremental data through the distributed publish-subscribe messaging system kafka message
- the queue is synchronized to the second main database, which can fully guarantee the accuracy and security of data synchronization.
- FIG. 3 is a schematic flow chart of a data synchronization method provided by Embodiment 3 of the present disclosure.
- This embodiment is suitable for data intercommunication between two independent databases and can be used to implement multiple activities in different places.
- the method can be implemented by a data synchronization device.
- the device may be configured in a terminal or a server to execute the method of this embodiment.
- the method of this embodiment may include: S310 to S320.
- S310 Receive the data to be synchronized transmitted by the first slave database of the first master database through the second master database.
- the data to be synchronized comes from the first main database, as described above.
- the data to be synchronized includes historical data of the first main database and incremental data of the first main database.
- the historical data and the incremental data of the first main database can be divided according to actual needs.
- historical data may be data stored at the current moment in the first main database; incremental data of the first main database may be data written after the current moment.
- the current time may be the time when the first main database transmits the data to be synchronized in real time.
- the first master database stops sending data to the first slave
- the data to be synchronized is transmitted in the database; in the case that the preset synchronization recovery condition is satisfied, the first master database continues to transmit the data to be synchronized to the first slave database.
- S320 Control the second master database to synchronize all data in the second master database to the second slave database of the second master database.
- the full amount of data may include the to-be-synchronized data transmitted by the first slave database and the local write data in the second master database.
- controlling the second master database to synchronize the full amount of data in the second master database to a second slave database of the second master database includes: controlling the second master database through a DRC component of a data replication center Synchronizing the full amount of data in the second master database to the second slave database of the second master database. In an embodiment, it may further include: controlling the second master database to synchronize the full amount of data in the second master database to the second slave database of the second master database in a data pipeline pipe manner through the data replication center DRC component in.
- the full amount of data in the second master database may be extracted through the DRC component of the first data replication center; the full amount of data extracted is transmitted to the DRC component of the second data replication center through the first data pipeline TPIPE component Synchronizing the full amount of data to the second slave database through the DRC component of the second data replication center.
- the method before controlling the second master database to synchronize the full amount of data in the second master database to the second slave database of the second master database, includes: establishing a second master database of the second master database Two from the database.
- the second slave database is intended to replace the data access of the first master database, and provide data in the first master database and the second master database at the same time, and realize the two master databases and the second master database. Data exchange in the database.
- the second slave database By controlling the second master database to synchronize the full amount of data to the second slave database of the second master database, the second slave database includes both the data to be synchronized transmitted by the first master database and the second master database
- the local end writes data in the, at the same time, it can support the local end user of the first master data to access the data of the first master database and the data of the second master database, realizing data intercommunication.
- the data to be synchronized of the first master database is received through the second master database, so that the second master database includes the data to be synchronized transmitted by the first slave database and the local end in the second master database.
- Writing data can support users at the local end of the second main database to access data in the first main database and the second main database, realizing one-way data synchronization, and further, synchronizing the full amount of data in the second main database to
- the second slave database also includes the data to be synchronized transmitted by the first slave database and the local write data in the second master database, which can support the first A user at the local end of a main database accesses the data of the first main database and the second main database, realizing two-way data intercommunication.
- FIG. 4 is a schematic flowchart of a data synchronization method provided in Embodiment 4 of the present disclosure. This embodiment is based on multiple optional solutions in the foregoing embodiment.
- controlling the second master database to synchronize the full amount of data in the second master database to the second slave database of the second master database includes: copying through the first data
- the central DRC component extracts the full amount of data in the second master database; the extracted full amount of data is transmitted to the second data replication center DRC component through the first data pipeline TPIPE component, and the second data replication center DRC component transfers The full amount of data is synchronized to the second slave database.
- the data synchronization method of the embodiment of the present disclosure may further include: acquiring incremental data in the second slave database, and synchronizing the incremental data in the second slave database to the first The second main database.
- the data synchronization method of the embodiment of the present disclosure may further include: synchronizing the incremental data in the second slave database to the first master database through an incremental data subscription and consumption service canal.
- the technical solution of this embodiment may include:
- the first data replication center (Data Replication Center, DRC) supports double-write operations on data, and is used to provide real-time data streaming services for data synchronization and data distribution, which can ensure that data is not lost while also ensuring that the
- DRC component of the first data replication center can also pretend to be the slave database of the second master database, monitor the Binlog of the second master database, and then extract the full amount of data of the second master database from the second master database.
- S430 Transmit the extracted full amount of data to the second data replication center DRC component through the first data pipeline TPIPE component, and synchronize the full amount of data to the second secondary database through the second data replication center DRC component.
- the first data pipeline TPIPE component may implement the Kafka protocol.
- the consumption-related kinetic energy may not be included in the first data pipeline TPIPE component, that is, the consumption power may not be included.
- the first data pipeline TPIPE component may include data transmission capability, a message queue used for orderly transmission of data, suitable for data synchronization in multiple computer rooms, and can ensure that no data is lost during data synchronization.
- the first data pipe TPIPE component can be used to orderly transmit the data ⁇ Volume data.
- the method before the second master database transmits the full amount of data to the second slave database of the second master database through the first data pipeline TPIPE component, the method includes: establishing the second master database The second slave database.
- the second slave database is intended to replace the first master database to receive data access, while providing data in the first master database and the second master database, to implement the first master database and the second master database. Data interoperability.
- the acquiring incremental data in the second slave database and synchronizing the incremental data to the second master database may include: controlling the second master database to pass The DRC component of the data replication center synchronizes the incremental data in the second slave database to the second master database. In an embodiment, it may further include: controlling the second master database to synchronize the incremental data in the second slave database to the second master database in a data pipe manner through a data replication center DRC component.
- the incremental data in the second secondary database is extracted through a preset third data replication center DRC component; the extracted incremental data is transmitted to the fourth data replication via the second data pipeline TPIPE component
- the central DRC component synchronizes the incremental data to the second master database through the fourth data replication center DRC component.
- extracting the incremental data in the second slave database through the DRC component of the third data replication center includes: receiving the log file Binlog of the second slave database through the DRC component of the third data replication center, and reading from the log The incremental data in the second slave database is extracted from the file Binlog.
- the DRC component of the third data replication center may also perform a batch operation on the extracted incremental data, and then package the incremental data and transmit it to the second data pipeline TPIPE component, so as to improve the efficiency of data synchronization.
- the incremental data in the second slave database includes unsynchronized data written by the local end of the second slave database.
- canal can be used to disguise the secondary database of the second secondary database, so that the incremental data of the second secondary database can be synchronized to the first primary database through canal.
- the technical solution of this embodiment can not only realize the two-way intercommunication of data, but also can synchronize the data of the local end from the second slave database back to the first master database, and not only can support users accessing the first master database to the local end of the first master database. Full data access can also back up data at the local end of the first master database.
- the data transmission method between the second master database and the second slave database can realize the anti-loopback operation of the database , Two data to maintain data intercommunication Data consistency between libraries.
- the data synchronization method of the embodiment of the present disclosure may further include: when the second slave database is received When the user requests an access, the user's access authority is determined according to the user's attribute information.
- the attribute information of the user may include the user's name, gender, age, position, ID number, login account information, and so on.
- determining the user's access authority according to the user's attribute information may include: pre-establishing a user whitelist according to the user's attribute information, and if the user's to-be-matched information corresponding to the access request is not consistent with the user's If the information in the list matches, the user is allowed to access the second slave database.
- the whitelisted user may be a user who has the authority to manage or view the database, such as a database tester, a database maintainer, and so on.
- the user may be regarded as an ordinary user, then all The access request is switched to an access request to the first main database.
- the advantage of this setting is that it can ensure that during the database synchronization process, workers access the new database and ordinary users access the old database. In this way, even if the data needs to be maintained during the data synchronization process, it is ensured that the user has no perception during the test, does not affect the online, and does not affect the user's access, thereby improving the user experience.
- the access requests of all users can be switched to the second slave database, so that users who access the first master database can access the first master database at the same time.
- the data of a primary database and a secondary primary database are used to realize real-time data communication.
- FIG. 5a is a data interworking system provided by an embodiment of the present disclosure.
- the data interworking system includes: a first master database 510, a second master database 520, a first slave database 530 of the first master database 510, and the second The second slave database 540 of the master database 520.
- the first master database 510 transmits the data to be synchronized in the first master database 510 to the first slave database 530 of the first master database 510, and the first slave database 530 synchronizes the received data to be synchronized to the second master database 520 ,
- the second master database 520 receives the data to be synchronized transmitted by the first slave database 530 of the first master database 510; when the preset synchronization stop condition is met, the first master database 510 stops transmitting the data to be synchronized to the first slave database 530 Data; when the preset recovery synchronization conditions are met, the first master database 510 continues to transmit the data to be synchronized to the first slave database 530, and the first slave database 530 continues to synchronize the received data to be synchronized to the second master database 520;
- the second master database 520 synchronizes all the data in the second master database 520 to the second slave database 540 of the second master database 520.
- the first main database the first
- the data communication between the second master database and the secondary database of the second master database is a MySQL database, as shown in Figures 5b-5f, the implementation is as follows:
- the first master database T Master and the second master database M Master are two relatively independent databases.
- the first slave database T Slave of the first master database T Master is established at the local end of the second master database M Master, and the first master database T Master transmits to the first slave database T Slave of the first master database T Master
- the first slave database T Slave synchronizes the received data to be synchronized to the second master database M Master.
- the first master database T Master Stop transmitting the data to be synchronized to the first slave database T Slave.
- the first master database T Master continues to transmit the data to be synchronized to the first slave database T Slave, that is, the first slave database T Slave
- the first slave database T Slave As a snapshot, import all the data of the first master database T Master into the second master database M Master.
- the incremental data subscription and consumption service canal the incremental data of the first slave database T Slave is determined through the monitored log file B inlog, and the incremental data is passed through the distributed publish-subscribe messaging system kafka message queue Synchronize to the second master database M Master.
- the second slave database M Slave of the second master database M Master is established at the local end of the first master database T Master, and the second master database M Master transmits to the second slave database M Slave of the second master database M Master The full amount of data in the second master database M Master to achieve two-way data synchronization.
- the DRC component of the first data replication center extracts the full amount of data in the second master database M Master, and transmits the extracted full amount of data to the DRC component of the second data replication center via the first data pipeline TPIPE component, and
- the DRC component of the second data replication center synchronizes the full amount of data to the second slave database M Slave.
- ordinary users of the first master database T Master all access the first master database T Master and the second slave database M Slave. There is no written data for the time being, and all data comes from the second master database M Master. Therefore, there is no data transmission in the dotted line.
- the second master database M Master since the second master database M Master includes the data to be synchronized transmitted by the first master database T Master, the second master database M Master is represented by the second master database M+T Master at this time, and the second master database M Master The second slave database M Slave of the database M+T Master is represented by the second slave database M+T Master.
- users can be diverted and pre-established based on user attribute information User whitelist; further, when a user's access request is received, users belonging to the user whitelist access the second slave database M+T Master, where the whitelisted user may be a user with the authority to manage or view the database For example, database testers and database maintenance personnel, ordinary users who do not belong to the whitelist temporarily access the local data of the first master database T Master, in addition, the number of increments in the second slave database M+T Master
- the data can also be synchronized to the first master database T Master through incremental data subscription and consumer service canal; referring to Figure 5h, when the second slave database meets the conditions for receiving all user accesses, the access requests of all users can be switched To the second slave database M+T Master, so that users who access the first master database T Master can simultaneously access the data of the first master database T Master and the second master database M+T Master, so as to realize real-time data communication.
- the DRC component of the third data replication center extracts the incremental data in the second slave database M+T Master, and transmits the extracted incremental data to the fourth data pipeline TPIPE component through the second data pipeline.
- the data replication center DRC component synchronizes the incremental data to the second master database M+T Master through the fourth data replication center DRC component.
- the technical solution of this embodiment can realize data intercommunication without stopping the machine, and has no influence on the historical data and incremental data in multiple databases, and can also ensure that the test process does not affect the online, thus realizing no Perceived data intercommunication greatly improves user experience.
- the data synchronization device of this embodiment includes: a data synchronization module 610 to be synchronized, a synchronization stop module 620, and a synchronization recovery module 630.
- the to-be-synchronized data synchronization module 610 is configured to control the first master database to transmit the to-be-synchronized data in the first master database to the first slave database of the first master database, and control the first slave database to transfer
- the received data to be synchronized is synchronized to the second master database
- the synchronization stop module 620 is configured to control the first master database to stop transmitting the data to be synchronized to the first slave database when a preset synchronization stop condition is met
- the synchronization recovery module 630 is configured to control the first master database to continue to transmit data to be synchronized to the first slave database when the preset recovery synchronization conditions are met, and to control the first slave database to continue to receive the pending data.
- the synchronization data is synchronized to the second primary database.
- the data synchronization module to be synchronized can be set as:
- the log file is monitored based on incremental data subscription and consumption services, and the incremental data of the first slave database is determined based on the log file.
- the incremental data is synchronized to the second main database through the Kafka message queue of the distributed publish-subscribe messaging system.
- the preset synchronization stop condition may include: the data synchronization time between the first slave database and the first master database reaches a preset duration and the data to be synchronized No data delay.
- the preset synchronization recovery condition may include: the synchronization data received by the second master database is consistent with the data to be synchronized in the first slave database.
- the preset synchronization recovery condition includes: the synchronization data received by the second master database is consistent with the synchronized data to be synchronized in the first slave database.
- the above-mentioned data synchronization device can execute the data synchronization method provided by any embodiment of the present disclosure, and has functional modules and beneficial effects corresponding to the execution method.
- FIG. 7 is a schematic structural diagram of a data synchronization device provided in Embodiment 7 of the present disclosure.
- the data synchronization device in this embodiment includes: a data receiving module 710 to be synchronized and a full data synchronization module 720.
- the data to be synchronized receiving module 710 is configured to receive the data to be synchronized transmitted by the first slave database of the first master database through the second master database;
- the full data synchronization module 720 is configured to control the second master database to transfer the second master database The full amount of data in the second master database is synchronized to the second slave database of the second master database.
- the full amount of data includes the data to be synchronized transmitted from the first slave database and the local write data in the second master database; the data to be synchronized comes from the first master database; and wherein, the The data to be synchronized transmitted by the first slave database includes one of the following: the first master database stops transmitting the data to be synchronized to the first slave database when the preset synchronization stop condition is met; When conditions are met, the first master database continues to transmit the data to be synchronized to the first slave database.
- the data to be synchronized of the first master database is received through the second master database, so that the second master database includes the data to be synchronized transmitted by the first slave database and the local end in the second master database.
- Writing data can support users at the local end of the second main database to access data in the first main database and the second main database, realizing one-way data synchronization, and further, synchronizing the full amount of data in the second main database to
- the second slave database also includes the data to be synchronized transmitted by the first slave database and the local write data in the second master database, which can support the first A user at the local end of a main database accesses the data of the first main database and the second main database, realizing two-way data intercommunication.
- the full data synchronization module may be configured to: extract the full amount of data in the second master database through the DRC component of the first data replication center; and process the extracted full amount of data
- the first data pipeline TPIPE component is transmitted to the second data replication center DRC component, and the full amount of data is synchronized to the second slave database through the second data replication center DRC component.
- the data synchronization device may further include: a first incremental data synchronization module configured to obtain incremental data in the second slave database, and transfer the second slave database to The incremental data is synchronized to the second primary database.
- the first incremental data synchronization module is configured to: extract incremental data from the second secondary database through a preset third data replication center DRC component;
- the extracted incremental data is transmitted to the fourth data replication center DRC component through the second data pipeline TPIPE component, and then the incremental data is synchronized to the second master database through the fourth data replication center DRC component .
- the data synchronization device may further include:
- the second incremental data synchronization module is configured to synchronize the incremental data in the second slave database to the first master database through the incremental data subscription and consumption service canal.
- the data synchronization device may further include:
- the authority determining module is configured to determine the user's access authority according to the attribute information of the user when the second slave database receives the user's access request.
- the above-mentioned data synchronization device can execute the data synchronization method provided by any embodiment of the present disclosure, and has functional modules and beneficial effects corresponding to the execution method.
- FIG. 8 shows a schematic structural diagram of an electronic device (such as a terminal device or a server) 800 suitable for implementing the embodiments of the present disclosure.
- the terminal device in the embodiment of the present disclosure may include, for example, a mobile phone, a notebook computer, a digital broadcast receiver, a personal digital assistant (Personal Digital Assistant, PDA), a tablet computer (Portable Android Device, PAD), and a portable multimedia player (Personal Multimedia). Player, PMP), mobile terminals such as vehicle-mounted terminals (for example, vehicle navigation terminals), and fixed terminals such as digital (television, TV), desktop computers, and the like.
- PDA Personal Digital Assistant
- PAD Portable Android Device
- PMP mobile terminals
- vehicle-mounted terminals for example, vehicle navigation terminals
- fixed terminals such as digital (television, TV), desktop computers, and the like.
- the electronic device shown in FIG. 8 is only an example, and should not bring any limitation to the function and scope of use of the embodiments of the present disclosure.
- the electronic device 800 may include a processing device (such as a central processing unit, a graphics processor, etc.) 801, and the processing device 801 may be based on a program stored in a read-only memory (Read-only Memory, ROM) 802 or from The storage device 808 loads a program in a random access memory (Random Access Memory, RAM) 803 to perform various appropriate actions and processes. In the RAM 803, various programs and data required for the operation of the electronic device 800 are also stored.
- the processing device 801, the ROM 802, and the RAM 803 are connected to each other through a bus 804. Input/Output (Input/Output, I/O) interface 805 Also connected to the bus 804.
- I/O Input/Output
- the following devices can be connected to the I/O interface 805: including input devices 806 such as touch screens, touch panels, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; including, for example, liquid crystal displays (LCD) , Output devices 807 such as speakers, vibrators, etc.; including storage devices 808 such as magnetic tapes, hard disks, etc.; and communication devices 809.
- the communication device 809 may allow the electronic device 800 to perform wireless or wired communication with other devices to exchange data.
- FIG. 8 shows an electronic device 800 with multiple devices, it is not required to implement or have all the devices shown. It may be implemented alternatively or provided with more or fewer devices.
- the process described above with reference to the flowchart can be implemented as a computer software program.
- the embodiments of the present disclosure include a computer program product.
- the computer program product includes a computer program carried on a computer-readable medium, and the computer program includes program code for executing the method shown in the flowchart.
- the computer program may be downloaded and installed from the network through the communication device 809, or installed from the storage device 808, or installed from the ROM 802.
- the computer program is executed by the processing device 801, it executes the above-mentioned functions defined in the method of the embodiment of the present disclosure.
- the aforementioned computer-readable medium of the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two.
- the computer-readable storage medium may be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof.
- Computer-readable storage media may include: electrical connections with one or more wires, portable computer disks, hard drives, RAM, ROM, Erasable Programmable Read-Only Memory (EPROM) or flash memory, Optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
- a computer-readable storage medium may be any tangible medium that contains or stores a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device.
- the computer-readable signal medium may include a data signal propagated in a baseband or as a part of a carrier wave, which carries computer-readable program code. This propagated data signal can take many forms, including electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the computer-readable signal medium may also be any computer-readable medium other than the computer-readable storage medium.
- the computer-readable signal medium may send, propagate, or transmit the program for use by or in combination with the instruction execution system, apparatus, or device .
- the program code contained on the computer-readable medium can be transmitted by any suitable medium, including: wire, optical cable, radio frequency (RF), etc., or any suitable combination of the foregoing.
- the above-mentioned computer-readable medium may be included in the above-mentioned electronic device; or may exist separately, It is not assembled into the electronic device.
- the computer readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device: controls the first master database to transmit to the first slave database of the first master database The data to be synchronized in the first master database, and control the first slave database to synchronize the received data to be synchronized to the second master database; when a preset synchronization stop condition is met, control the first master The database stops transmitting the data to be synchronized to the first slave database; when the preset synchronization recovery condition is met, the first master database is controlled to continue to transmit the data to be synchronized to the first slave database, and the first slave is controlled The database continues to synchronize the received data to be synchronized to the second primary database.
- the aforementioned computer-readable medium carries one or more programs, and when the aforementioned one or more programs are executed by the electronic device, the electronic device: receives the first slave database of the first master database through the second master database Transmitted data to be synchronized; controlling the second master database to synchronize the full amount of data in the second master database to the second slave database of the second master database; wherein, the full amount of data includes the first slave database
- the computer program code used to perform the operations of the present disclosure may be written in one or more programming languages or a combination thereof.
- the above-mentioned programming languages include object-oriented programming languages such as Java, Smalltalk, C++, and also conventional Procedural programming language-such as "C" language or similar programming language.
- the program code can be executed entirely on the user's computer, partly on the user's computer, executed as an independent software package, partly on the user's computer and partly executed on the remote computer, or entirely executed on the remote computer or server.
- the remote computer can pass through any kind of network-including a local area network (Local Area Network,
- LAN LAN Local Area Network
- WAN Wide Area Network
- each block in the flowchart or block diagram may represent a module, program segment, or part of code, and the module, program segment, or part of code includes one or more for realizing prescribed logical functions Executable instructions.
- the functions marked in the block may also occur in a different order from the order marked in the drawings. For example, two consecutively represented blocks may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved.
- each block in the figure, and the combination of blocks in the block diagram and/or flowchart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions to fulfill.
- modules and units involved in the described embodiments of the present disclosure may be implemented in a software manner, and may also be implemented in a hardware manner. Among them, the names of modules and units do not constitute a limitation on the modules or units themselves in some cases.
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)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据同步方法、装置、终端及存储介质。其中,数据同步方法包括:控制第一主数据库向所述第一主数据库的第一从数据库传输所述第一主数据库中的待同步数据,并控制所述第一从数据库将接收到的待同步数据同步至第二主数据库中;在满足预设停止同步条件的情况下,控制所述第一主数据库停止向所述第一从数据库传输待同步数据;在满足预设恢复同步条件的情况下,控制所述第一主数据库继续向所述第一从数据库传输待同步数据,并控制所述第一从数据库继续将接收到的待同步数据同步至第二主数据库中。
Description
数据同步方法、 装置、 终端及存储介质
本申请要求在 2019年 02月 27日提交中国专利局、申请号为 201910146849.2 的中国专利申请的优先权, 该申请的全部内容通过引用结合在本申请中。 技术领域
本公开实施例涉及计算机应用技术领域, 例如涉及一种数据同步方法、 装 置、 终端及存储介质。 背景技术
MySQL是一个数据库管理系统, 也是一种关系数据库。 它是由 Oracle支持 的开源软件, 由于 MySQL体积小、 速度快、 总体拥有成本低, 尤其是开放源码 这一特点, 被广泛应用。 近年来, 异地多活成为越来越多大型互联网公司采用 的数据管理方案, 几乎也是大型应用发展到一定阶段的必然选择。
异地多活一般是指在不同城市建立独立的数据中心, 这些机房在日常的业 务中也需要走流量, 做业务支撑。 即在不同城市的两个机房之间的数据进行互 通, 使得用户在其中一个地点访问另一个地点的数据。
但是, 在两个机房数据互通时, 仍然存在诸多问题。 例如, 相关技术中的 数据同步方法, 为了保证数据同步的准确性与完整性, 往往将互通的数据库停 机, 然而停机会影响到用户的正常访问, 用户体验较差。 发明内容
本公开实施例提供了一种数据同步方法、 装置、 终端及存储介质, 以解决 数据同步方法将互通的数据库停机而影响用户体验的问题, 实现在数据库不停 机的状态下完成数据同步。
在一实施例中, 本公开实施例提供了一种数据同步方法, 该方法包括: 控制第一主数据库向所述第一主数据库的第一从数据库传输所述第一主数 据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数据同步至 第二主数据库中;
在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向所述第 一从数据库传输待同步数据; 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向所述第 一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的待同步 数据同步至第二主数据库中。
在一实施例中, 本公开实施例提供了一种数据同步方法, 该方法包括: 通过第二主数据库接收第一主数据库的第一从数据库所传输的待同步数 据;
控制第二主数据库将所述第二主数据库中的全量数据同步至所述第二主数 据库的第二从数据库中;
其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止同步条 件的情况下, 所述第一主数据库停止向所述第一从数据库中传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将待同步数据传输 至所述第一从数据库中。
在一实施例中, 本公开实施例还提供了一种数据同步装置, 该装置包括: 待同步数据同步模块, 设置为控制第一主数据库向所述第一主数据库的第 一从数据库传输所述第一主数据库中的待同步数据, 并控制所述第一从数据库 将接收到的待同步数据同步至第二主数据库中;
同步停止模块, 设置为在满足预设停止同步条件的情况下, 控制所述第一 主数据库停止向所述第一从数据库传输待同步数据;
同步恢复模块, 设置为在满足预设恢复同步条件的情况下, 控制所述第一 主数据库继续向所述第一从数据库传输待同步数据, 并控制所述第一从数据库 继续将接收到的待同步数据同步至第二主数据库中。
在一实施例中, 本公开实施例还提供了一种数据同步装置, 该装置包括: 待同步数据接收模块, 设置为通过第二主数据库接收第一主数据库的第一 从数据库所传输的待同步数据;
全量数据同步模块, 设置为控制第二主数据库将所述第二主数据库中的全 量数据同步至所述第二主数据库的第二从数据库中;
其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止同步条 件的情况下, 所述第一主数据库停止向所述第一从数据库中传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将待同步数据传输 至所述第一从数据库中。
在一实施例中, 本公开实施例还提供了一种电子设备, 该电子设备包括:
一个或多个处理装置;
存储器, 设置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行, 使得所述一个或 多个处理装置实现如本公开中任一实施例所述的数据同步方法。
在一实施例中, 本公开实施例还提供了一种计算机可读存储介质, 该计算 机可读存储介质上存储有计算机程序, 所述计算机程序被处理器执行时实现如 本公开中任一实施例所述的数据同步方法。
附图说明
图 1是本公开实施例一所提供的一种数据同步方法的流程示意图; 图 2是本公开实施例二所提供的一种数据同步方法的流程示意图; 图 3是本公开实施例三所提供的一种数据同步方法的流程示意图; 图 4是本公开实施例四所提供的一种数据同步方法的流程示意图; 图 5 a是本公开实施例五所提供的一种数据互通系统的流程示意图; 图 5b是本公开实施例五所提供的一种数据单向同步的示意图;
图 5c是本公开实施例五所提供的一种数据双向同步的交互示意图; 图 5d是本公开实施例五所提供的另一种数据双向同步的交互示意图; 图 5e是本公开实施例五所提供的另一种数据双向同步的交互示意图; 图 5f是本公开实施例五所提供的另一种数据双向同步的交互示意图; 图 5g是本公开实施例五所提供的另一种数据双向同步的交互示意图; 图 5h是本公开实施例五所提供的另一种数据互通的交互示意图; 图 6是本公开实施例六所提供的一种数据同步装置的结构示意图; 图 7是本公开实施例七所提供的一种数据同步装置的结构示意图; 图 8是本公开实施例八所提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开进行说明。 此处所描述的实施例仅仅用于 解释本公开, 而非对本公开的限定。 为了便于描述, 附图中仅示出了与本公开 相关的部分而非全部结构。 下述多个实施例中, 每个实施例中同时提供了可选 特征和示例, 实施例中记载的多个特征可进行组合, 形成多个可选方案, 不应 将每个编号的实施例仅视为一个技术方案。
实施例一
图 1 为本公开实施例一所提供的一种数据同步方法的流程图, 本实施例适 用于两个独立数据库进行数据互通的情况, 可用于实现异地多活, 该方法可以 由数据同步装置来执行, 该数据同步装置可以配置于终端或服务器中用于实现 本公开实施例的方法。 其中, 两个数据库是不是异地可以根据两个数据库之间 的往返时延 (Round-Trip Time, RTT)确定。 即, 根据从发送端发送数据开始, 到 发送端收到来自接收端的确认, 总共经历的时延, 一般接收端收到数据后便立 即发送确认。
如图 1所示, 本实施例的方法可包括: S110至 S130。
S 110、 控制第一主数据库向所述第一主数据库的第一从数据库传输所述第 一主数据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数据 同步至第二主数据库中。
其中, 所述待同步数据包括所述第一主数据库的历史数据和所述第一主数 据库的增量数据。 在一实施例中, 历史数据和第一主数据库的增量数据可以根 据实际需求进行划分。 比如, 历史数据可以是所述第一主数据库中当前时刻下 已存储的数据; 第一主数据库的增量数据可以是在所述当前时刻以后写入的数 据。 其中, 所述当前时刻可以是第一主数据库实时传输待同步数据的时刻。
在一实施例中, 控制第一主数据库向所述第一主数据库的第一从数据库传 输所述第一主数据库中的待同步数据, 可以包括: 控制第一主数据库向所述第 一主数据库的第一从数据库传输所述第一主数据库中的历史数据; 和 /或控制第 一主数据库向所述第一主数据库的第一从数据库传输所述第一主数据库中的增 量数据。 进而, 控制所述第一从数据库将接收到的待同步数据同步至第二主数 据库中, 能够初步实现第一主数据库与第二主数据库的数据同步。
作为本公开实施例一可选实施方式, 所述将所述第一从数据库的第二待同 步数据同步至所述第二主数据库中, 可包括: 根据通过增量数据订阅与消费服 务 canal监听到的日志文件 Binlog确定所述第一从数据库的增量数据,将所述增 量数据同步至所述第二主数据库中。 在一实施例中, 根据增量数据订阅与消费 服务监听日志文件, 根据所述日志文件确定所述第一从数据库的增量数据。 在
一实施例中, 将所述增量数据同步至所述第二主数据库中还可以包括: 将所述 第一从数据库的增量数据通过分布式发布订阅消息系统 kafka 消息队列同步至 所述第二主数据库中。
示例性地, 第一主数据库和第二主数据库可以为关系型数据库, 如第一主 数据库和第二主数据库均为 MySQl数据库。
在一实施例中, 所述第一主数据库和所述第一从数据库之间符合主从协议。
S120、 在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向 所述第一从数据库传输待同步数据。
示例性地, 所述预设停止同步条件可包括: 所述第一从数据库与所述第一 主数据库的数据同步时间达到预设时长; 或者, 所述第一从数据库与所述第一 主数据库的所述待同步数据无数据延迟; 或者所述第一从数据库与所述第一主 数据库的数据同步时间达到预设时长且所述待同步数据无数据延迟。 其中, 所 述待同步数据无数据延迟是第一主数据库与第一从数据库之间的数据无数据延 迟, 即, 保证第一从数据库接收到了第一主数据库当前传输时长内所有的待同 步数据。 换言之, 第一主数据库中当前待同步的数据都已经实时传输到第一从 数据库中了, 没有数据延迟的情况。
其中, 第一从数据库与第一主数据库的数据同步时间可以是指第一主数据 库向第一从数据库传输第一主数据库中的待同步数据的时间。
在本公开实施例中, 控制所述第一主数据库停止向所述第一从数据库传输 待同步数据, 即将第一从数据库的数据以快照 (snapshot)的方式传输到第二主数 据库中, 不仅能够达到相关技术中将两个数据库停机之后做数据互通的效果, 保证数据传输的准确性, 还能够解决影响用户访问的问题。
S130、 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向 所述第一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的 待同步数据同步至第二主数据库中。
示例性地, 所述预设恢复同步条件包括所述第二主数据库接收到的同步数 据与所述第一从数据库中的所述待同步数据一致。 在一实施例中, 所述预设恢 复同步条件包括: 所述第二主数据库接收到的同步数据与所述第一从数据库中 的已同步完成的待同步数据一致。
在本公开实施例中, 控制所述第一主数据库继续向所述第一从数据库传输 待同步数据, 并控制所述第一从数据库继续将接收到的待同步数据同步至第二 主数据库中, 通过断点续传的方式, 将所述第一主数据库未同步完的待同步数 据全部同步到第二主数据库中。
在一实施例中, 在将所述第一主数据库待同步数据全部同步到第二主数据 库的过程中, 可能存在一次、 两次或两次以上满足预设停止同步条件的情况, 相应地, 也可能会存在一次、 两次或两次以上满足预设恢复同步条件的情况, 可以将根据实际情况确定, 在此并不做限定。
本公开实施例的技术方案, 通过第一主数据库的第一从数据库向第二主数 据库传输所述第一主数据库中的待同步数据, 能够保证数据更加顺畅快速地进 行传输, 例如适用于异地多活的场景; 而且当满足预设停止同步条件时, 控制 停止第一主数据库与第一从数据库的数据传输, 此时, 第一从数据库中接收到 的待同步数据为静态数据,相当于第一主数据库的快照 snapshot, 能够将第一从 数据库的全量数据全部导入第二主数据库中; 进而, 当满足预设恢复同步条件 时, 恢复所述第一主数据库与所述第一从数据库的数据传输, 以保证第一主数 据库的待同步数据完全同步到第二主数据库中, 能够通过断点续传的方式, 解 决数据同步方法往往需要将互通的数据库停机而影响用户体验的问题, 在数据 库不停机的状态下完成数据同步。
实施例二
图 2 为本公开实施例二所提供的一种数据同步方法的流程示意图, 本实施 例以上述实施例中多个可选方案为基础。 在本实施例中, 可选地, 所述将所述 第一从数据库的第二待同步数据同步至所述第二主数据库中.包括: 根据增量数 据订阅与消费服务 canal监听日志文件 Binlog, 根据日志文件确定所述第一从数 据库的增量数据;将所述增量数据通过分布式发布订阅消息系统 kafka消息队列 同步至所述第二主数据库中。
如图 2所示, 本实施例的方法可以包括: S210至 S250。
S210、 控制第一主数据库向所述第一主数据库的第一从数据库传输所述第 一主数据库中的待同步数据。
S220、 根据通过增量数据订阅与消费服务 canal监听到的日志文件 Binlog 确定所述第一从数据库的增量数据。
在一实施例中, 根据增量数据订阅与消费服务监听日志文件, 根据所述曰 志文件确定所述第一从数据库的增量数据。
其中, 日志文件 Binlog是二进制日志, 符合第一主数据库与第一从数据库 之间的主从协议, 用于记录数据信息以及数据操作, 能够保证数据不丟失。 增 量数据订阅与消费服务 canal指的是 canal server, 能够读取关系型数据库的日志 文件 Binlog, 对该日志文件 Binlog解析则可以确定所述第一从数据库的增量数 据。
S230、将所述增量数据通过分布式发布订阅消息系统 kafka消息队列同步至 所述第二主数据库中, 并控制所述第一从数据库将接收到的待同步数据同步至 第二主数据库中。
其中, kafka消息队列可以捕获第一从数据库的待同步数据中的增量数据和 数据操作, 而且 kafka消息队列还具有时间粒度消息回溯特性, 能够进行消息回 溯。 在第一从数据库向第二主数据库的数据同步出现问题时, 还可以通过 kafka 消息队列进行消息回溯, 为数据库数据维护提供了便捷, 将所述增量数据通过 分布式发布订阅消息系统 kafka消息队列同步至所述第二主数据库中,能够充分 保证数据同步的准确性与安全性。
S240、 在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向 所述第一从数据库传输待同步数据。
S250、 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向 所述第一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的 待同步数据同步至第二主数据库中。
本实施例的技术方案,通过 canal监听到的日志文件 Binlog确定第一从数据 库的增量数据, 支持断点后的准确续传, 进而将所述增量数据通过分布式发布 订阅消息系统 kafka消息队列同步至所述第二主数据库中,能够充分保证数据同 步的准确性与安全性。
实施例三
图 3 为本公开实施例三所提供的一种数据同步方法的流程示意图, 本实施 例适用于两个独立数据库之间的数据互通, 可用于实现异地多活, 该方法可以 由数据同步装置来执行, 所述装置可以配置在终端或服务器中用于执行本实施 例的方法。
如图 3所示, 本实施例的方法可包括: S310至 S320。
S310、 通过第二主数据库接收第一主数据库的第一从数据库所传输的待同 步数据。
其中, 所述待同步数据来源于第一主数据库, 如前所述。 其中, 所述待同 步数据包括所述第一主数据库的历史数据和所述第一主数据库的增量数据。 在 一实施例中, 历史数据和第一主数据库的增量数据可以根据实际需求进行划分。 比如, 历史数据可以是所述第一主数据库中当前时刻下已存储的数据; 第一主 数据库的增量数据可以是在所述当前时刻以后写入的数据。 其中, 所述当前时 刻可以是第一主数据库实时传输待同步数据的时刻。
在满足预设停止同步条件的情况下, 所述第一主数据库停止向所述第一从
数据库中传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数 据库继续将待同步数据传输至所述第一从数据库中。
S320、 控制第二主数据库将所述第二主数据库中的全量数据同步至所述第 二主数据库的第二从数据库中。
由于第二主数据库接收到了第一主数据库的待同步数据, 所述全量数据可 包括所述第一从数据库传输的待同步数据和所述第二主数据库中的本端写入数 据。
可选地, 控制所述第二主数据库将所述第二主数据库中的全量数据同步至 所述第二主数据库的第二从数据库中, 包括: 控制第二主数据库通过数据复制 中心 DRC组件将所述第二主数据库中的全量数据同步至所述第二主数据库的第 二从数据库中。 在一实施例中, 还可以包括: 控制第二主数据库通过数据复制 中心 DRC组件以数据管道 pipe方式将所述第二主数据库中的全量数据同步至所 述第二主数据库的第二从数据库中。示例性地,可以通过第一数据复制中心 DRC 组件抽取出所述第二主数据库中的全量数据; 将抽取出的所述全量数据经第一 数据管道 TPIPE组件传送给第二数据复制中心 DRC组件,通过第二数据复制中 心 DRC组件将所述全量数据同步至所述第二从数据库中。
在一实施例中, 在控制第二主数据库将所述第二主数据库中的全量数据同 步至所述第二主数据库的第二从数据库中之前, 包括: 建立所述第二主数据库 的第二从数据库。 在一实施例中, 该第二从数据库旨在替代第一主数据库的数 据访问, 同时提供第一主数据库和第二主数据库中的数据, 实现第一主数据库 和第二主数据库这两个数据库的数据互通。 通过控制第二主数据库将全量数据 同步至所述第二主数据库的第二从数据库中, 则第二从数据库中既包括所述第 一主数据库传输的待同步数据和所述第二主数据库中的本端写入数据, 同时能 够支撑第一主数据本地端用户对第一主数据库的数据以及第二主数据库的数据 进行访问, 实现了数据互通。
本实施例的技术方案, 通过第二主数据库接收第一主数据库的待同步数据, 使第二主数据库包括所述第一从数据库传输的待同步数据和所述第二主数据库 中的本端写入数据, 能够支持第二主数据库本地端的用户对第一主数据库和第 二主数据库的数据进行访问, 实现了单向数据同步, 进而, 将所述第二主数据 库中的全量数据同步至所述第二主数据库的第二从数据库中, 使得第二从数据 库中也包括所述第一从数据库传输的待同步数据和所述第二主数据库中的本端 写入数据, 能够支持第一主数据库本地端的用户对第一主数据库和第二主数据 库的数据进行访问, 实现了双向数据互通。
实施例四
图 4 为本公开实施例四所提供的一种数据同步方法的流程示意图, 本实施 例以上述实施例中多个可选方案为基础。 在本实施例中, 可选地, 控制所述第 二主数据库将所述第二主数据库中的全量数据同步至所述第二主数据库的第二 从数据库中, 包括: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库 中的全量数据; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第 二数据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据 同步至所述第二从数据库中。
在上述多个技术方案的基础上, 本公开实施例的数据同步方法还可以包括: 获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增量数据同步 至第二主数据库中。
本公开实施例的数据同步方法还可以包括: 将所述第二从数据库中的增量 数据通过增量数据订阅与消费服务 canal同步至所述第一主数据库中。
如图 4所示, 本实施例的技术方案可包括:
S410、 通过第二主数据库接收第一主数据库的第一从数据库所传输的待同 步数据。
S420、通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量 数据。
其中, 第一数据复制中心 ( Data Replication Center, DRC )支持对数据的双 写操作, 用于提供数据同步和数据分发的实时数据流服务, 能够保证数据不丟 失的同时, 还能够保证在第二主数据库和第二从数据库同时写同一条数据时, 解决数据冲突的问题, 保持第二主数据库和第二从数据库两端的数据一致性。 第一数据复制中心 DRC组件还能够伪装成第二主数据库的从数据库, 监听第二 主数据库的 Binlog, 进而从所述第二主数据库中抽取出所述第二主数据库的全 量数据。
S430、 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二数 据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同步 至所述第二从数据库中。
示例性地,第一数据管道 TPIPE组件可以实现 kafka的协议。在本公开实施 例中, 所述第一数据管道 TPIPE组件中可以不包括与消费相关的动能, 即, 可 以不包括消费能力。 所述第一数据管道 TPIPE组件可以包括数据传输能力, 用 于有序传输数据的消息队列, 适用于多机房数据同步的情况, 能够保证数据同 步的过程中不丟失数据。
在本公开实施例中, 所述第一数据管道 TPIPE组件可用于有序传输所述全
量数据。 在一实施例中, 在所述第二主数据库通过所述第一数据管道 TPIPE组 件向所述第二主数据库的第二从数据库传输所述全量数据之前, 包括: 建立所 述第二主数据库的第二从数据库。 在一实施例中, 第二从数据库旨在替代第一 主数据库接收数据访问, 同时提供第一主数据库和第二主数据库中的数据, 实 现第一主数据库和第二主数据库这两个数据库的数据互通。
S440、 获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增 量数据同步至第二主数据库中。
作为本公开实施例一个可选地实施方式, 所述获取所述第二从数据库中的 增量数据, 将所述增量数据同步至第二主数据库中, 可包括: 控制第二主数据 库通过数据复制中心 DRC组件将所述第二从数据库中的增量数据同步至所述第 二主数据库中。 在一实施例中, 还可以包括: 控制第二主数据库通过数据复制 中心 DRC组件以数据管道 pipe方式将所述第二从数据库中的增量数据同步至所 述第二主数据库中。
示例性地, 通过预设的第三数据复制中心 DRC组件抽取所述第二从数据库 中的增量数据; 将抽取出的所述增量数据经第二数据管道 TPIPE组件传送给第 四数据复制中心 DRC组件, 通过第四数据复制中心 DRC组件将所述增量数据 同步至所述第二主数据库中。
其中, 通过第三数据复制中心 DRC组件抽取所述第二从数据库中的增量数 据, 包括: 通过第三数据复制中心 DRC组件接收所述第二从数据库的日志文件 Binlog, 并从所述日志文件 Binlog中抽取出所述第二从数据库中的增量数据。
进而, 第三数据复制中心 DRC组件还可将抽取出的所述增量数据执行批处 理 Batch操作, 对所述增量数据进行打包后传输给第二数据管道 TPIPE组件, 以提高数据同步的效率。
S450、 将所述第二从数据库中的增量数据通过增量数据订阅与消费服务 canal同步至所述第一主数据库中。
在一实施例中, 所述第二从数据库中的增量数据包括第二从数据库本地端 写入的尚未同步的数据。类似地,可以通过 canal伪装第二从数据库的从数据库, 使得第二从数据库的增量数据可以通过 canal同步至所述第一主数据库中。
本实施例的技术方案, 不仅能够实现数据的双向互通, 还能够将本地端的 数据由第二从数据库中同步回第一主数据库, 不仅可以支持访问第一主数据库 用户对第一主数据库本地端的全量数据的访问, 还能够为第一主数据库本地端 的数据做备份, 而且, 本实施例的技术方案, 第二主数据库与第二从数据库之 间的数据传输方式, 能够实现数据库的防回环操作, 保持数据互通的两个数据
库之间的数据一致性。
在上述多个技术方案的技术上, 为了真正实现用户对数据切换无感知, 而 且完全不影响用户的正常使用, 本公开实施例的数据同步方法还可包括: 当所 述第二从数据库接收到用户的访问请求时, 根据所述用户的属性信息确定所述 用户的访问权限。 其中, 用户的属性信息可以包括用户的姓名、 性别、 年龄、 职位、 身份证号以及登录账户信息等等。
示例性地, 根据所述用户的属性信息确定所述用户的访问权限可以包括: 根据用户的属性信息预先建立用户白名单, 如果与所述访问请求对应的用户的 待匹配信息与所述用户白名单中的信息匹配, 则允许所述用户访问所述第二从 数据库。 其中, 白名单用户可以是具有对数据库进行管理或查看权限的用户, 如数据库测试人员、 数据库维护人员等。
为了保证普通用户的正常访问, 在一实施例中, 如果与所述访问请求对应 的用户的待匹配信息与所述用户白名单中的信息匹配, 可以将所述用户作为普 通用户, 则将所述访问请求切换为对第一主数据库的访问请求。 这样设置的好 处在于, 能够保证在数据库同步的过程中, 工作人员访问新数据库, 普通用户 访问老数据库。 这样即使数据同步的过程中需要对数据进行维护, 保证测试过 程用户无感知, 不对线上产生影响, 也不会影响用户的访问, 提升用户体验。
在一实施例中, 当所述第二从数据库满足接收所有用户访问的条件时, 可 以将所有用户的访问请求切换至第二从数据库, 以使访问第一主数据库的用户 能够同时访问到第一主数据库和第二主数据库的数据, 以实现数据实时互通。
实施例五
图 5a为本公开实施例还提供的一种数据互通系统, 该数据互通系统包括: 第一主数据库 510、 第二主数据库 520、 第一主数据库 510的第一从数据库 530 和所述第二主数据库 520的第二从数据库 540。 其中, 第一主数据库 510向第一 主数据库 510的第一从数据库 530传输第一主数据库 510中的待同步数据, 第 一从数据库 530将接收到的待同步数据同步至第二主数据库 520 中, 第二主数 据库 520接收第一主数据库 510的第一从数据库 530所传输的待同步数据; 当 满足预设停止同步条件时, 第一主数据库 510停止向第一从数据库 530传输待 同步数据; 当满足预设恢复同步条件时, 第一主数据库 510 继续向第一从数据 库 530传输待同步数据, 第一从数据库 530继续将接收到的待同步数据同步至 第二主数据库 520中; 第二主数据库 520将第二主数据库 520中的全量数据同 步至第二主数据库 520的第二从数据库 540中。
作为本公开实施例的一个数据互通系统的可选实例, 以第一主数据库、 第
二主数据库和所述第二主数据库的从数据库为 MySQL数据库时的数据互通为 例, 如图 5b-5f所示, 实现方式如下:
如图 5b所述, 第一主数据库 T Master和第二主数据库 M Master为两个数 据相对独立的数据库。
参见图 5c , 在第二主数据库 M Master的本地端建立第一主数据库 T Master 的第一从数据库 T Slave , 第一主数据库 T Master向第一主数据库 T Master的第 一从数据库 T Slave传输第一主数据库 T Master中的待同步数据,第一从数据库 T Slave将接收到的待同步数据同步至第二主数据库 M Master中, 当满足预设停 止同步条件时,第一主数据库 T Master停止向第一从数据库 T Slave传输待同步 数据, 当满足预设恢复同步条件时, 第一主数据库 T Master继续向第一从数据 库 T Slave传输待同步数据, 即, 将第一从数据库 T Slave当做 snapshot,将第一 主数据库 T Master的全量数据导入第二主数据库 M Master中。
参见图 5d, 增量数据订阅与消费服务 canal , 通过监听到的日志文件 B inlog 确定出第一从数据库 T Slave的增量数据, 将所述增量数据通过分布式发布订阅 消息系统 kafka消息队列同步至所述第二主数据库 M Master中。
参见图 5e , 在第一主数据库 T Master的本地端建立第二主数据库 M Master 的第二从数据库 M Slave , 第二主数据库 M Master向第二主数据库 M Master的 第二从数据库 M Slave传输第二主数据库 M Master中的全量数据, 以实现双向 数据同步。
参见图 5f , 第一数据复制中心 DRC组件抽取出第二主数据库 M Master中 的全量数据, 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二 数据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同 步至第二从数据库 M Slave中, 此时, 第一主数据库 T Master的普通用户均访 问第一主数据库 T Master, 第二从数据库 M Slave中暂无写入的数据, 全部数据 均来源于第二主数据库 M Master, 因此, 虚线部分并无数据传输。
参见图 5g,由于第二主数据库 M Master中包括第一主数据库 T Master传输 的待同步数据, 此时将第二主数据库 M Master用第二主数据库 M+T Master来 表示, 将第二主数据库 M+T Master的第二从数据库 M Slave用第二从数据库 M+T Master来表示, 考虑到同步过程中的数据安全问题以及用户体验问题, 可 以将用户分流, 根据用户的属性信息预先建立用户白名单; 进而, 当接收到用 户的访问请求时, 属于所述用户白名单的用户访问第二从数据库 M+T Master, 其中, 白名单用户可以是具有对数据库进行管理或查看权限的用户, 如数据库 测试人员以及数据库维护人员等, 不属于白名单的普通用户暂时访问第一主数 据库 T Master的本地端数据, 另外, 所述第二从数据库 M+T Master中的增量数
据还可以通过增量数据订阅与消费服务 canal同步至第一主数据库 T Master中; 参见图 5h, 当所述第二从数据库满足接收所有用户访问的条件时, 可以将 所有用户的访问请求切换至第二从数据库 M+T Master, 以使访问第一主数据库 T Master 的用户能够同时访问到第一主数据库 T Master和第二主数据库 M+T Master的数据, 以实现数据实时互通, 此时, 需要将第二从数据库 M+T Master 中的增量数据同步至第二主数据库 M+T Master中。 在一实施例中, 第三数据复 制中心 DRC组件抽取所述第二从数据库 M+T Master中的增量数据, 将抽取出 的所述增量数据经第二数据管道 TPIPE组件传送给第四数据复制中心 DRC组 件, 通过第四数据复制中心 DRC组件将所述增量数据同步至所述第二主数据库 M+T Master中。
本实施例的技术方案, 能够在不停机的状态下实现数据互通, 而且对多个 数据库中的历史数据和增量数据均不造成影响, 还能够保证测试过程不对线上 产生影响, 实现了无感知的数据互通, 极大地提升了用户体验。
实施例六
图 6 为本公开实施例六所提供的一种数据同步装置的结构示意图, 如图 6 所示, 本实施例的数据同步装置包括: 待同步数据同步模块 610、 同步停止模块 620和同步恢复模块 630。
其中, 待同步数据同步模块 610 , 设置为控制第一主数据库向所述第一主数 据库的第一从数据库传输所述第一主数据库中的待同步数据, 并控制所述第一 从数据库将接收到的待同步数据同步至第二主数据库中; 同步停止模块 620 , 设 置为当满足预设停止同步条件时, 控制所述第一主数据库停止向所述第一从数 据库传输待同步数据; 同步恢复模块 630 , 设置为当满足预设恢复同步条件时, 控制所述第一主数据库继续向所述第一从数据库传输待同步数据, 并控制所述 第一从数据库继续将接收到的待同步数据同步至第二主数据库中。
在上述技术方案的基础上, 所述待同步数据同步模块可设置为:
根据通过增量数据订阅与消费服务 canal监听到的日志文件 Binlog确定所述 第一从数据库的增量数据;
在一实施例中, 根据增量数据订阅与消费服务监听日志文件, 根据所述曰 志文件确定所述第一从数据库的增量数据。
将所述增量数据通过分布式发布订阅消息系统 kafka 消息队列同步至所述 第二主数据库中。
在上述多个技术方案的基础上, 所述预设停止同步条件可包括: 所述第一 从数据库与所述第一主数据库的数据同步时间达到预设时长且所述待同步数据
无数据延迟。
在上述多个技术方案的基础上, 所述预设恢复同步条件可包括: 所述第二 主数据库接收到的同步数据与所述第一从数据库中的所述待同步数据一致。
在一实施例中, 所述预设恢复同步条件包括: 所述第二主数据库接收到的 同步数据与所述第一从数据库中的已同步完成的待同步数据一致。
上述数据同步装置可执行本公开任意实施例所提供的数据同步方法, 具备 执行方法相应的功能模块和有益效果。
实施例七
图 7 为本公开实施例七所提供的一种数据同步装置的结构示意图, 如图 7 所示, 本实施例的数据同步装置包括: 待同步数据接收模块 710和全量数据同 步模块 720。 其中, 待同步数据接收模块 710, 设置为通过第二主数据库接收第 一主数据库的第一从数据库所传输的待同步数据; 全量数据同步模块 720,设置 为控制第二主数据库将所述第二主数据库中的全量数据同步至所述第二主数据 库的第二从数据库中。
其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止同步条 件时, 所述第一主数据库停止向所述第一从数据库中传输待同步数据; 在满足 预设恢复同步条件时, 所述第一主数据库继续将待同步数据传输至所述第一从 数据库中。
本实施例的技术方案, 通过第二主数据库接收第一主数据库的待同步数据, 使第二主数据库包括所述第一从数据库传输的待同步数据和所述第二主数据库 中的本端写入数据, 能够支持第二主数据库本地端的用户对第一主数据库和第 二主数据库的数据进行访问, 实现了单向数据同步, 进而, 将所述第二主数据 库中的全量数据同步至所述第二主数据库的第二从数据库中, 使得第二从数据 库中也包括所述第一从数据库传输的待同步数据和所述第二主数据库中的本端 写入数据, 能够支持第一主数据库本地端的用户对第一主数据库和第二主数据 库的数据进行访问, 实现了双向数据互通。
在上述多个技术方案的基础上, 所述全量数据同步模块可设置为: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量数据; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二数据复制 中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同步至所述 第二从数据库中。
在上述多个技术方案的基础上, 所述数据同步装置还可以包括: 第一增量数据同步模块, 设置为获取所述第二从数据库中的增量数据, 将 所述第二从数据库中的增量数据同步至第二主数据库中。 在上述多个技术方案的基础上, 所述第一增量数据同步模块是设置为: 通过预设的第三数据复制中心 DRC组件抽取所述第二从数据库中的增量数 据;
将抽取出的所述增量数据经第二数据管道 TPIPE组件传送给第四数据复制 中心 DRC组件, 再通过第四数据复制中心 DRC组件将所述增量数据同步至所 述第二主数据库中。
在上述多个技术方案的基础上, 所述数据同步装置还可以包括:
第二增量数据同步模块, 设置为将所述第二从数据库中的增量数据通过增 量数据订阅与消费服务 canal同步至所述第一主数据库中。
在上述多个技术方案的基础上, 所述数据同步装置还可以包括:
权限确定模块, 设置为当所述第二从数据库接收到用户的访问请求时, 根 据所述用户的属性信息确定所述用户的访问权限。
上述数据同步装置可执行本公开任意实施例所提供的数据同步方法, 具备 执行方法相应的功能模块和有益效果。
实施例八
下面参考图 8 , 图 8示出了适于用来实现本公开实施例的电子设备 (例如终 端设备或服务器 ) 800的结构示意图。 本公开实施例中的终端设备可以包括诸如 移动电话、 笔记本电脑、 数字广播接收器、 个人数字助理 ( Personal Digital Assistant, PDA ) 、 平板电脑 ( Portable Android Device, PAD ) 、 便携式多媒体 播放器 ( Personal Multimedia Player, PMP ) 、 车载终端 (例如车载导航终端) 等等的移动终端以及诸如数字 ( television, TV ) 、 台式计算机等等的固定终端。 图 8 示出的电子设备仅仅是一个示例, 不应对本公开实施例的功能和使用范围 带来任何限制。
如图 8所示, 电子设备 800可以包括处理装置 (例如中央处理器、 图形处 理器等) 801 , 处理装置 801可以根据存储在只读存储器 ( Read-only Memory, ROM )802中的程序或者从存储装置 808加载到随机访问存储器 ( Random Access Memory, RAM ) 803中的程序而执行多种适当的动作和处理。 在 RAM 803中, 还存储有电子设备 800操作所需的多种程序和数据。 处理装置 801、 ROM 802 以及 RAM 803通过总线 804彼此相连。 输入 /输出 ( Input/Output, I/O )接口 805
也连接至总线 804。
通常, 以下装置可以连接至 I/O接口 805 : 包括例如触摸屏、 触摸板、键盘、 鼠标、 摄像头、 麦克风、 加速度计、 陀螺仪等的输入装置 806; 包括例如液晶显 示器 ( Liquid Crystal Display, LCD ) 、 扬声器、 振动器等的输出装置 807; 包括 例如磁带、 硬盘等的存储装置 808; 以及通信装置 809。 通信装置 809可以允许 电子设备 800与其他设备进行无线或有线通信以交换数据。 虽然图 8示出了具 有多种装置的电子设备 800 , 但是, 并不要求实施或具备所有示出的装置。 可以 替代地实施或具备更多或更少的装置。
根据本公开的实施例, 上文参考流程图描述的过程可以被实现为计算机软 件程序。 例如, 本公开的实施例包括一种计算机程序产品, 计算机程序产品包 括承载在计算机可读介质上的计算机程序, 该计算机程序包含用于执行流程图 所示的方法的程序代码。 在这样的实施例中, 该计算机程序可以通过通信装置 809从网络上被下载和安装, 或者从存储装置 808被安装, 或者从 ROM 802被 安装。 在该计算机程序被处理装置 801 执行时, 执行本公开实施例的方法中限 定的上述功能。
实施例八
在一实施例中, 本公开上述的计算机可读介质可以是计算机可读信号介质 或者计算机可读存储介质或者是上述两者的任意组合。 计算机可读存储介质例 如可以是电、 磁、 光、 电磁、 红外线、 或半导体的系统、 装置或器件, 或者任 意以上的组合。 计算机可读存储介质的可以包括: 具有一个或多个导线的电连 接、便携式计算机磁盘、硬盘、 RAM、 ROM、可擦式可编程只读存储器 ( Erasable Programmable Read-Only Memory, EPROM )或闪存、 光纤、 便携式紧凑磁盘只 读存储器 ( Compact Disc Read-Only Memory, CD-ROM ) 、 光存储器件、 磁存 储器件、 或者上述的任意合适的组合。 在本公开中, 计算机可读存储介质可以 是任何包含或存储程序的有形介质, 该程序可以被指令执行系统、 装置或者器 件使用或者与其结合使用。 而在本公开中, 计算机可读信号介质可以包括在基 带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。 这种传播的数据信号可以采用多种形式, 包括电磁信号、 光信号或上述的任意 合适的组合。 计算机可读信号介质还可以是计算机可读存储介质以外的任何计 算机可读介质, 该计算机可读信号介质可以发送、 传播或者传输用于由指令执 行系统、 装置或者器件使用或者与其结合使用的程序。 计算机可读介质上包含 的程序代码可以用任何适当的介质传输, 包括: 电线、 光缆、 射频 ( Radio Frequency, RF ) 等等, 或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的; 也可以是单独存在,
而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序, 当上述一个或者多个程序 被该电子设备执行时, 使得该电子设备: 控制第一主数据库向所述第一主数据 库的第一从数据库传输所述第一主数据库中的待同步数据, 并控制所述第一从 数据库将接收到的待同步数据同步至第二主数据库中; 当满足预设停止同步条 件时, 控制所述第一主数据库停止向所述第一从数据库传输待同步数据; 当满 足预设恢复同步条件时, 控制所述第一主数据库继续向所述第一从数据库传输 待同步数据, 并控制所述第一从数据库继续将接收到的待同步数据同步至第二 主数据库中。
或者, 上述计算机可读介质承载有一个或者多个程序, 当上述一个或者多 个程序被该电子设备执行时, 使得该电子设备: 通过第二主数据库接收第一主 数据库的第一从数据库所传输的待同步数据; 控制第二主数据库将所述第二主 数据库中的全量数据同步至所述第二主数据库的第二从数据库中; 其中, 所述 全量数据包括所述第一从数据库传输的待同步数据和所述第二主数据库中的本 端写入数据; 所述待同步数据来源于第一主数据库; 在满足预设停止同步条件 时, 所述第一主数据库停止向所述第一从数据库中传输待同步数据; 在满足预 设恢复同步条件时, 所述第一主数据库继续将待同步数据传输至所述第一从数 据库中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的 计算机程序代码, 上述程序设计语言包括面向对象的程序设计语言一诸如 Java、 Smalltalk、 C++, 还包括常规的过程式程序设计语言一诸如 “C” 语言或类似的 程序设计语言。 程序代码可以完全地在用户计算机上执行、 部分地在用户计算 机上执行、 作为一个独立的软件包执行、 部分在用户计算机上部分在远程计算 机上执行、 或者完全在远程计算机或服务器上执行。 在涉及远程计算机的情形 中, 远程计算机可以通过任意种类的网络 -包括局域网 (Local Area Network,
LAN LAN)或广域网 (Wide Area Network, WAN)—连接到用户计算机, 或者, 可 以连接到外部计算机 (例如利用因特网服务提供商来通过因特网连接) 。
附图中的流程图和框图, 图示了按照本公开多种实施例的方法和计算机程 序产品的可能实现的体系架构、 功能和操作。 在这点上, 流程图或框图中的每 个方框可以代表一个模块、 程序段、 或代码的一部分, 该模块、 程序段、 或代 码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。 在有些作 为替换的实现中, 方框中所标注的功能也可以以不同于附图中所标注的顺序发 生。 例如, 两个接连地表示的方框实际上可以基本并行地执行, 它们有时也可 以按相反的顺序执行, 这依所涉及的功能而定。 在一实施例中, 框图和 /或流程
图中的每个方框、 以及框图和 /或流程图中的方框的组合, 可以用执行规定的功 能或操作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算机指令 的组合来实现。
描述于本公开实施例中所涉及到的模块、 单元可以通过软件的方式实现, 也可以通过硬件的方式来实现。 其中, 模块、 单元的名称在一些情况下并不构 成对该模块或单元本身的限定。
Claims
1、 一种数据同步方法, 包括:
控制第一主数据库向所述第一主数据库的第一从数据库传输所述第一主数 据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数据同步至 第二主数据库中;
在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向所述第 一从数据库传输所述待同步数据;
在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向所述第 一从数据库传输所述待同步数据, 并控制所述第一从数据库继续将接收到的待 同步数据同步至所述第二主数据库中。
2、 根据权利要求 1所述的方法, 其中, 所述控制所述第一从数据库将接收 到的待同步数据同步至第二主数据库中, 包括:
根据增量数据订阅与消费服务监听日志文件, 根据所述日志文件确定所述 第一从数据库的增量数据;
将所述第一从数据库的增量数据通过分布式发布订阅消息系统消息队列同 步至所述第二主数据库中。
3、 根据权利要求 1所述的方法, 其中, 所述预设停止同步条件包括: 所述 第一从数据库与所述第一主数据库的数据同步时间达到预设时长且所述待同步 数据无数据延迟。
4、 根据权利要求 1所述的方法, 其中, 所述预设恢复同步条件包括: 所述 第二主数据库接收到的同步数据与所述第一从数据库中的已同步完成的待同步 数据一致。
5、 一种数据同步方法, 包括:
通过第二主数据库接收第一主数据库的第一从数据库所传输的待同步数 据;
控制所述第二主数据库将所述第二主数据库中的全量数据同步至所述第二 主数据库的第二从数据库中;
其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于所述第一主数据库; 以及 其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止 同步条件的情况下, 所述第一主数据库停止向所述第一从数据库中传输所述待 同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将所述 待同步数据传输至所述第一从数据库中。
6、 根据权利要求 5所述的方法, 其中, 所述控制所述第二主数据库将所述 第二主数据库中的全量数据同步至所述第二主数据库的第二从数据库中, 包括: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量数据; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二 DRC组 件, 通过所述第二 DRC组件将所述全量数据同步至所述第二从数据库中。
7、 根据权利要求 5所述的方法, 还包括:
获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增量数据 同步至所述第二主数据库中。
8、 根据权利要求 7所述的方法, 其中, 所述获取所述第二从数据库中的增 量数据, 将所述第二从数据库中的增量数据同步至所述第二主数据库中, 包括: 通过预设的第三 DRC组件抽取所述第二从数据库中的增量数据;
将抽取出的所述第二从数据库中的增量数据经第二 TPIPE组件传送给第四 DRC组件,通过所述第四 DRC组件将所述第二从数据库中的增量数据同步至所 述第二主数据库中。
9、 根据权利要求 5所述的方法, 还包括:
将所述第二从数据库中的增量数据通过增量数据订阅与消费服务同步至所 述第一主数据库中。
10、 根据权利要求 5所述的方法, 还包括:
在所述第二从数据库接收到用户的访问请求的情况下, 根据所述用户的属 性信息确定所述用户的访问权限。
11、 一种数据同步装置, 包括:
待同步数据同步模块, 设置为控制第一主数据库向所述第一主数据库的第 一从数据库传输所述第一主数据库中的待同步数据, 并控制所述第一从数据库 将接收到的待同步数据同步至第二主数据库中;
同步停止模块, 设置为在满足预设停止同步条件的情况下, 控制所述第一 主数据库停止向所述第一从数据库传输所述待同步数据;
同步恢复模块, 设置为在满足预设恢复同步条件的情况下, 控制所述第一 主数据库继续向所述第一从数据库传输所述待同步数据, 并控制所述第一从数 据库继续将接收到的待同步数据同步至所述第二主数据库中。
12、 一种数据同步装置, 包括:
待同步数据接收模块, 设置为通过第二主数据库接收第一主数据库的第一
从数据库所传输的待同步数据;
全量数据同步模块, 设置为控制所述第二主数据库将所述第二主数据库中 的全量数据同步至所述第二主数据库的第二从数据库中;
其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于所述第一主数据库; 以及 其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止 同步条件的情况下, 所述第一主数据库停止向所述第一从数据库中传输所述待 同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将所述 待同步数据传输至所述第一从数据库中。
13、 一种电子设备, 包括:
一个或多个处理装置;
存储器, 设置为存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理装置执行, 使得所述一个或多 个处理装置实现以下至少之一: 如权利要求 1-4和权利要求 5-10中任一项所述 的数据同步方法。
14、 一种计算机可读存储介质, 所述计算机可读存储介质上存储有计算机 程序, 所述计算机程序被处理器执行实现以下至少之一: 如权利要求 1-4和权利 要求 5-10中任一项所述的数据同步方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910146849.2A CN109819048B (zh) | 2019-02-27 | 2019-02-27 | 数据同步方法、装置、终端及存储介质 |
CN201910146849.2 | 2019-02-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020173248A1 true WO2020173248A1 (zh) | 2020-09-03 |
Family
ID=66607795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/072654 WO2020173248A1 (zh) | 2019-02-27 | 2020-01-17 | 数据同步方法、装置、终端及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109819048B (zh) |
WO (1) | WO2020173248A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256796A (zh) * | 2020-10-26 | 2021-01-22 | 首都信息发展股份有限公司 | 异构数据实时同步系统及装置 |
CN113055484A (zh) * | 2021-03-19 | 2021-06-29 | 北京星汉博纳医药科技有限公司 | 一套通用的医药数据智能同步系统 |
CN113342614A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 用户断点管理方法、装置、设备及计算机程序产品 |
CN113472469A (zh) * | 2021-07-27 | 2021-10-01 | 厦门亿联网络技术股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN114185489A (zh) * | 2021-12-02 | 2022-03-15 | 中国电信股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109819048B (zh) * | 2019-02-27 | 2022-03-15 | 北京字节跳动网络技术有限公司 | 数据同步方法、装置、终端及存储介质 |
CN110188142A (zh) * | 2019-06-04 | 2019-08-30 | 成都鼎桥通信技术有限公司 | 异地容灾数据同步方法、装置、服务器以及存储介质 |
CN110245148B (zh) * | 2019-06-25 | 2021-03-23 | 河南中原消费金融股份有限公司 | 一种数据存储方法、装置、系统及介质 |
CN112988883B (zh) * | 2019-12-16 | 2023-03-10 | 金篆信科有限责任公司 | 数据库的数据同步方法、装置以及存储介质 |
WO2021168697A1 (zh) * | 2020-02-26 | 2021-09-02 | 深圳市欢太科技有限公司 | 数据同步方法、装置、数据存储系统及计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021020A (zh) * | 2016-05-12 | 2016-10-12 | 中国工商银行股份有限公司 | 一种双活数据站点应用数据挂载方法及装置 |
US20170078988A1 (en) * | 2015-06-18 | 2017-03-16 | Sharp Laboratories of America (SLA), Inc. | System and Method for Synchronized Distributed Data Collection |
CN107391294A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种ipsan容灾系统的建立方法及装置 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN108874593A (zh) * | 2018-06-21 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种两地三中心容灾方法、装置、设备及系统 |
CN109819048A (zh) * | 2019-02-27 | 2019-05-28 | 北京字节跳动网络技术有限公司 | 数据同步方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912628B (zh) * | 2016-04-07 | 2019-05-28 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
KR20180044696A (ko) * | 2016-10-24 | 2018-05-03 | 삼성에스디에스 주식회사 | 쿼리 결과 분산 저장 방법 및 그 시스템 |
CN108132949B (zh) * | 2016-12-01 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 数据库集群中数据迁移的方法及装置 |
CN106603665B (zh) * | 2016-12-16 | 2018-04-13 | 无锡华云数据技术服务有限公司 | 云平台连续数据同步方法及其装置 |
CN107741965B (zh) * | 2017-09-30 | 2021-06-29 | 北京奇虎科技有限公司 | 数据库同步处理方法、装置、计算设备及计算机存储介质 |
CN107734017B (zh) * | 2017-09-30 | 2020-12-15 | 平安科技(深圳)有限公司 | 数据服务方法及系统 |
-
2019
- 2019-02-27 CN CN201910146849.2A patent/CN109819048B/zh active Active
-
2020
- 2020-01-17 WO PCT/CN2020/072654 patent/WO2020173248A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170078988A1 (en) * | 2015-06-18 | 2017-03-16 | Sharp Laboratories of America (SLA), Inc. | System and Method for Synchronized Distributed Data Collection |
CN106021020A (zh) * | 2016-05-12 | 2016-10-12 | 中国工商银行股份有限公司 | 一种双活数据站点应用数据挂载方法及装置 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN107391294A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种ipsan容灾系统的建立方法及装置 |
CN108874593A (zh) * | 2018-06-21 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种两地三中心容灾方法、装置、设备及系统 |
CN109819048A (zh) * | 2019-02-27 | 2019-05-28 | 北京字节跳动网络技术有限公司 | 数据同步方法、装置、终端及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256796A (zh) * | 2020-10-26 | 2021-01-22 | 首都信息发展股份有限公司 | 异构数据实时同步系统及装置 |
CN112256796B (zh) * | 2020-10-26 | 2024-03-26 | 首都信息发展股份有限公司 | 异构数据实时同步系统及装置 |
CN113055484A (zh) * | 2021-03-19 | 2021-06-29 | 北京星汉博纳医药科技有限公司 | 一套通用的医药数据智能同步系统 |
CN113342614A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 用户断点管理方法、装置、设备及计算机程序产品 |
CN113472469A (zh) * | 2021-07-27 | 2021-10-01 | 厦门亿联网络技术股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN113472469B (zh) * | 2021-07-27 | 2023-12-05 | 厦门亿联网络技术股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN114185489A (zh) * | 2021-12-02 | 2022-03-15 | 中国电信股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109819048A (zh) | 2019-05-28 |
CN109819048B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020173248A1 (zh) | 数据同步方法、装置、终端及存储介质 | |
WO2018130165A1 (zh) | 云计算移动终端及其工作方法 | |
JP7494311B2 (ja) | インタラクション方法、装置及び電子機器 | |
US10310919B2 (en) | Dynamic queue alias | |
CN111259022B (zh) | 一种信息同步方法、同步系统、计算机设备和介质 | |
WO2021169863A1 (zh) | 多媒体会议数据处理方法、装置和电子设备 | |
CN111163336B (zh) | 视频资源推送方法、装置、电子设备及计算机可读介质 | |
WO2021218646A1 (zh) | 交互方法、装置和电子设备 | |
WO2015106656A1 (zh) | 一种跨数据中心的数据同步方法 | |
US20240126417A1 (en) | Method, form data processing method, apparatus, and electronic device for form generation | |
WO2021180198A1 (zh) | 信息交互方法、装置、电子设备及存储介质 | |
CN112631800A (zh) | 面向kafka的数据传输方法、系统、计算机设备及存储介质 | |
CN109471647B (zh) | 一种数据的更新方法、装置、电子设备及可读介质 | |
WO2023284387A1 (zh) | 基于联邦学习的模型训练方法、装置、系统、设备和介质 | |
CN112015816A (zh) | 数据同步方法、装置、介质及电子设备 | |
WO2024082770A1 (zh) | 视频转码方法、装置、设备、存储介质及视频点播系统 | |
US11863842B2 (en) | Method and apparatus for processing audio and video, electronic device and storage medium | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
WO2020173381A1 (zh) | 数据互通方法、装置、终端及存储介质 | |
US20240340327A1 (en) | Method, apparatus, and electronic device for interaction | |
WO2022152041A1 (zh) | 视频直播的功能组件加载方法、数据处理方法及设备 | |
CN114676199A (zh) | 一种同步方法、同步系统、计算机设备和存储介质 | |
WO2021147466A1 (zh) | 消息处理方法、装置及电子设备 | |
CN115454666A (zh) | 消息队列集群间的数据同步方法和装置 | |
JP2023031248A (ja) | エッジコンピューティングネットワーク、データ伝送方法、装置、機器、及び記憶媒体 |
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: 20763255 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
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 1205A DATED 21.01.2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20763255 Country of ref document: EP Kind code of ref document: A1 |